基于51单片机十字路口红绿灯交通灯
+无黄灯+紧急
仿真:proteus 7.8
程序编译器:keil 4/keil 5
编程语言:C语言
设计编 :J010
目录标题
- 基于51单片机十字路口红绿灯交通灯
-
- 功能说明
- 仿真图
-
- 正常交通灯运行模式
- 紧急运行模式
- 程序设计
-
- 程序讲解
-
- 倒计时的产生
- 红黄绿灯状态处理
- 倒计时显示处理
- 按键处理
- 资料清单
功能说明
十字路口交通灯由红、绿两色LED显示器组成,LED显示器显示切换倒计时,以秒为单位,每秒更新一次;为确保安全,绿LED计数到0转红,经5秒延时(显示红色0)后,另一道开始绿色倒计时。
(1) 主千道(A道)先通行且通行时间为10s(加5秒红灯延时,共20秒);
(2) 支道(B道)通行时间为7s(加5秒红灯延时,共12秒);
(3) 主道与支道的车辆交错通;
(4) 若遇紧急情况,按开关K1时,主道与支道都为红灯20s;
(5) 根据实时交通堵塞情况人为控制时,按K2时,主道延时30s通行,按K3时,支道延时30s通行;
(6) 具体秒数可在程序改数字实现。
仿真图
正常交通灯运行模式
1.A方向绿灯通行,B方向红灯
2.A方向黄灯通行,B方向红灯
3.B方向绿灯通行,A方向红灯
4.B方向黄灯通行,A方向红灯
实时交通堵塞情况人为控制时,按K2时,主道延时30s通行,按K3时,支道延时30s通行;
程序设计
主要的核心点是倒计时,和LED灯亮灭控制
倒计时的产生
记住这个点就可以设计软件了。首先要有时间基础,倒计时从哪来呢/p>
1,延时
通过死循环卡主软件的运行来达到延时效果,程序执行效率极低,不可取。
2,定时
通过定时器产生时基。软件设置50ms产生一次定时中断,在中断执行函数中做计数。
20ms执行一次中断函数,通过one_sec_flag累加到50判断时间过去了一秒。设置一秒标志位flag1s置一。
在主函数while循环里判断标志位,如果是1,则倒计时计数值减一,即完成了倒计时的软件设计思路
红黄绿灯状态处理
正常红绿灯运行分有四个模式
1.A方向绿灯通行,B方向红灯
2.A方向黄灯通行,B方向红灯
3.B方向绿灯通行,A方向红灯
4.B方向黄灯通行,A方向红灯
5.执行第一步
实际上倒计时显示就是显示main_road_time–; secondary_road_time–;设计函数通过数码管分别显示A方向的main_road_time和B方向的secondary_road_time即可
按键处理
资料清单
–下载–
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!