[信息与通信]第3章 单片机的汇编语言与程序设计.ppt

[信息与通信]第3章 单片机的汇编语言与程序设计.ppt

  1. 1、本文档共72页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 确定编程思路 画程序流程图 编写汇编语言源程序 程序编译调试 用汇编语言进行程序设计的过程和用高级语言进行程序设计的过程类似,一般需要经过以下几个步骤: 汇编语言程序的开发过程 表示出程序的执行过程或解题步骤和方法 给出程序的结构,体现整体与部分之间的关系 便于阅读、理解程序,查找错误 流程图(程序框图) 在单片机P1口外接8个发光二极管(低电平驱动)。试编写一汇编程序,实现LED循环点亮功能: P1.0→P1.1→P1.2→ ┅ →P1.7→P1.6→ ┅ →P1.0的顺序,无限循环。 采用软件延时方法控制闪烁时间间隔(约50ms)。 举例16: 电路原理图设计: 利用Proteus软件的ISIS模块绘制原理图。考虑到LED低电平驱动要求,硬件电路设计时需使LED的阴极应接P1口,阳极通过限流电阻与+5V电源相接。 解:仿真开发过程如下 只要设法使P1口某位为低电平,其余位均为高电平,相应的LED就会点亮。适当延时后不断将点亮位挪到相邻位就会产生循环点亮的效果。 ①确定编程思路: 尽可能详细地表示出每一相关环节的内容 (1111 1110B) (RL) (ACALL) (DJNZ) (RR) (0111 1111B) (1111 1110B) (R2) (MOV) ②画程序流程图: ③编写汇编程序 ORG 0H MOV A,#0FEH ;下行初值 MOV P1,A ;从P1.0开始 MOV R2,#7 ;循环计数次数 DOWN: RL A ;下行方向 ACALL DEL50 ;延时50ms MOV P1,A ;驱动LED DJNZ R2,DOWN ;未完继续 MOV R2,#7 ;循环计数次数 UP: RR A ;上行方向 ACALL DEL50 ;延时50ms MOV P1,A ;驱动LED DJNZ R2,UP ;未完继续 MOV R2,#7 ;循环计数次数 SJMP DOWN ;循环 DEL50: MOV R7,#200 ;延时50ms DEL1: MOV R6,#125 ;200(125*2)=50000 DJNZ R6,$ ; DJNZ R7,DEL1 ; RET END 编译通过! 机器码及在ROM中的存放 ④程序编译调试 实际运行效果: 51单片机指令系统的特点是不同的存储空间寻址方式不同,适用的指令不同,必须进行区分。 指令是程序设计的基础,应重点掌握传送指令、算术运算指令、逻辑运算指令和控制指令,掌握指令的功能, 操作的对象和结果,对标志位的影响,应要求记熟。 伪指令是非执行指令,提供汇编程序以汇编信息,应正确使用。 本章小结 * * * * * * * * * * * * * * * * * * * * * * 寄存器间接寻址用到的寄存器有Ri、DPTR和SP,其中i = 0 或1;注释时可以用类似(R0)表示@R0 已知片内RAM 38H单元中的数为12H,试分析如下程序段并指出其功能 注意:片内RAM 38H单元中数不能直接传送到外部RAM的1818H单元,必须经过累加器A的转传。 功能:将片内RAM 38H单元中的数12H传送到外部RAM的1818H单元中。 MOV R0,#38H MOV DPTR,#1818H MOV A,@R0 MOVX @DPTR,A ; Rn←data ; DPTR ←data16 ; A←(Ri) ; (DPTR)←A R0=38H DPTR =1818H A←(38H)=12H (1818H)=12H 举例2: 试分析如下程序段并指出其功能 MOV DPTR,#120H MOV A,#5 MOVC A,@A+DPTR MOV 30H,A ; DPTR ←data16 ; A←data ; A←(A+DPTR) ; (30H)←A ; DPTR =120H ; A=5 ; A←(125H) ; (30H)←A 功能:将ROM 125H地址中的数取出送到片内RAM的30H单元中。 意义:采用DPTR作为基址寄存器,A作为变址寄存器,查找事先存放在ROM数据块中的数据值,其中DPTR指向数据块的首地址。 举例3: 在如下所示的ROM 120H地址开始的10个单元中存放着整数0~9的十进制平方值,编写一查表程序段,计算整数5的平方值,并将结果送入RAM 30单元。 执行结果:(30H

您可能关注的文档

文档评论(0)

zj182322392 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档