版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二十讲,汇编语言子程序设计举例,1,课堂互动八,2,题一、在51系列单片机的指令系统中,计算指令的时间单位是什么,题二、在51系列单片机的指令系统中,最长指令的机器周期是多少,题三、若单片机的时钟频率为24Mhz,那么一个机器周期的时间是多少,题四、在51系列单片机的指令系统中,最长的指令字节是多少,题五、汇编语言中,伪指令的作用是什么,题六、汇编语言中,伪指令与机器指令的区别是什么,题七、什么是子程序的安全性问题,题八、解决子程序的安全性问题的方法有哪些,例4-14,编制一个子程序,其功能是延时100ms。设系统时钟频率为12Mhz,解:所谓延时程序就是让CPU空转一段时间,这在控制程序中
2、经常遇到。延时的控制涉及到指令的执行周期,而指令执行的周期又与CPU的时钟频率有关。根据第三章3.6节所述,若系统时钟频率为12Mhz,则每一个机器周期是1s。延时程序结构一般采用循环程序结构,如果延时时间较长,则需要采用多重循环结构程序。按题意,程序编制如下,3,例4-14程序,延时100ms子程序 ;入口参数:子程序名D100MS,影响0区寄存器R6、R7。 ;出口参数:无。 D100MS:MOVR7,#200; LOOP1:MOVR6,#250 LOOP2:DJNZR6,LOOP2; DJNZR7,LOOP1; RET,4,延时子程序时间的计算方法,指令“DJNZR6,LOOP2”执行一
3、次需要2个机器周期,也就是2s,该指令被执行的次数为:250200=50,000次,耗时500002s=100,000s=100ms,5,仔细计算以上子程序的延时,应该将所有指令的耗时全部计上,精确的耗时计算如下,第一条指令耗时:11s=1s。 第二条指令耗时:11s200=200s。 第三条指令耗时:21s50000=100ms。 第四条指令耗时:21s200=400s 。 第五条指令耗时:21s =2。 总共耗时为:1+200+100000+400+2=100603s=100.603ms,6,较精确的延时子程序,D100MS:MOVR7,#200; LOOP1:MOVR6,#248; NO
4、P; LOOP2:DJNZR6,LOOP2; DJNZR7,LOOP1; RET,以上程序总共耗时为:1+200+200+2002482+2002+2=1000003s=100.003ms,7,例4-15,编制一子程序,将5个压缩BCD码转换成10个非压缩BCD码,如图4-7所示。设进子程序前,压缩BCD码被放在40H为首地址的内部数据存储器中;子程序运行后,非压缩BCD放在50H为首地址的内部数据存储器中,ACC,00H,R0,R1,8,例4-15程序,5个压缩BCD码转换成10个非压缩BCD码子程序 ;入口参数:子程序名BCDCON,压缩BCD码被放在40H为首地址的内部数据存储器中。影响
5、1区寄存器R0、R1和R6。 ;出口参数:非压缩BCD码放在50H为首地址的内部数据存储器中,9,例4-15程序续,BCDCON:PUSHACC;保护现场。 PUSHPSW;保护现场。 MOVPSW,#08H;将工作寄存器设置在1区。 MOVR0,#40H;设置压缩BCD码数据区指针。 MOVR1,#50H;设置非压缩BCD码数据区指针。 MOVR6,#5;设置计数器。 LOOP:CLRA;把ACC清零。 XCHDA,R0;将压缩BCD码与ACC的低4位交换。 MOVR1,A;存放已形成的非压缩BCD码,10,例4-15程序续,INCR1;调整数据区指针。 MOVA,R0;将压缩BCD码的高4
6、位送入ACC。 SWAPA;形成非压缩BCD码。 MOVR1,A;存放已形成的非压缩BCD码。 INCR1;调整非压缩BCD码数据区指针。 INCR0;调整压缩BCD码数据区指针。 DJNZR6,LOOP;若数据未转换完,则继续转换。 POPPSW;若数据已转换完,则恢复现场。 POPACC;恢复现场。 RET,11,定点数运算程序设计,1、双字节补码加法程序设计,例4-16:编一子程序,完成两双字节补码相加。设加数和被加数分别存放在R2R3和R4R5中,运算的结果存放在R6R7中。若运算结果发生溢出,使00H位单元=1;反之,使00H位单元=0,12,程序编制,双字节补码加法子程序 ;入口参数:子程序名COMADD,加数和被加数分别存放在0区寄存器R2R3和R4R5中。 ;出口参数:运算的结果存放在0区寄存器R6R7中。若运算结果发生溢出,00H位单元=1;反之,00H位单元=0,FLAGBIT00H;定义设置溢出标志位。 COMADD:PUSHPSW;保护现场。 PUSHACC;保护现场。 MOVA,R3;取补码数据的低8位于ACC。 ADDA,R5;补码数据的低8位相加,13,程序编制续,MOVR7,A;存放补码数据的低8位相加的结果。 MOVA,R2;取补码数据的高8位于ACC。 ADDCA,R4;补码数据的高8位相加,并加低8位进位。 MOVR6,A;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肿瘤病人膳食调养
- 选修第一节课时脂肪烃
- 颅脑创伤的急救护理课件
- 投资项目可行性研究报告与投资决策其他手续的关系
- 麻疹知识相关培训
- 2024年辽宁年低压电工证题库电工证实操考什么内容(全国版)
- 第十章 极地地区
- 第八单元 第7课时 练习六2023-2024学年一年级数学上册 《新征程》同步教案(苏教版)
- 初心作文700字以上【5篇】
- 有关大学生的自我鉴定3篇
- 江西南昌大学招考聘用模拟检测试卷【共1000题含答案解析】
- 职业技能鉴定《四级烟草专卖管理师》考试真题一
- 新标准日本语初级
- GB/T 12470-2018埋弧焊用热强钢实心焊丝、药芯焊丝和焊丝-焊剂组合分类要求
- 大学物理00绪论
- 静压桩临时用电施工方案
- 小学劳动 包饺子课件
- 天合光能案例介绍及光伏行业特点分析
- 最新中建CI报价单-2013
- 银保沉睡客户唤醒运营网纱项目介绍流程要点课件
- 人口老龄化老年化专题课件
评论
0/150
提交评论