微机控制系统与应用3(2013老师修改补充版).pptVIP

微机控制系统与应用3(2013老师修改补充版).ppt

  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(2013老师修改补充版)

* * * * * * * * * * * 1uS,FAH=250D,DJNZ 2机器周期 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 查表法实现: ORG 1000H MOV A, 20H ;从20H单元取数 MOV DPTR, #BRTAB ;将数据表的首地址给DPTR MOVC A, @A+DPTR ;查表 JMP @A+DPTR ;计算实际地址,跳转 BRTAB: DB BR0-BRTAB ;分支0处理程序入口地址 …… DB BR9-BRTAB ;分支9处理程序入口地址 BR0: …… ;分支0处理程序 BR9: …… ;分支9处理程序 3.4 程序设计举例 * 3.4 程序设计举例 N路分支程序几点说明: (1)跳转表中若用AJMP作跳转指令,最多可实现128路分支。A中是分支号(0~127),RL A左移使A乘以2,成为跳转表的变址部分。分支处理程序必须在对应的AJMP指令的2K范围内。 (2)用LJMP最多可以实现86路分支,A中的分支号(0~85),要对A乘3成为跳转表的变址部分。分支处理程序可以分布在整个64K范围内。 3.4 程序设计举例 * 3 循环结构程序 循环程序指计算机反复执行某段程序,该程序段通常称为循环体。程序循环是通过条件转移指令进行控制的,根据条件是否成立控制循环是否进行。 循环程序通常包含四个组成部分: (1)循环准备:设置循环次数等参数; (2)循环体:是要求重复执行的部分; (3)循环修改:修改循环次数及有关变量参数等; (4)循环控制部分:根据循环结束条件来判断是否结束循环。 例5:多字节无符号数加法,R0、R1指向加数起始地址(低字节),R2为字节长度,和存放在R0指向的地址,R3存和的字节长度。(先低后高) ORG 2000H MADD: PUSH PSW ;保护PSW内容 CLR C ;进位位清0 MOV R3,#00H ; ADD10: MOV A,@R0 ;相加 ADDC A,@R1 ; MOV @R0,A ; INC RO ;地址加1 INC R1 ; INC R3 ;和的长度加1 DJNZ R2,ADD10 ;判断是否加完 JNB CY,ADD20 ;和的最高字节是否有进位 MOV @R0,#01H ;和的最高字节为1 INC R3 ;和的长度加1 ADD20: POP PSW ;恢复PSW内容 RET ;子程序返回 * 3.4 程序设计举例 * 4 子程序结构 子程序应具备特性 (1)通用性 子程序必须适应于各种应用程序的调用,因而子程序的参数应是可变的 (2)可浮动性 子程序可以不加任何修改而放置在存储器的任何区域。子程序的首地址应该用符号地址。 (3)可递归性和可重入性 可递归性是指子程序可以调用自己,可重入性是指一个子程序可以同时被多个程序调用。针对大规模复杂系统。 参数传递方法 (1)传递数据 将数据通过工作寄存器R0~R7或者累加器A来传送。 (2)传递地址 数据存放在数据存储器中,参数传递时只通过R0、R1和DPTR传递数据所存放的地址。 3.4 程序设计举例 * 现场保护 进入子程序后,有关的RAM单元和工作寄存器的内容,以及各标准的状态都不应因调用子程序而改变。 方法: (1)一进入子程序,将子程序将会使用或会改变内容的工作单元的内容压入堆栈 (2)在子程序完成处理,要返回前,把堆栈里的数据弹出到原来对应的工作单元,恢复原来的状态,再返回。 (3)对于所使用的工作寄存器的保护可通过改变工作寄存器组的方法。 子程序接口说明文件 说明子程序功能的文字,便于程序的使用及程序的调试和修改。 (1)子程序名称 (2)子程序功能 (3)入口参数及格式 (4)出口参数及格式 (5)子程序中所使用的寄存器和工作单元 (6)调用其他子程序的名称 3.4 程序设计举例 * 例6:通过调用子程序实现延时100ms ;子程序名称:DELAY ;功能:延时1~256ms,fosc=12MHz ;入口参数:R3=延时的ms数(二进制表示);出口参数:无 ;使用通用寄存器:R2、R3 ;调用:无 ;子程序DELAY DELAY: MOV R2, #0FAH LOOP: NOP NOP DJNZ R2, LOOP DJNZ R3, DELAY RET ;主

文档评论(0)

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

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

1亿VIP精品文档

相关文档