单片机课程实验报告延时子程序.docx
《单片机课程实验报告延时子程序.docx》由会员分享,可在线阅读,更多相关《单片机课程实验报告延时子程序.docx(11页珍藏版)》请在冰豆网上搜索。
单片机课程实验报告延时子程序
单片机实验报告
实
验
报
告
单片机实验报告
一、实验目的:
学习P1口的使用方法,学习延时子程序的编写
二、实验要求:
以P1口作为输出口,控制6个发光二极管,模拟交通信号灯的管理。
在实验仪上选择两组红、黄、绿指示灯,代表交通信号灯。
设有一个十字路口为东西南北方向,其中东西方向为支路,南北方向为主路。
初始状态为4个路口的红灯全亮。
之后,南北路口的绿灯亮,东西路口的红灯亮。
南北路口方向通车,延时20秒后,南北路口绿灯熄灭,黄灯开始闪烁,闪烁5次后红灯亮。
而同时东西方向路口的绿灯亮,东西方向开始通车,延时10秒后,东西路口的绿灯熄灭,而黄灯开始闪烁。
闪烁5次后,在切换到南北路口的绿灯亮,东西路口的红灯亮。
之后重复上述过程。
三、实验电路:
四、程序框图:
五、程序清单:
ORG4000H;定义程序存放区域的起始地址
START:
CLRP1.0;红灯亮
LOOP:
SETBP1.1
SETBP1.2
CLRP1.5
SETBP1.6
SETBP1.7
ACALLDELAYS
SETBP1.0;南北绿灯亮,东西红灯亮
CLRP1.2
ACALLDELAYL2;长延时20s
MOVR3,#5;南北黄灯闪烁5次,东西红灯亮
YELLOW1:
;南北黄灯亮,东西红灯亮
CLRP1.1
SETBP1.2
ACALLDELAYS;短延时
;南北黄灯灭,东西红灯亮
SETBP1.1
ACALLDELAYS;短延时
DJNZR3,YELLOW1
;南北红灯亮,东西绿灯亮
CLRP1.0
SETBP1.5
CLRP1.7
ACALLDELAYL1;长延时10s
MOVR3,#5;南北红灯亮,东西黄灯闪烁五次
YELLOW2:
CLRP1.6;东西黄灯亮
SETBP1.7
ACALLDELAYS;短延时
SETBP1.6;南北红灯灭,东西黄灯亮
ACALLDELAYS;短延时
DJNZR3,YELLOW2
AJMPLOOP;循环
DELAYL2:
MOVR4,#200;长延迟20s
DELAY1:
MOVR5,#200
DELAY2:
MOVR6,#250
DELAY3:
DJNZR6,DELAY3
DJNZR5,DELAY2
DJNZR4,DELAY1
RET
DELAYS:
MOVR4,#10;短延迟1s
DELAY4:
MOVR5,#200
DELAY5:
MOVR6,#250
DELAY6:
DJNZR6,DELAY6
DJNZR5,DELAY5
DJNZR4,DELAY4
RET
DELAYL1:
MOVR4,#100;长延迟10s
DELAY7:
MOVR5,#200
DELAY8:
MOVR6,#250
DELAY9:
DJNZR6,DELAY9
DJNZR5,DELAY8
DJNZR4,DELAY7
六、LST文件
A51MACROASSEMBLERLED04/21/201016:
50:
30PAGE1
MACROASSEMBLERA51V7.01
OBJECTMODULEPLACEDINLED.OBJ
ASSEMBLERINVOKEDBY:
C:
\Keil\C51\BIN\A51.EXELED.asmSET(SMALL)DEBUGEP
LOCOBJLINESOURCE
00001ORG0000H
2
3
00007590DE4START:
MOVP1,#11011110B
000311555CALLDALY1;0.5S
00057590DB6MOVP1,#11011011B
000811337CALLDALY;20S
000A78058MOVR0,#5H
000C74DD9LOOP1:
MOVA,#11011101B
000EF59010MOVP1,A
0010115511CALLDALY1;0.-5S
001274DF12MOVA,#11011111B
0014F59013MOVP1,A
0016115514CALLDALY1
0018D8F215DJNZR0,LOOP1
001A747E16MOVA,#01111110B
001CF59017MOVP1,A
001E114418CALLDALY2;10S
0020780519MOVR0,#5H
002274BE20LOOP2:
MOVA,#10111110B
0024F59021MOVP1,A
0026115522CALLDALY1
002874FE23MOVA,#11111110B
002AF59024MOVP1,A
002C115525CALLDALY1
002ED8F226DJNZR0,LOOP2
003002000027LJMPSTART
28
29;20S
00337C6430DALY:
MOVR4,#100
00357B6431DELAY1:
MOVR3,#100
00377A1432DELAY2:
MOVR2,#20
0039792D33DELAY3:
MOVR1,#45
003BD9FE34DELAY4:
DJNZR1,DELAY4
003DDAFA35DJNZR2,DELAY3
003FDBF636DJNZR3,DELAY2
0041DCF237DJNZR4,DELAY1
00432238RET
39
40;10S
00447C6441DALY2:
MOVR4,#100
00467B6442DEAY1:
MOVR3,#100
00487A0A43DEAY2:
MOVR2,#10
004A792D44DEAY3:
MOVR1,#45
004CD9FE45DEAY4:
DJNZR1,DEAY4
004EDAFA46DJNZR2,DEAY3
0050DBF647DJNZR3,DEAY2
0052DCF248DJNZR4,DEAY1
00542249RET
50
51;0.5S
00557C6452DALY1:
MOVR4,#100
00577B6453DEY1:
MOVR3,#100
00597A1954DEY2:
MOVR2,#25
005BDAFE55DEY3:
DJNZR2,DEY3
005DDBFA56DJNZR3,DEY2
005FDCF657DJNZR4,DEY1
00612258RET
A51MACROASSEMBLERLED04/22/201016:
20:
30PAGE2
59
60END
A51MACROASSEMBLERLED04/21/201016:
50:
30PAGE3
SYMBOLTABLELISTING
------------------
NAMETYPEVALUEATTRIBUTES
DALY.......CADDR0033HA
DALY1.......CADDR0055HA
DALY2.......CADDR0044HA
DEAY1.......CADDR0046HA
DEAY2.......CADDR0048HA
DEAY3.......CADDR004AHA
DEAY4.......CADDR004CHA
DELAY1......CADDR0035HA
DELAY2......CADDR0037HA
DELAY3......CADDR0039HA
DELAY4......CADDR003BHA
DEY1.......CADDR0057HA
DEY2.......CADDR0059HA
DEY3.......CADDR005BHA
LOOP1.......CADDR000CHA
LOOP2.......CADDR0022HA
P1........DADDR0090HA
START.......CADDR0000HA
REGISTERBANK(S)USED:
0
ASSEMBLYCOMPLETE.0WARNING(S),0ERROR(S)
七、实验步骤:
(1)根据书中设计流程图编写源程序(见实验程序)
(2)用keil软件仿真:
(3)更改参数:
(4)下载:
1.正确连接实验仪与主机的RS-232通信电缆和电源
2.把实验仪的工作模式选择开关切换到LOAD处,复位系统使实验仪工作于下载状态
3.运行DPFlash下载软件
4.把实验仪的工作模式选择开关切换到RUN处,复位系统使实验仪工作观察发光二极管的运行情况。
八、实验结果:
程序能够按照实验要求正常地进行工作,发光二极管能够模拟交通灯交替闪烁。
九、实验感想:
由于之前学习微机原理与接口技术的时候做过类似的模拟交通灯的实验,因此这次的单片机实验对我们而言不再陌生。
由于实验室设备的缘故,很多电脑和试验箱不能很好的通讯,首先用DPFlash软件“测试”一下,看能否在试验箱和电脑之间建立连接。
在换过三台电脑之后终于能在试验箱中写入程序。
然后便是keil仿真软件的操作,此类软件的操作过程基本类似,无非是先建立工程,然后载入程序,调试,看有没有警告或错误,然后运行。
这个过程中有几点需要注意的地方,比如参数的修改,还有操作过程的先后顺序等。
最后就是下载的过程。
下载中也有几点记忆深刻,复位功能键很重要,一定要知道什么时候复位,什么时候不能复位;另外就是run、mon、load三种模式的区别,不同的要求要把开关拨到不同的位置。
通过这次实验我对如何对单片机源程序进行调试、仿真、下载和运行有了一定的了解,练习了循环、子程序、P0口的编程方法以及程序的下载和调试方法,更加深入的了解了单片机,为之后的课程设计奠定了基础。
(注:
可编辑下载,若有不当之处,请指正,谢谢!
)