- 1、本文档共154页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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μs2) 双重循环延时,延时时间Δt=[(2×100+2+1)×10+1+2]μs=2033μs3) 三重循环延时,程序流程如图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
您可能关注的文档
最近下载
- ECMO联合CRRT技术_精选完整版.pptx
- 劳保采购合同范本 .pdf VIP
- GB_T 43697-2024 数据安全技术 数据分类分级规则.docx
- 22J403-1 楼梯 栏杆 栏板一 (1).docx VIP
- 毕业设计(论文)-土豆筛选机设计.docx
- 冀教版一年级下册美术第6课《灵巧的手》教学课件.pptx VIP
- 2025年郑州黄河护理职业学院单招职业技能测试题库及答案(历年真题).docx
- 【历史】辽宋夏金元时期经济的繁荣课件 2024-2025学年七年级历史下册.pptx VIP
- 中齿培训:赢在接诊.pptx VIP
- DB31∕T 1135-2019 健康旅游服务基地建设运营管理规范.docx VIP
文档评论(0)