单片机教学课件.ppt

单片机教学课件.ppt

ID:56974002

大小:2.58 MB

页数:96页

时间:2020-07-25

单片机教学课件.ppt_第1页
单片机教学课件.ppt_第2页
单片机教学课件.ppt_第3页
单片机教学课件.ppt_第4页
单片机教学课件.ppt_第5页
资源描述:

《单片机教学课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2021/8/41第4章汇编语言程序设计本章主要内容汇编语言编程的步骤、方法和技巧单片机汇编语言程序的基本结构MCS-51单片机汇编语言程序设计举例汇编语言源程序的编辑和汇编汇编语言的基本结构顺序结构分支结构循环结构顺序结构顺序结构是最简单的程序结构,即顺序程序。程序按顺序一条一条地执行指令。以16位二进制数求补为例:顺序结构举例【例】设16位二进制数在R1和R0中,求补结果存于R3和R2中。MOVA,R0;16位数低8位送ACPLA;求反ADDA,#01H;加1MOVR2,A;存补码低8位MOVA,R1;取16位数高8位CPLA;求反ADDC

2、A,#00H;加进位MOVR3,A;存补码高8位分支结构程序分支是通过条件转移指令实现的,即根据条件对程序的执行进行判断、满足条件则进行程序转移,不满足条件就顺序执行程序。分支程序又分为单分支结构和多分支结构。在51指令系统中,通过条件判断实现单分支程序转移的指令有:JZ、JNZ、CJNE、DJNZ等。此外还有以位状态作为条件进行程序分支的指令,如JC、JNC、JB、JNB、JBC等。使用这些指令可以完成0、1、正、负,以及相等、不相等作为各种条件判断依据的程序转移。单分支结构举例【例】存放于20H和21H中的两个无符号二进制数,求其中较大的数

3、并存于30H中。解:START:MOVA,20H;将20H中内容送ACJNEA,21H,LOOP1;两数比较,不相等则转LOOP1SJMPLOOP3LOOP1:JCLOOP2;当CY=1,转LOOP2MOV30H,A;CY=0,(A)>(21H)SJMPLOOP3;转结束LOOP2:MOV30H,21H;CY=1,(21H)>(A)LOOP3:END分支结构多分支程序是首先把分支程序按序号排列,然后按序号值进行转移。分支程序结构散转指令转向0分支转向1分支转向n-1分支转向n分支K=0K=1K=n-1K=n┅┅┅多分支结构举例【例】128种分支

4、转移程序。功能:根据入口条件转移到128个目的地址。入口:(R3)=转移目的地址的序号00H~7FH。出口:转移到相应子程序入口。128个子程序首址JMP_128:MOVA,R3RLAMOVDPTR,#JMPTABJMP@A+DPTRJMPTAB:AJMPROUT00AJMPROUT01┇┇AJMPROUT7F说明:此程序要求128个转移目的地址(ROUT00~ROUT7FH)必须驻留在与绝对转移指令AJMP相同的一个2KB存储区内。RL指令对变址部分乘以2,因为每条AJMP指令占两个字节。循环结构在程序运行时,有时需要连续重复执行某段程序,可

5、以使用循环程序。其结构包括四部分:1、置循环初值2、循环体(循环工作部分)3、修改控制变量4、循环控制部分其组织方式如下图所示。置初值循环体循环修改循环控制退出循环未完完置初值循环体循环修改循环控制退出循环未完完循环组织方式流程图循环结构1.置循环初值对于循环程序中所使用的工作单元,在循环开始时应置初值。例如,工作寄存器设置计数初值,累加器A清0,以及设置地址指针、长度等。2.循环体重复执行的程序段部分,分为循环工作部分和循环控制部分。循环控制部分每循环一次,检查结束条件,当满足条件时,就停止循环,往下继续执行其他程序。3.修改控制变量在循环程

6、序中,不许给出循环结束条件。常见的是计数循环,当循环了一定的次数后,就停止循环。在单片机中,一般用一个工作寄存器Rn作为计数器,对该计数器赋初值作为循环次数。每循环一次,计数器的值减1,即修改循环控制变量,当计数器的置件为0时,就停止循环。4.循环控制部分根据循环结束条件,判断是否结束循环。也可采用DJNZ指令来自动修改控制变量并能结束循环。循环结构举例软件延时程序举例当单片机时钟确定后,每条指令的指令周期是确定的,在指令表中已用机器周期表示出来。因此,根据程序执行所用的总的机器周期数,可以较准确地计算程序执行完所用的时间。软件延时是实际经常采

7、用的一种短时间定时方法。循环结构举例1.采用循环程序进行软件延时子程序DELAY:MOVR2,#data;预置循环控制常数DELAY1:DJNZR2,DELAY1;当(R2)≠0时,转向本身RET说明:根据R2的不同初值,可实现5~513(#data=1~255)个机器周期的延时(第1条为单周期指令,第2条为双周期指令,第3条指令为双周期指令)。循环结构举例2.采用双重循环的延时子程序TIME:MOVR1,#0FAH;1个机器周期L1:MOVR0,#0FFH;1个机器周期W1:DJNZR0,W1;2个机器周期;内循环255次DJNZR1,L1N

8、OP;1个机器周期NOP;1个机器周期RET;2个机器周期250外循环次循环结构举例计算延时时间t:N=1+(1+2×255+2)×250+1+1+2

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

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

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