单片机控制交通灯的案例_单片机实现交通灯控制
单片机控制交通灯的案例由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“单片机实现交通灯控制”。
单片机控制交通灯
AT89C51单片机及由Keil 软件编写单片机程序,并且通过Proteus仿真测试,设计一个交通灯系统,实现简单的交通灯的管理功能。在交通灯系统的管理中,用发光二极管模拟交通信号灯,用逻辑电平开关模拟控制开关。在交通繁忙时,交通信号灯控制系统应有手控开关,可人为地改变信号灯的状态,以缓解交通拥挤状况。
工作内容及最终成果:
十字路口的交通指挥信号灯控制要求如下:
(1)信号灯受一个起动开关控制,当起动开关接通时,信号系统开始工作,且先南北红灯亮,东西绿灯亮。当起动开关断开时,所有信号灯都熄灭。(2)南北绿灯和东西绿灯不能同时亮,如果同时亮时应关闭信号灯系统,并报警。
(3)南北红灯亮维持25S。在南北红灯亮的同时东西绿灯也亮,并维持20S。到20S时,东西绿灯闪烁,闪烁3S后熄灭。在东西绿灯熄灭时,东西黄灯亮,并维持2S。到2S时,东西黄灯熄,东西红灯亮。同时,南北红灯熄灭,南北绿灯亮。
(4)东西红灯亮维持30S。南北绿灯亮维持25S。然后闪烁3S,熄灭。同时南北黄灯亮,维持2S后熄灭,这时南北红灯亮,东西绿灯亮。(5)周而复始。
ORG
0000H
LJMP START
ORG
0040H START:
MOV
SP,#60H
LCALL STATUS0;初始状态(都是红灯)CIRCLE:
LCALL STATUS1;南北绿灯,东西红灯
LCALL STATUS2;南北绿灯闪转黄灯,东西红灯
LCALL STATUS3;南北红灯,东西绿灯
LCALL STATUS4;南北红灯,东西绿灯闪转黄灯
LJMP CIRCLE STATUS0:
;南北红灯,东西红灯
MOV DPTR,#8300H
MOV A,#0FH
MOVX @DPTR,A
MOV R2,#10
;延时1秒
LCALL DELAY
RET STATUS1:
;南北绿灯,东西红灯
MOV DPTR,#08300H
MOV A,#96H
;南北绿灯,东西红灯
MOVX @DPTR,A
MOV R2,#200
;延时20秒
LCALL DELAY
RET STATUS2:
;南北绿灯闪转黄灯,东西红灯
MOV DPTR,#8300H
MOV R3,#03H
;绿灯闪3次 FLASH:
MOV A,#9FH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
MOV A,#96H
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
DJNZ R3,FLASH
MOV A,#06H
;南北黄灯,东西红灯
MOVX @DPTR,A
MOV R2,#10
;延时1秒
LCALL DELAY
RET STATUS3:
;南北红灯,东西绿灯
MOV DPTR,#8300H
MOV A,#69H
MOVX @DPTR,A
MOV R2,#200
;延时20秒
LCALL DELAY
RET STATUS4:
;南北红灯,东西绿灯闪转黄灯
MOV DPTR,#8300H
MOV R3,#03H
;绿灯闪3次 FLASH1:
MOV A,#6FH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
MOV A,#69H
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
DJNZ R3,FLASH1
MOV A,#09H
;南北红灯,东西黄灯
MOVX @DPTR,A
MOV R2,#10
;延时1秒
LCALL DELAY
NOP
RET DELAY:
;延时子程序
PUSH 2
PUSH 1
PUSH 0 DELAY1:
MOV 1,#00H DELAY2:
MOV 0,#0B2H
DJNZ 0,$
DJNZ 1,DELAY2;延时 100 mS
DJNZ 2,DELAY1
POP 0
POP 1
POP 2
RET
END