单片机实验与课程设计
交通灯控制
班级: 学号: 姓名: 指导教师:
2017年6月
选题意义
在大、中城市,十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。通过使用单片机对于交通灯的设计有利于我们对于交通灯的理解与对单片机的学习。
设计内容
利用JD51开发板上彩色LED灯做出符合普通十字路口通行逻辑的交通灯,要求: 1.东西绿-南北红、东西红-南北绿;
3.LED绿-红切换时,黄灯亮并延时3秒;
3.数码管前两位显示东西向量倒计时,后两位显示南北向量倒计时。
设计原理
硬件设计及描述
软件设计程序框图
开始 东西绿灯亮,南北红灯亮,延时
东西黄灯亮,南北红灯亮,延时
东西红灯亮,南北绿灯亮,延时
东西红灯亮,南北黄灯亮,延时
源程序代码及注释 ORG 0000H
JMP MAIN
ORG 000BH ;T0中断的入口地址 MOV TMOD,#01H
MOV TL0,#0B0H
MOV TH0,#3CH ;50ms中断一次
DJNZ R2,EXIT_T0; 减1不等于0则转移 MOV R2,#20 ;定时1s
DEC R3 ;自减1 东西方向倒计时 DEC R4 ;自减1 南北方向倒计时
EXIT_T0:
RETI ;从中断返回
MAIN:
MOV TMOD,#01H ;工作方式1 MOV TL0,#0B0H
MOV TH0,#3CH ;定时50ms MOV R2,#20 ;定时1s SETB TR0 ;开始计数 SETB ET0 ;开中断 SETB EA ;开总中断 MOV SP,#60H D_X:
MOV P1,#0CFH ;11001111 MOV R3,#12 ;东西绿灯15s MOV R4,#18 ;南北红灯18s
DX_W1:
CJNE R3,#0,DX_DISP ;判断东西方向绿灯 SJMP D_X_Y
DX_DISP:
CALL DISPLAY;数码管显示 SJMP DX_W1 ;返回判断
D_X_Y:
CPL P1.5 ;东西绿灯熄灭
DX_W2: MOV R3,#0
CJNE R4,#0,DX_DISP2 ;判断红灯是否结束 JMP N_B
DX_DISP2:
CPL P1.6 ;亮黄灯
CALL DISPLAY ;数码管显示
SJMP DX_W2 N_B:
MOV P1,#07BH ;01111011 MOV R3,#15 ;东西红灯15s
MOV R4,#12 ;南北绿灯12s
NB_W1:
CJNE R4,#0,NB_DISP ;判断南北方向绿灯 SJMP N_B_Y
NB_DISP:
CALL DISPLAY ;数码管显示 SJMP NB_W1 ;返回判断
N_B_Y:
CPL P1.2 ;南北绿灯熄灭
NB_W2: MOV R4,#0
CJNE R3,#0,NB_DISP2 ;判断红灯是否结束 JMP D_X NB_DISP2:
CPL P1.3 ;亮黄灯
CALL DISPLAY ;数码管显示 SJMP NB_W2
DISPLAY:
MOV DPTR,#TAB1
MOV A,R3 ;东西方向倒计时 MOV B,#10 DIV AB
MOVC A,@A+DPTR MOV P0,A MOV P2,#0FEH MOV P2,#0FFH
MOV A,B
MOVC A,@A+DPTR MOV P0,A MOV P2,#0FDH MOV P2,#0FFH
MOV A,R4 MOV B,#10 DIV AB
MOVC A,@A+DPTR MOV P0,A
MOV P2,#0FBH MOV P2,#0FFH MOV A,B
MOVC A,@A+DPTR MOV P0,A MOV P2,#0F7H MOV P2,#0FFH RET
TAB1:
DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H END
课程设计体会
通过此次课程设计,我对于单片机的了解更加深入,也唤起了 我对于单片机的热情,同时也使自己的能力得到了锻炼,虽然在设计的时候遇到了一些困难,但是在老师的指导和同学们的帮助之下完成了此次课程设计,也收获了很多东西,同时也要感谢老师的悉心教导,让我能够得到成长和锻炼。
因篇幅问题不能全部显示,请点此查看更多更全内容