八路跑马灯程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
八路跑马灯
一、实验目的与要求
(1)熟悉单片机实验开发装置实验台上的资源,学会选用其功能电路,连接组成实验需要的系统;
(2)学习并了解MCS-51单片机P1口的应用及使用方法;
(3)学习编写接口应用程序及延时子程序;
(4)编写实验程序,实现从P0口输出信号驱动发光二极管L1~L8动态点亮的功能;二、二、实验程序功能
延时实现LED流水灯效果,p1端口的八个灯作跑马灯。在本实验中,P1作为输出口,接8只发光二极管,编写程序,使发光二极管循环点亮。本例实验主要用到了延时子程序,CLR、AJMP、RRC、RLC、CALL等指令,通过轮流点亮P0.0…..P0.7实现效果。
程序功能:
(1)使8个跑马灯从右至左依次点亮点亮;
(2)再使跑马灯从左至右依次点亮;
(3)一个循环结束后接着按上面的一二步骤循环;
三、实验电路原理图及硬件接线
图1.1 电路原理图
硬件接线:把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极
管指示模块”区域中的L1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应着L8。
四、实验程序
○1程序内容
ORG 0000H
AJMP START
ORG 0030h
START:
MOV A,#0FFH
CLR C
MOV R1,#08H ;循环八次。
LOOP: RLC A ;带进位左移。
MOV P1,A ;输出到P1口。
CALL DELAY ;延时一段时间
DJNZ R2,LOOP ;反复循环
MOV R2,#07H ;再往回循环。
LOOP1: RRC A ;带进位右移
MOV P1,A ;输出到P1口。
CALL DELAY ;延时一段时间
DJNZ R2,LOOP1 ;反复循环
JMP START ;重新开始
DELAY: MOV R3,#20 ;延时子程序
D1: MOV R4, #20
D2: MOV R5, #248
DJNZ R5, $
DJNZ R4, D2
DJNZ R3, D1
RET
○2基本工作原理:
我们可以运用输出端口指令MOV P1,A或MOV P1,#DATA,只要给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作。
每次送出的数据是不同,具体的数据如下表1所示
表1 五、实验程序流程图
图1-2
六:实验过程截图
七:实验效果描述及总结
将程序烧到硬件中去后,开始演示,P1口的八个二极管会依次从P1.0亮至P1.7,每次亮灯时会有一定延时,再从P1.7亮至P1.0,如此一个循环结束,重新开始第二个循环,从而实现跑马灯的效果。
此次实验,我不仅重新复习了单片机课程的学习内容,而且更加宽泛的掌握了一些知识。学会了keil软件的基本使用和程序的烧录以及运行。主要的是培养了自己独立动手的能力和总结能力,自己受益匪浅。