第4章80C51单片机汇编语言程序设计讲述.ppt

第4章80C51单片机汇编语言程序设计讲述.ppt

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章80C51单片机汇编语言程序设计讲述

4.1 单片机程序设计语言概述 4.2 汇编语言程序的基本结构形式 4.2.2 分支程序结构 (a)使用多条CJNE指令,通过逐次比较,实现分支程序转移 (b)使用查转移指令表的方法实现多分支程序转移 4.2.3 循环程序结构 4.3 80C51单片机汇编语言程序设计举例 4.4 单片机汇编语言源程序的编辑和汇编 4.5 80C51单片机汇编语言伪指令 对汇编语言程序进行机器交叉汇编时,必须告诉计算机的汇编程序应该如何完成汇编工作,这一任务就是通过使用伪指令来实现的。 伪指令是程序设计人员发给汇编程序的指令,也称汇编命令或汇编程序控制指令。它具有控制汇编程序的输入输出、定义数据和符号、条件汇编、分配存储空间等功能。 补充内容:子程序结构 ORG 0000H ADDDUO:MOV R0, #20H; 循环初始化部分 MOV R1, #2AH; MOV R7, #03H; 循环次数 CLR C; LOOP:MOV A, @R0; 循环体部分 ADDC A, @R1; MOV @R0, A; INC R0; 修改指针变量 INC R1; DJNZ R7, LOOP; 循环控制部分 CLR A; 循环结束处理部分 ADDC A, #00H; MOV @R0, A; RET; END 返回 返回 例:把内部RAM中起始地址为DATA的数据串传送到外部RAM以BUFFER为首地址的区域,直到发现“$”字符的ASCⅡ码为止,同时规定数据串最大长度为32个字节。 解:(1)分析任务:数据传送;(2)算法:比较、控制转移 (3)程序结构:分支、循环(4)数据类型:多字节字符串 (5)RAM单元安排:内部RAM单元、外部RAM单元 (6)采用寄存器间接寻址方式(R0、R1或DPTR) (7)程序流程框图; ORG 0000H DATACS:MOV R0, #DATA; DATA数据区首地址 MOV DPTR, #BUFFER;BUFFER数据区首地址 MOV R1, #20H; 最大数据串长 LOOP:MOV A, @R0; 取数据 SUBB A, #24H; 判是否为“$”字符 JZ LOOP1; 是“$”字符,转结束 MOVX @DPTR,A; 数据传送 INC R0; INC DPTR; DJNZ R1, LOOP; 循环控制 LOOP1:RET; 结束 END 4.3.2 定时程序 在单片机的控制应用中,常有定时的需要,如定时中断、定时检测和定时扫描等。定时功能除可以使用纯硬件电路、可编程定时/计数器实现外,还可以使用软件程序(定时程序)完成。 定时程序是典型的循环程序,它是通过执行一个具有固定延迟时间的循环体来实现定时的。 (1)单循环定时程序 MOV R5, #TIME; LOOP: NOP; NOP; DJNZ R5, LOOP; 假设单片机晶振频率fosc=6MHz,则一个机器周期为2μs,NOP、DJNZ指令分别是单、双机器周期指令。定时程序的总延迟时间是循环程序段延时时间的整数倍,由于R5是8位寄存器,因此,这个定时程序的最长定时时间为: 256(28)×8=2048(μs) (2)较长时间的定时程序 (多重循环定时子程序) TIME:MOV R5, #TTME1; LOOP:MOV R4, #TEME2; LOOP1:NOP; NOP; DJNZ R4, LOOP1; DJNZ R5, LOOP2; RET; 这个定时子程序的最长定时时间为: [256(

文档评论(0)

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

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

1亿VIP精品文档

相关文档