第5章 MCS-51汇编语言程序设计ppt课件.ppt

第5章 MCS-51汇编语言程序设计ppt课件.ppt

ID:59208309

大小:220.50 KB

页数:47页

时间:2020-09-26

第5章 MCS-51汇编语言程序设计ppt课件.ppt_第1页
第5章 MCS-51汇编语言程序设计ppt课件.ppt_第2页
第5章 MCS-51汇编语言程序设计ppt课件.ppt_第3页
第5章 MCS-51汇编语言程序设计ppt课件.ppt_第4页
第5章 MCS-51汇编语言程序设计ppt课件.ppt_第5页
资源描述:

《第5章 MCS-51汇编语言程序设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章MCS-51的汇编语言程序设计1汇编和高级语言程序设计的过程:首先对问题进行分析,然后确定算法,再根据算法流程编写程序,最后是调试程序。汇编语言程序设计的独特点在于:(1)用汇编语言进行程序设计时,对数据的存放、寄存器和工作单元的使用等要由设计者安排。而高级语言程序设计时,这些工作都由计算机软件安排,程序设计者不必考虑。2(2)汇编语言程序设计要求设计人员必须对所使用的计算机的硬件结构有较为详细的了解。特别是对各类寄存器、端口、定时器/计数器、中断等内容要熟悉,以便在程序设计时能熟练使用。汇编语言程序共有四种结构形式:顺序结构、循环结构、分支结

2、构和子程序结构。35.1顺序程序设计5.2循环程序设计5.3分支程序设计5.4子程序设计45.1顺序程序设计顺序程序是最简单的程序结构.例5-1已知内部RAM40H单元存放着一个压缩的BCD码,试编程将其变成非压缩的BCD码,并将其低位和高位分别存于内部RAM的41H和42H单元。解:BCD码压缩BCD码:4位二进制表示1位十进制数非压缩BCD码:8位二进制表示1位十进制数5非压缩的BCD码:压缩的BCD码:45=0100,010145=0000,0100,0000,0101常用于显示数字的场合。方法:采用与指令.6ORG0MOVA,40HANLA,

3、#0FH;屏蔽高4位,保留低4位MOV41H,A;保存40H中的低半字节MOVA,40H;重新取数SWAPA;高低半字节交换ANLA,#0FHMOV42H,A;保存40H中的高半字节NOPEND7例5-2若内部RAM30H中存放的是1位BCD码,通过查表将其转换成为相应的共阴极七段字形代码,并存入内部RAM的31H中。(a)外型结构(b)共阴极(c)共阳极数码管结构图acedbgfh8hgfedcba001111113FHacedbgfh9数字0~9的共阴极字形代码分别为3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH。

4、方法:由于代码没有规律,故用查表指令完成。ORG0MOVA,30HMOVDPTR,#TAB;地址修正MOVCA,@A+DPTRMOV31H,A;双字节指令TAB:DB3FH,06H,5BH,4FH,66H;字形代码表DB6DH,7DH,07H,7FH,6FHEND10例5-2若内部RAM30H中存放的是1位BCD码,通过查表将其转换成为相应的共阴极七段字形代码,并存入内部RAM的31H中。TAB:DB3FH,06H,5BH,4FH,66H;字形代码表DB6DH,7DH,07H,7FH,6FHENDORG0MOVA,30HMOVDPTR,#TAB;地址

5、修正MOVCA,@A+DPTRMOV31H,A;双字节指令115.2循环程序设计循环初态直到型循环当型循环12循环程序一般由四个主要部分组成:(1)初始化部分:为循环程序做准备,如规定循环次数、给各变量和地址指针预置初值。(2)处理部分:为反复执行的程序段,是循环程序的实体,也是循环程序的主体。(3)循环控制部分:这部分的作用是修改循环变量和控制变量,并判断循环是否结束,直到符合结束条件时,跳出循环为止。(4)结束部分:这部分主要是对循环程序的结果进行分析、处理和存放。13循环:单重循环多重循环(二重以上)--循环嵌套。在多重循环程序中,只允许外重循

6、环嵌套内重循环程序,而不允许循环体互相交叉,另外,也不允许从循环程序的外部跳入循环程序的内部。14例5-3已知两个十进制数的BCD码分别从内部RAM30H和40H开始存放(低位在前),其字节长度存放在50H单元。编程实现两个十进制数的求和,并把求和结果存放在从30H开始的单元中。15ORG0MOVR0,#30H;设置指针MOVR1,#40HMOVR2,50H;取循环次数CLRC;进位位清零REP:MOVA,@R0;取一个加数ADDCA,@R1;相加DAA;十进制数的BCD码调整MOV@R0,A;保存和INCR0INCR1DJNZR2,REP;若(R2

7、)-1≠0,则重复END16例5.4利用CJNE指令为循环控制条件,实现将外部RAM的2000H~201FH单元置为10H。ORG4200HSTART1:MOVR0,#0;设置循环初始值MOVDPTR,#2000HMOVA,#10HLOOP1:MOVX@DPTR,A;外部RAM单元清零INCDPTR;外部RAM单元加1INCR0;循环次数加1CJNER0,#20H,LOOP1;循环控制END17延时程序所花费的时间是该程序指令的总机器周期数与机器周期的乘积。通常,延时程序采用MOV和DJNZ指令来实现。单循环延时程序,最大的循环次数为256,则程序段

8、为:MOVR0,#00H;机器周期数为1DJNZR0,$;机器周期数为2例5.5设MCS-51单片机的晶振频

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。