《单片机原理及应用教程》第4章单片机的程序设计.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:16 大小:169KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

《单片机原理及应用教程》第4章单片机的程序设计.ppt

《单片机原理及应用教程》第4章单片机的程序设计.ppt

预览

免费试读已结束,剩余 6 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

MCS-51单片机原理及应用教程第4章单片机的程序设计有一些指令,如指定目标程序或数据存放的地址、给一些指定的标号赋值、表示源程序结束等指令,并不产生目标程序(机器码),也不影响程序的执行,仅仅产生供汇编用的某些命令,用来对汇编过程进行某种控制或操作,这类指令称为伪指令。4.1.2定义汇编结束伪指令4.1.5定义字伪指令4.2汇编语言源程序的编辑与汇编4.3.1顺序程序程序清单如下:ORG0030HSTART:MOVA,30H;(A)←XSUBBA,31H;(A)←(A)-XMOVB,32H;(B)←ZMULABMOV34H,B;(34H)←A*B的高字节MOV35H,A;(35H)←A*B的低字节SJMP$例2编写双字节无符号数乘法程序。被乘数高字节放在R2中,低字节存放在R3中,乘数高字节放在R6中,低字节放在R7中。乘积在R2、R3、R4、R5中。4.3.2分支程序程序如下:MOVA,30HCJNEA,31H,K1MOV42H,AAJMPWAITK1:JNCK2MOV41H,AMOV40H,31HAJMPWAITK2:MOV40H,AMOV41H,31HWAIT:AJMP$4.3.3循环程序例2在内部RAM30H开始的连续单元中,存放着20个无符号数,编写一段程序,使这20个数按照由大到小的顺序依次排列。MOVR0,#30HMOVR7,#19;设置外循环计数器OUTSIDE:MOVR6,00H;设置内循环计数器PUSH00H;0组R0进栈MOVA,@R0;取内循环的第一个数INSIDE:INCR0;修改内循环间址指针MOVB,@R0CJNEA,B,$+3;比较A与@R0的大小JNCNEXTCH;大于等于不交换XCHA,R0;小于交换NEXTCH:DJNZR6,INSIDE;判内循环是否结束POP00H;内循环结束,R0出栈MOV@R0,A;存内循环的最大值INCR0;修改外循环指针DJNZR7,OUTSIDE;判外循环是否结束SJMP$2.子程序举例例3将4位二进制数转换成ASCII码。入口条件:待转换的4位二进制数存入R2中。出口状态:转换后的ASCII码存R2中。ASCB:PUSHPSW;保护现场PUSHAMOVA,R2ANLA,#0FH;取出四位二进制数PUSHA;存入堆栈CLRCSUBBA,#0AHPOPA;弹回A中JCLOOP;该数小于10,则转LOOPADDA,#07H;否则加07HLOOP:ADDA,#30H;加30HMOVR2,A;转换后的ASCII码存入R2POPA;恢复现场POPPSWRET4.4思考练习题