网站大量收购独家精品文档,联系QQ:2885784924

单片微机原理与应用 教学课件 作者 罗印升 素材包 第3章 51系列单片机的指令系统和程序设计方法.ppt

单片微机原理与应用 教学课件 作者 罗印升 素材包 第3章 51系列单片机的指令系统和程序设计方法.ppt

  1. 1、本文档共154页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.8.5 循环结构程序设计 1) 循环初始化。 2) 循环体。 3) 循环控制。 4) 循环结束。 1.单重循环程序 2.多重循环程序 图3-24 循环程序结构 a)先处理后控制 b)先控制后处理 图3-25 例3-42流程图 图3-26 例3-43流程图 图3-27 例3-44图 a)硬件连线图 b)程序流程图 3.8.6 子程序设计 1.子程序的调用与返回 2.保存与恢复寄存器内容 3.子程序的参数传递 4.子程序的嵌套 5.典型子程序设计 0 1  2  3   4   5   6   7   8   9   A   B   C   D   E   F 1.子程序的调用与返回 (1) 子程序的调用 (2) 子程序的返回 2.保存与恢复寄存器内容 (1) 保护现场 (2) 恢复现场 3.子程序的参数传递 1) 应用工作寄存器或累加器传递参数。 2) 应用内存单元。 3) 应用堆栈传递参数。 4) 利用位地址传送子程序参数。 图3-28 子程序嵌套示意图 4.子程序的嵌套 在子程序中若再调用子程序,称为子程序的嵌套,如图3-28所示。51系列单片机也允许多重嵌套。 5.典型子程序设计 (1) 延时程序 (2) 查表程序 (3) 代码转换程序 (1) 延时程序 解:根据题意,延时子程序的时限可以有以下几种方法。 1) 单循环延时,延时时间Δt=(2×10+1+2)μs=23μs 2) 双重循环延时,延时时间Δt=[(2×100+2+1)×10+1+2]μs=2033μs 3) 三重循环延时,程序流程如图3-29所示。 (1) 延时程序 图3-29 延时子程序 流程图 (2) 查表程序 解:计算某数的二次方可采用查表的方法实现,并编写成子程序。只要两次调用子程序,并求和就可得运算结果。 图3-30 例3-46流程图 (3) 代码转换程序 解:在单片机汇编程序设计中,主要涉及十六进制的16个符号“0~F”的ASCII码及其数值的转换。ASCII码是有一定规律的,数字0~9的ASCII码为该数值加上30H,而对于字母“A~F”的ASCII码为该数值加上37H。“0~F”对应的ASCII码如下: 1) 入口参数。 2) 出口参数。 (4) 算术运算子程序 1W20.TIF 3.8.7 综合编程举例 1) 输入信号。 2) 输出信号。 (1) 将累加器内容送工作寄存器R0。 (2) 将累加器内容送片内RAM的7BH单元。 (3) 将累加器内容送片外RAM的7BH单元。 (4) 将累加器内容送片外RAM的007BH单元。 (5) 将片外ROM中007BH单元内容送累加器。 (1) MOV A,#24H 与MOV A,24H (2) MOV A,R0 与 MOV A,@R0 (3) MOV A,@R0 与 MOVX A,@R0 (1) MOV R0,#30H (2) MOV A,@R0 (3) MOV R1,A 3.8.7 综合编程举例 (4) MOV B,@Rl (5) MOV @R0,P1 (6) MOV P3,P1 (7) MOV 10H,#20H (8) MOV 30H,10H (1) MOV R6,A (2) MOV @R0,A (3) MOV A,#90H (4) MOV A,90H (5) MOV 80H,#81H (6) MOVX @R0,A (7) PUSH A (8) SWAP A 3.8.7 综合编程举例 (9) XCH A,R0 (1) MOV A,@R1 (2) MOVX @DPTR,A (3) MOVC A,@A+DPTR (4) XCHD A,@R1 (1) ADD A,@R1 (2) ADDC A,78H (3) SUBB A,#77H (4) INC R1 (5) DEC 78H (6) MUL AB (7) DIV AB (8) ANL 78H,#78H 3.8.7 综合编程举例 (9) ORL A,#0FH (10) XRL 80H,A 图3-31 例3-49图 图3-32 例3-50图 图3-33 例题3-51程序流程图 (10) XRL 80H,A 图3-34 习题3-27图 (1) 子程序的返回 RET  ;PC15~PC8←(SP),(SP)←(SP)-1 ;PC7~PC0←(SP),(SP)←(SP)-1 指令功能:RET (Return)指令从堆栈中取出16位断点地址送回PC,使子程序返回主程序。 (2) 中断返回指令 RETI;PC15~PC8←(SP),(SP)←(SP)-1 ;PC7~PC0←(SP),(SP)←(SP)-1 指令功能:RETI (Retu

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档