首页 理论教育 交通灯设计-单片机原理与接口技术

交通灯设计-单片机原理与接口技术

时间:2023-11-16 理论教育 版权反馈
【摘要】:每条道路上各配有一组红、黄、绿交通信号灯,其中红灯亮,表示该道路禁止通行;黄灯亮,表示该道路上未过停车线的车辆禁止通行,已过停车线的车辆继续通行;绿灯亮,表示该道路允许通行。该电路自动控制十字路口两组红、黄、绿交通灯的状态转换,实现十字路口自动化。表8-6 十字路口交通灯切换顺序图8-12 红绿灯切换示意图2 程序设计定时器1用方式1进行定时,初值计算:×10-6=50×10-3,X=15536。

交通灯设计-单片机原理与接口技术

1 硬件设计

设计一个十字路口的交通灯控制电路,如图8-11所示。每条道路上各配有一组红、黄、绿交通信号灯,其中红灯亮,表示该道路禁止通行;黄灯亮,表示该道路上未过停车线的车辆禁止通行,已过停车线的车辆继续通行;绿灯亮,表示该道路允许通行。该电路自动控制十字路口两组红、黄、绿交通灯的状态转换,实现十字路口自动化。

978-7-111-54295-7-Chapter08-17.jpg

图8-11 十字路口交通灯控制电路

十字路口交通灯切换顺序见表8-6。红绿灯切换示意图如图8-12所示。

表8-6 十字路口交通灯切换顺序

978-7-111-54295-7-Chapter08-18.jpg

978-7-111-54295-7-Chapter08-19.jpg

图8-12 红绿灯切换示意图

2 程序设计

定时器1用方式1进行定时,初值计算:(216-X)×10-6=50×10-3X=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

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈