第3章 单片机程序设的计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 单片机程序设的计

第三章 MCS-51单片机汇编语言程序设计;二、汇编语言程序设计步骤: 1.分析任务,确定方案和计算方法。 2. 按功能划分模块,确定各模块之间的相互关系及参数传递,画出程序流程图。 3、合理分配寄存器和存储器单元,编写汇编语言源程序,并作必要的注释,以方便阅读、调试和修改。 4、汇编语言源程序进行汇编和连接生成可执行的目标文件(.BIN或.HEX)。 5、仿真调试、修改程序,直至满足任务要求。 6、将调试好的目标文件(·BIN或·HEX)烧录进单片机内,上电执行。;程序流程图表示程序结构和功能,一个典型分支程序流程如下:;三、程序汇编的方法: 程序汇编的方法有两种: 1、手工汇编: 人工查指令表,查出程序中每条指令对应的机器代码。早期的计算机使用。 2、机器汇编: 用计算机中的汇编程序对用户源程序进行汇编。 用机器汇编要提供给汇编一些信息,遵循汇编程序的一些约定,这些由伪指令指定。;1. 机器指令:指令系统中的全部指令。每条机器指令都有对应的机器代码,可以被CPU执行。 2. 伪指令:汇编控制指令,没有指令代码,只用于汇编过程,为汇编程序提供汇编信息,给编程提供方便。 3. 宏指令:由多条指令通过宏汇编集合而产生的指令。 宏汇编功能:将需要反复多次执行的程序段定义成一个宏指令名(宏定义)。编程时,可在程序中使用宏指令名来替代被定义的程序段(宏调用)。 ;;2、字节定义 标号: DB(字节常数,或字符或表达式) 功能:指示在程序存储器中以标号为起始地址的单元里存放的数为字节数据(八位二进制数)。 例如 LN:DB 32,’C’,25H,-1; 以上的伪指令是在LN~LN+3地址单元依次存放20H,43H,25H,FFH。 ;6、等值指令 标号 EQU(数值表达式) 表示EQU两边的量等值,用于为标号或标识符赋值。 例如: X1 EQU 2000H X2 EQU 0FH … MAIN: MOV DPTR,#X1 ; DPTR=2000H ADD A,#X2 ; A=A+0FH;3.3 常用程序结构 有顺序程序、分支程序、循环程序、子程序等。;3.4 顺序程序 顺序程序(简单程序),程序走向只有一条路径。;例3-3 分解压缩式BCD码,使其成为非压缩式BCD码。;3.5 分支程序的设计 由条件转移指令构成程序判断框部分,形成分支结构。;;1. 利用转移地址表实现转移(先把DPTR找好,再跳转) 例3-7 根据R3的内容转向对应的程序,R3的内容为0~n,处理程序的入口符号地址分别为PRo~PRn (n128)。 分析:将PRo-PRn入口地址列在表格中,每一项占两个单元,PRn在表中的偏移量为2n,因此将R3的内容乘2即得PRn在表中的偏移地址,从偏移地址2n和2n+1两个单元分别取出PRn的高八位地址和低八位地址送DPTR寄存器,用JMP @A+DPTR指令(A先清零)即转移到PRn入口执行。;;2. 利用转移指令表实现转移(直接跳到一个跳转指令中去执行) 例3-8 设有五个按键 0、1、2、3、4其编码分别为3AH、47H、65H、70H、8BH,要求根据按下的键转向不同的处理程序,分别为PR0 、PR1、PR2、PR3、PR4,设按键的编码已在B寄存器中,编出程序。;;3.5 循环程序设计;例 3-9, 设计一个延时10ms的延时子程序,已知单片机使用的晶振为6MHz。 分析:延时时间与两个因素有关:晶振频率和循环次数。由于晶振采用6MHz,一个机器周期是2μs,用单循环可以实现1ms延时,外循环10次即可达10ms延时。 内循环如何实现1ms延时呢,程序中可先以未知数MT代替,从附录A查每条指令机器周期计算程序的执行时间。 ;例3-10 编写多字节数×10程序。 内部RAM以20H为首址的一片单元中存放着一个多字节无符号数,字节数存放在R7中,存放方式为低位字节在低地址,高位字节在高地址,要求乘10后的积仍存放在这一片单元中。 分析:用R1作该多字节的地址指针,部分积的低位仍存放于本单元,部分积的高位存放于R2,以便和下一位的部分积的低位相加。以R7作字节数计数。 编程如下: ;3.6 位操作程序设计;程序如下: START:MOV C,P2.2 ORL C,TF0 ANL C,P1.1 MOV F0,C MOV C,IE1

文档评论(0)

ayangjiayu5 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档