单片机原理和应用-第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章单片机的汇编语言与程序设计 例3.17:利用伪指令重新编写平方值查表程序 例3.3 MOV R0,#y ;0≤y≤7FH MOV DPTR,#120H MOV A,#x ;0≤x≤ 9 MOVC A,@A+DPTR MOV @R0,A ROM地址 数值 0129H 81 0128H 64 0127H 49 0126H 36 0125H 25 0124H 16 0123H 09 0122H 04 0121H 01 0120H 00 数据块首地址 存在问题: 没有指定程序代码和数据的存放位置; 更改数据需要变动源程序 * 第3章单片机的汇编语言与程序设计 解:完整的汇编程序及机器代码及存放地址 * 第3章单片机的汇编语言与程序设计 3.1汇编语言概述 3.2指令系统简介 3.3汇编语言的编程方法 * 第3章单片机的汇编语言与程序设计 汇编语言程序的开发过程 确定编程思路 画程序流程图 编写汇编程序 程序编译调试 用汇编语言进行程序设计的过程和用高级语言进行程序设计的过程类似,一般需要经过以下几个步骤: * 第3章单片机的汇编语言与程序设计 流程图(程序框图) 表示程序的执行过程或解题步骤和方法 给出程序的结构,体现整体与部分之间的关系 便于阅读、理解程序,查找错误 起始 * 举例18: 利用单片机与发光二极管设计一个具有循环点亮功能的电子装置(流水灯)。 第3章单片机的汇编语言与程序设计 单管控制原理: * 第3章单片机的汇编语言与程序设计 ① 工作原理分析 单片机P1口外接8只LED; 循环改写P1.n口,写0灯亮,写1灯灭; 软件延时控制切换间隔。 * ②画程序流程图: 尽可能详细地表示出每一相关环节的内容 第3章单片机的汇编语言与程序设计 RL ACALL DJNZ RR (0111 1111B) (1111 1110B) Rn MOV P1 P1 P1 A←#1111 1110B * 第3章单片机的汇编语言与程序设计 ③编写汇编程序 * 第3章单片机的汇编语言与程序设计 ④程序编译调试 编译通过! 机器码及在ROM中的存放 * 第3章单片机的汇编语言与程序设计 实际运行效果: * 本章小结 51 单片机汇编语言指令最多包含4个区段,其一般格式为: [标号:] 操作码 [操作数] [;注释]; 51单片机的指令系统分为数据传送与交换指令、算术运算指令、逻辑运算指令和控制转移指令等4大类型,共111条; 51单片机汇编语言具有直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、变址寻址、位寻址和相对寻址等7种寻址方式。 伪指令属于非执行指令,用于对汇编过程提供必要辅助信息,汇编后不会产生机器码。 第3章单片机的汇编语言与程序设计 * * 寄存器A应该是指 累加器A,寄存器B应该是通用寄存器B。寄存器A是专门用来放操作数和运算结果的,51单片机的所有运算几乎都要通过累加器A来实现,不通过累加器A实现不了。而寄存器B是专门为乘法和处罚设计的寄存器,用来放运算前的乘数、除数,运算后的积的低8位、余数,除此之外基本没有其他功能。 * * 第3章单片机的汇编语言与程序设计 设ROM 120H地址开始的10个单元中存放有整数0~9的平方值,则下述程序可实现0~9任意数x的平方值查表,且结果存入片内RAM的y单元功能。 ROM地址 数值 0129H 81 0128H 64 0127H 49 0126H 36 0125H 25 0124H 16 0123H 09 0122H 04 0121H 01 0120H 00 MOV R0,#y ;y是RAM地址 MOV DPTR,#120H ;数据块首地址 MOV A,#x ; 0≤x≤ 9 MOVC A,@A+DPTR MOV @R0,A ;结果送RAM地址 例3.3’: 数据块首地址 * 第3章单片机的汇编语言与程序设计 例3.4:已知0~9的ASCII码为30H~39H。若片内RAM 70H中有一个在0~9范围内的数,试编程把它转换为相应的ASCII码。 解:利用半字节交换指令把0~9装配成相应的ASCII码。 MOV R0,#70H ; R0←#70H MOV A,#30H ; A←#30H XCHD A,@R0 ; A中形成ASCII码 MOV @R0,A ; ASCII码送回70H单元 0-3 * 堆栈只能对direct操作 位传送只能在C与bit间进行 第3章单片机的汇编语言与程序设计 数据传送对象和方向示意图 虚线框为片内RAM 立即数只能作为源操作数 ROM和外部RAM只能与A往来 ROM只能作为源

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档