APP下载

基于单片机的交通灯的设计与仿真

2019-12-27

山西电子技术 2019年6期
关键词:交通灯数码管车流量

张 婷

(山西大学商务学院,山西 太原 030001)

0 引言

随着经济发展,车辆增多,交通也随之发展,交通灯在各个道路的应用必不可少。通过仔细观察,分析了十字路口交通灯的显示和控制策略,并利用单片机实现了一个交通路口的交通灯控制。传统的交通灯控制系统,每个路口通行时间固定,可以一定程度的满足指挥交通的需求,但是随着车流量的增大,我们经常会遇到堵车或者一方有车走不动,另一个方向却没多少车辆的情况。传统的交通灯已经显示出不足之处。本文设计出能伴随车流量的改变而调整红绿灯的显示时间的交通灯系统。另外,计算机的发展极大地促进了虚拟仪器的发展。虚拟仪器可以直接利用计算机搭建与现实环境相差无几的仿真环境来模拟实际应用,极大地提高开发效率。本文利用protues软件对设计的交通灯进行了基本功能仿真,验证了设计可行性,极大地缩短了研发周期,并且可以为后期更灵活的改进设计服务。

1 交通灯基本模块分析

交通灯由单片机控制主电路,显示电路,信号灯模块和车流量检测模块组成。系统的结构框图如图1所示。图中单片机模块是整个控制系统的核心,通过它可以控制显示电路和信号灯模块按照要求亮灭,也可以切换为自动调节通行时间模式,通过车流量检测模块采集车流量信息从而控制通行时间长短。显示电路用于显示通行时间倒计时。信号灯模块采用LED进行红黄绿灯显示。电源模块为整体电路供电。

图1 交通灯结构框图

2 交通灯硬件设计

2.1 单片机最小系统

本设计采用AT89C52为核心控制器件。单片机想要工作,需要有时钟电路、供电电路及复位电路配合[1]。AT89C52为常用的时钟电路,采用内部时钟电路,配合外部12M晶振和电容与XTAL1和XTAL2连接组成,为单片机提供基本的机器周期脉冲。单片机复位电路为手动复位电路,当单片机发生异常工作时可通过复位按钮让单片机复位[2]。

AT89C52是一个低电压、高性能CMOS 8位单片机,兼容标准MCS-51指令系统,所以编程简单。AT89C52单片机由于其控制结构简单,标准编程,价格低廉,在电子行业中有着广泛的应用。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。单片机最小系统如图2所示。

图2 单片机最小系统仿真图

2.2 车流量检测模块

车流量检测的方法有很多比如磁频类车辆检测器、红外线检测和超声波检测等。现代交通中摄像头广泛应用于高速交通、隧道、立交桥和城市十字路口等。视频采集系统优点是不需要破坏地面,安装和维护比较简单,但是也有一定的缺点,比如受天气影响因素较大。

为了实现资源充分利用,本文综合考虑后采用了视频采集模块作为传感器,上位机端通过图像分析对车流量进行判断[3]。在视频方位内设置虚拟框线,也就是检测区,当框线内有车辆时图像灰度值会发生变化。可设置多个检测区,当大排长队时多个检测区灰度值均发生变化与对向车道检测值差别较大时,可控制信号灯增加通行时间。差别大小设置多个阈值,从而控制不同的通行时间。后期也可以除了在十字路口外,在十字路口沿线设置多点视频采集,从而提高车流量信息的准确率。

2.3 显示电路

显示模块分为倒计时显示和红黄绿信号灯模块。倒计时模块采用数码管,信号灯采用LED灯。数码管也称发光管,是可以显示数字和其他信息的电子设备[4]。本设计选用了8段发光数码管。与单片机的IO口连接显示十字路口红黄绿灯的倒计时时间。由于单片机IO口有限,采用了动态控制的方法来让数码管逐一显示,缩短延时时间,从而构成同时显示的现象。

红黄绿信号灯采用常见的发光二极管。模拟十字路口通行时,红灯停,绿灯行,黄灯亮了等一会的信号灯情况。亮灭控制由单片机控制来实现。

还设置了按键电路,如果遇到故障可以手动设置通行时间和控制信号灯。另外可实现固定通行时间和根据车流量自动通行时间模式间的切换。

图3 显示模块仿真图

3 交通灯软件设计

单片机的C51编程选用了keil4软件。学习了keil建立一个C51工程的步骤,并最终程序编译通过。本设计模拟了最基本的直行情况。通行过程为十字路口东西方向通行15 s,数码管开始15 s倒计时,此时东西方向绿灯亮15 s,南北方向红灯亮15 s;之后为黄灯等待时间,东西南北方向皆为黄灯亮且显示3 s倒计时;随后为十字路口南北方向通行15 s,数码管倒计时15 s,南北方向绿灯亮,东西方向红灯亮;最后又是黄灯等待3 s的时间。之后交替重复这4个过程。流程图如图4所示。

图4 主程序流程图

4 protues仿真

对该系统进行了电路仿真[5],本文采用了常用的电路仿真软件protues软件来对整体电路进行仿真,protues里对C51程序的下载方便,加载程序后可以随时开始运行观察结果,通过不断调试得到了跟设计目的相符的结果,验证了设计程序和电路的可行性。

根据该系统设计的电路在protues中画出仿真电路图如图5所示。

图5 仿真电路图

仿真电路中可以设定固定通行时间,也可以通过按键模拟车流量情况对通行时间进行修改。验证了电路设计的正确性。

5 结论

通过交通灯的设计、编程与仿真,实现了十字路口交通灯的控制,在实际问题中提升了理论学习,又解决了一些实际问题。系统设计简单易实现。但是没有添加更复杂交通灯的控制比如左右转,后期根据实际通行状况,应该给该系统添加复杂控制。车流量检测可采用高级算法,精确控制。甚至后期可以加入定位模块为整个城市的交通畅通提供便利。

猜你喜欢

交通灯数码管车流量
微课教学设计之“数码管动态显示”
Arduino编程
基于单片机的交通灯模糊控制器研究
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
基于遗传算法的智能交通灯控制研究
为什么交通灯是红黄蓝三种颜色?
基于车流量监测系统的荆岳大桥拥堵预警方法探讨
基于单片机的LED模拟交通灯设计
参考答案