1.求一基于AT89C52单片机的交通交通灯程序: 要求:
求一基于AT89C52单片机的交通灯程序: 要求:
A、B两干道交于一个十字路口,灯识的程各干道有一组红、别源黄、码交码绿三色的通灯查询验证系统源码指示灯,指挥车辆和行人安全通行。序代源码网站演示红灯亮禁止通行,交通绿灯亮允许通行。灯识的程黄灯亮提示人们注意红、别源绿灯的码交码状态即将切换,且黄灯燃亮时间为A、通灯B两干道的序代公共停车时间。设A道比B道的交通xml源码讲解车流量大,指示灯燃亮的灯识的程方案如表1。
3 3 3 ……
A道 黄灯亮 红灯亮 黄灯亮 绿灯亮 黄灯亮 红灯亮 ……
B道 黄灯亮 绿灯亮 黄灯亮 红灯亮 黄灯亮 绿灯亮 ……
此表1说明:
(1)当为黄灯时 A、别源B两道同时为黄灯;以提示行人或车辆下一个灯色即将到来 时间 3秒。
(2)当A到为红灯,潮流指标源码A 道车辆禁止通行,A 道行人可通过;B 道为绿灯,B 道车辆通过,行人禁止通行。新西兰溯源码时间为秒。
(3)当A道绿灯,A 道车辆通行;B 道为红灯,B 道车辆禁止通过,行人通行。时间为秒。 A道车流大 通行时间长
(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。
(5)此表可根据车流量动态设定
R4 存放黄灯时间 3 H (此时间可以动态设定)
R5 存放红灯时间 3CH
R6 存放绿灯时间 H
PC0 显示黄灯信号
PC1 显示红灯信号
PC2 显示黄灯信号
工作于方式0
PA、PB、 PC口输出 PC 控制字为B (H)
程序源代码:
ORG H
LJMP MAIN
ORG H
MAIN: MOV R1,#H 初始化
MOV A,#H
MOVX @R1,A
AGAIN: MOV P3,#H 设置初值
MOV A,P3
JB ACC.7, NEXT0
AGAIN1: MOV P3,#H
MOV A,P3
JB ACC.6, RED
MOV P3,#0FH
MOV A,P3
ANL A,#0FH
MOV R3,A
AJMP AGAIN1
RED: MOV P3,#0FH
MOV A,P3
ANL A,#0FH
MOV R2,A
AJMP AGAIN
NEXT0: MOV R1,#H
NEXT1: MOV DPTR,#TAB 显示黄灯个位
MOV A,R1
MOVC A,@A+DPTR
MOV R1,#H
MOVX @R1, A
MOV R1,#O
MOV DPTR,#TAB 显示黄灯十位
MOV A,R0
MOVC A,@A+DPTR
MOV R1,#H
MOVX @R1,A
MOV DPTR,#0CH 显示黄灯信号
MOV A,#H
LCALL 0F4E0H
ACALL DELAY
DJNZ R0,NEXT1
MOV A,R3
MOV R0,A
NEXT2: MOV DPTR,#TAB 显示红灯个位
MOV A,R0
MOVC A,@A+DPTR
MOV R1,#H
MOVX @R1,A
MOV DPTR,#TAB 显示红灯十位
MOV A,R0
MOVC A,@A+DPTR
MOV R1,#H
MOV A,R0
MOVX @R1,R0
MOV R1,#H 显示红灯信号
MOV A,#H
MOVX @R1,A
ACALL DELAY 延时1秒
DJNZ R0,NEXT2
MOV A,R2
MOV R0,A
NEXT3: MOV DPTR,#TAB 显示绿灯个位
MOV A,R0
MOVC A,@A+DPTR
MOV R1,#H
MOVX @R1,R0
MOV DPTR,#TAB 显示绿灯十位
MOV A,R0
MOVC A,@A+DPTR
MOV R1,#H
MOV A,R0
MOVX @R1,R0
MOV R1,#H 显示绿灯信号
MOV A,#H
MOVX @R1,A
ACALL DELAY 延时1秒
DJNZ R0,NEXT3
AJMP NEXT0
DELAY: MOV R4,#H 延时1秒子程序
DE2: LCALL DELAY1
DJNZ R4,DE2
RET
DELAY1:MOV R6,#0
MOV R5,#0
DE1: DJNZ R5,$
DJNZ R6,DE1
RET
TAB:DB3FH,H,5BH,4FH,H,6DH,7DH,H,7FH,6FH,H,7CH,H,5EH,H,H
END