单片机与嵌入式系统原理及应用教学课件 作者 王宝珠第4章MCS-51单片机汇编程序设计.ppt

单片机与嵌入式系统原理及应用教学课件 作者 王宝珠第4章MCS-51单片机汇编程序设计.ppt

ID:51964227

大小:929.50 KB

页数:47页

时间:2020-03-26

单片机与嵌入式系统原理及应用教学课件 作者 王宝珠第4章MCS-51单片机汇编程序设计.ppt_第1页
单片机与嵌入式系统原理及应用教学课件 作者 王宝珠第4章MCS-51单片机汇编程序设计.ppt_第2页
单片机与嵌入式系统原理及应用教学课件 作者 王宝珠第4章MCS-51单片机汇编程序设计.ppt_第3页
单片机与嵌入式系统原理及应用教学课件 作者 王宝珠第4章MCS-51单片机汇编程序设计.ppt_第4页
单片机与嵌入式系统原理及应用教学课件 作者 王宝珠第4章MCS-51单片机汇编程序设计.ppt_第5页
资源描述:

《单片机与嵌入式系统原理及应用教学课件 作者 王宝珠第4章MCS-51单片机汇编程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章MCS-51单片机汇编程序设计第4章MCS-51单片机汇编程序设计汇编语言是面向机器硬件的语言。使用汇编语言作为程序设计语言,易于与单片机的内部硬件结构密切配合,具有编写直观,便于理解记忆,占用存储空间小,运行速度快,效率高等特点。因此,使用汇编语言能编写出最优化的程序。在单片机的应用程序设计中,一般采用顺序结构、分支结构和循环结构。除此之外,应用程序的编写目前均遵循模块化的编程思想。通常会将那些需要多次应用的、功能单一的程序段从整个程序中独立出来,单独编程一个程序段,需要时通过指令进行调用。

2、4.1程序编制的方法和步骤用汇编语言进行程序设计的过程大致可以分为以下几个步骤。(1)明确要求目的。明确对程序的功能、运算精度、执行速度等方面的要求及硬件条件。(2)把复杂问题分解为若干个模块,确定各模块的处理方法,画出程序流程图(简单问题可以不画)。(3)分配内存地址,如各程序段的存放地址、数据区地址、工作单元分配等。(4)编写程序,根据流程图选择合适的指令和寻址方式来编写程序。(5)对程序进行汇编、调试和修改。对编写好的源程序进行汇编,检查并修改程序中的错误,执行目标程序,分析运行结果,直至正确

3、为止。另外,编程者要特别明确程序、数据在存储器的存放位置,工作寄存器、片内数据存储单元以及堆栈空间等的安排。4.2数据传送程序设计【例4-1】将一个双字节数存入片内RAM。设待存双字节,低字节在累加器A中,高字节在工作寄存器R2中,要求低字节存入片内存储器RAM的35H单元,高字节存入片内存储器RAM的36H单元。程序如下:MOVR0,#35H;R0作为地址指针指向35H单元MOV@R0,A;低字节存入35H单元INCR0;R0指向36H单元XCHA,R2;R2与A的内容交换,把待存的高字节交换到A

4、中MOV@R0,A;高字节存入36H单元XCHA,R2;R2与A的内容再次交换,恢复原状态4.2数据传送程序设计【例4-2】将一个多字节数存入片外RAM。把片内RAM的30H~3FH的16个字节的内容传送到片外RAM的3000H单元位置处片内RAM与片外RAM数据传送通过累加器A过渡,片内RAM与片外RAM分别用指针指向,每传送一次,指针向后移一个单元,重复16次即可实现。程序如下:4.2数据传送程序设计ORG0000HLJMPMAINORG0200HMAIN:MOVR0,#30HMOVDPTR,#

5、3000HMOVR2,#16LOOP:MOVA,@R0MOVX@DPTR,AINCR0INCDPTRDJNZR2,LOOPSJMP$END4.3查表程序设计在单片机应用系统中,查表程序是一种常用的程序,使用它不仅能够完成数据补偿、计算、转换等各种功能,而且还具有程序简单、执行速度快等优点。【例4-3】一位十六进制数转换8段式数码管显示码。一位十六进制数0~9、A、B、C、D、E、F的8段式数码管的共阴极显示码为3FH、06H、5BH、4FH、66H、6DH、7DH、07H、7FH、67H、77H、7

6、CH、39H、5EH、79H、71H。由于数与显示码没有规律,不能通过运算得到,只能通过查表方式得到。设数放在R2中,查得的显示码也放于R2中,用MOVCA,@A+DPTR查表。程序如下:4.3查表程序设计ORG0200HCONVERT:MOVDPTR,#TAB;DPTR指向表首址MOVA,R2;转换的数放于AMOVCA,@A+DPTR;查表指令转换MOVR2,ARETTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,67H,77H,7CH,39H,5EH,79H

7、,71H显示码表在这个例子中,编码是一个字节,只通过一次查表指令就可实现转换,如编码是两个字节,则需要用两次查表指令才能查得编码,第一次取得低位,第二次取得高位。4.3查表程序设计【例4-4】在一温度控制系统中,温度0~100℃每一个温度值都已经通过温度传感器测得一个两字节的标准电压值。现在R2中给出一个0~100℃的温度值,取得它的标准电压值放于R3、R4中,低字节放在R3中,高字节放在R4中。通过用MOVCA,@A+DPTR查表,两个字节分两次取得,由DPTR指向表首,由放于R2中的温度值得到所

8、查的电压值相对于表首位置的位移量放于累加器A中,由于每一个电压值为两个字节,位移量须用R2中的温度值乘以2得到。第一次取得低字节,第二次位移量加1后查表取得高字节,分别放于R3、R4中。程序如下:4.3查表程序设计ORG0300HCHECK:MOVDPTR,#TAB;指向表首MOVA,R2;温度值送ACLRCRLCA;乘2得位移量MOVR1,A;位移量暂存于R1中MOVCA,@A+DPTRMOVR3,A;第一次查得内容送R3MOVA,R1;取出暂存的位移量送AINCA

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

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

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