项目2 灯光闪烁

项目2 灯光闪烁

ID:20378622

大小:121.36 KB

页数:8页

时间:2018-10-10

项目2   灯光闪烁_第1页
项目2   灯光闪烁_第2页
项目2   灯光闪烁_第3页
项目2   灯光闪烁_第4页
项目2   灯光闪烁_第5页
资源描述:

《项目2 灯光闪烁》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、项目2灯光闪烁[学习目标及要求]1.学用程序方框图;2.重点掌握MOV、LCALL、LJMP、DJNZ、RET等指令(12条);3.了解ORG、END伪指令的用法;4.初步理解单片机内部结构资源:工作寄存器(R0—R7);5.掌握软件延时程序的编程方法;(难点)6.理解机器周期的相关概念。[示范与模仿]“灯光闪烁”操作任务如图2-5所示:在P1.0端口上接一个发光管L1,使L1在不停地一亮一灭;一亮一灭的时间间隔为0.2秒。图2-5“灯光闪烁”硬件电路操作步骤实验箱的使用与Keil软件的基本使用同前,不在重复。①统板上硬件连线:把“单片机系统”区域中

2、的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。②编写汇编源程序:;“灯光闪烁”汇编源程序---dgss.asmORG00;新涉及的伪指令START:SETBP1.0LCALLDELAY;新涉及的指令CLRP1.0LCALLDELAYLJMPSTART;新涉及的指令DELAY:MOVR5,#20;新涉及的指令D1:MOVR6,#20D2:MOVR7,#248DJNZR7,$;新涉及的指令DJNZR6,D2DJNZR5,D1RET;新涉及的指令END;新涉及的伪指令③编译、连接、调试与运行,并观察实际结果。项目2-2[相关知识与

3、技能点]1、程序中所涉及的新指令(参照“MCS-51汇编指令简表”)⑴新指令指令格式:LCALLaddr16功能:控制转移类指令;是长调用子程序指令,可表示为addr16→PC;字节数为3,周期数为2。说明:addr16为子程序起始地址(又叫入口地址)。PC是单片机中的一个16位程序计数器,里面存放的是将要执行指令的地址,又叫程序指针。LCALLaddr16执行过程见图2-6。图2-6调用子程序示意图该指令为程序存储器64KB地址范围内的调用子程序指令,子程序可在64KB地址空间的任一处。堆栈:实际上就是数据存储器(RAM)里的一块,只不过存取数据时

4、有个特点,即“先进去的数据后出来,后进去的数据先出来”,数据是一个压着一个堆起来的。上面的数据不取出,下面的数据也出不来。类似的指令有:ACALL。指令格式:ACALLaddr11功能:控制转移类指令;是短调用子程序指令,可表示为addr11→PC;字节数为2,周期数为2。说明:基本作用同LCALLaddr16,只是该指令为2KB地址范围内的调用子程序指令,子程序入口地址距当前PC不得超过2KB地址范围。注:在使用调用子程序指令时,如不清楚地址范围,可以全用LCALL指令,功能是一样的,地址范围是最大的,只是多用一个字节的程序存储空间。而在实际编程时

5、,其子程序的入口地址往往是用一个标号来实现,如本程序中的DELAY标号,而不用管它的具体地址值是多少。指令格式:RET功能:控制转移类指令;是子程序返回指令;字节数为1,周期数为2。说明:每个子程序必须以RET指令结束。其作用是从堆栈中自动取出断点的地址值送到PC,从子程序返回到主程序。指令格式:Ljmpaddr16功能:控制转移类指令;是一个长转移指令,可表示为addr16→PC;字节数为3,周期数2。说明:该指令被执行后,其后的addr16地址值送到PC,然后,程序跳转到addr16处去执行。跳转范围为64KB程序存储器的全部地址。类似的指令还有

6、:AJMP、SJMP。指令格式:Ajmpaddr11功能:控制转移类指令;是一个短转移指令,可表示为addr11→PC;字节数为2,周期数2。说明:功能同LJMP,只是用于2KB地址范围内的转移。指令格式:Sjmprel功能:控制转移类指令;是一个无条件相对转移指令,可表示为PC+rel→PC;字节数为2,周期数2。说明:rel为相对当前地址的用一个有符号字节数表示的偏移量,其偏移范围为-127~+127,转移可以向前转移(目的地址小于当前地址),也可向后转移(目的地址大于当前地址)。注:在使用转移指令时,如不清楚地址范围,可以全用LJMP指令,功能

7、是一样的,地址范围是最大的,只是多占用一个字节的程序存储空间。而在实际编程时,其目的地址(不论是16位地址,还是11位地址或是rel)往往是用一个标号来实现,如本程序中的START标号,而不用管它的具体地址值是多少。指令格式:DjnzRn,rel功能:控制转移类指令;是一个条件转移指令,可表示为Rn-1→Rn,Rn≠0时,则PC+rel→PC;字节数为2,周期数2。说明:该指令是寄存器自动减1不为零转移的指令;Rn为单片机中的工作寄存器(R0~R7)。该指令的作用是先对Rn中的值自动减1,然后判断Rn中的值是否为零?如果为零,程序则顺序往下执行;如果

8、不为零,程序则转移到目标地址处执行。类似的指令有:指令格式:Djnzdirect,rel功能:控制转移类指令

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

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

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