1 硬件设计
设计一个十字路口的交通灯控制电路,如图8-11所示。每条道路上各配有一组红、黄、绿交通信号灯,其中红灯亮,表示该道路禁止通行;黄灯亮,表示该道路上未过停车线的车辆禁止通行,已过停车线的车辆继续通行;绿灯亮,表示该道路允许通行。该电路自动控制十字路口两组红、黄、绿交通灯的状态转换,实现十字路口自动化。
图8-11 十字路口交通灯控制电路
十字路口交通灯切换顺序见表8-6。红绿灯切换示意图如图8-12所示。
表8-6 十字路口交通灯切换顺序
图8-12 红绿灯切换示意图
2 程序设计
定时器1用方式1进行定时,初值计算:(216-X)×10-6=50×10-3,X=15536(3CB0H)。
ORG 0000H
AJMP MAIN;指向主程序
/*****主程序部分*****/
ORG 30H
MAIN:MOV R1,#00H;A绿A闪A黄B绿B闪B黄依次加1表示;00H禁行
MOV R2,#02H;两道都禁行的时长系数
MOV P0,#0F6H;两道都禁行的信号
MOV R3,#0AH;循环10次,定时0.5s
MOV TH1,#3CH
MOV TL1,#0B0H
MOV TMOD,#10H;置定时器1为方式1
SETB TR1
LOOP:JBC TF1,DELAY
JBC F0,DISP
AJMP LOOP
/*****两道禁行状态*****/
DISP:CJNE R1,#00H,A_GREEN
MOV P0,#0F6H;两道都禁行
DJNZ R2,LP;0.5s循环2次
MOV R2,#6EH
MOV R1,#01H
MOV P0,#0F3H;A绿灯放行,B红灯禁止
AJMP LP
/*****A绿灯亮状态*****/
A_GREEN:CJNE R1,#01H,A_WARN
MOV P0,#0F3H;A绿灯放行,B红灯禁止
DJNZ R2,LP;0.5s循环110次
MOV R2,#06H;闪烁A绿灯的时长系数
MOV R1,#02H;置A绿灯闪烁有效
CPL P0.2;A绿灯闪烁
AJMP LP
/*****A绿灯闪烁状态*****/
A_WARN:CJNE R1,#02H,A_YELLOW
CPL P0.2;A绿灯闪烁
DJNZ R2,LP;0.5s循环6次,闪烁3次(www.xing528.com)
MOV R2,#04H;A黄灯时长系数
MOV R1,#03H;置A黄灯有效
MOV P0,#0F5H;A黄灯警告,B红灯禁止
AJMP LP
/*****A黄灯亮状态*****/
A_YELLOW:CJNE R1,#03H,B_GREEN
MOV P0,#0F5H;A黄灯警告,B红灯禁止
DJNZ R2,LP;0.5s循环4次
MOV R2,#32H;B绿灯时长系数
MOV R1,#04H;置A灯闪烁有效
MOV P0,#0DEH;A红灯,B绿灯
AJMP LP
/*****B绿灯亮状态*****/
B_GREEN:CJNE R1,#04H,B_WARN
MOV P0,#0DEH;A红灯,B绿灯
DJNZ R2,LP;0.5s循环50次
MOV R2,#06H;闪烁B绿灯的时长系数
MOV R1,#05H;置B绿灯闪烁有效
CPL P0.5;B绿灯闪烁
AJMP LP
/*****B绿灯闪烁状态*****/
B_WARN:CJNE R1,#05H,B_YELLOW
CPL P0.5;B绿灯闪烁
DJNZ R2,LP;0.5s循环6次
MOV R2,#05H;B黄灯时长系数
MOV R1,#06H;置B黄灯有效
MOV P0,#0EEH;A红灯,B黄灯
AJMP LP
/*****B黄灯亮状态*****/
B_YELLOW:CJNE R1,#06H,LP
MOV P0,#0EEH;A红灯,B黄灯
DJNZ R2,LP;0.5s循环4次
MOV R2,#6FH;点亮A绿灯的时长系数
MOV R1,#01H ;置A灯有效
MOV P0,#0F3H;A绿灯放行,B红灯禁止
LP:AJMP LOOP;循环执行主程序
/*****定时器延时子程序*****/
DELAY:MOV TH1,#3CH
MOV TL1,#0B0H
DJNZ R3,LP1
MOV R3,#0AH;循环10次
SETB F0;置定时时间到标志
LP1:AJMP LOOP
END
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。