基于STC89C52单片机的智能交通灯控制系统设计

2018-10-26 01:42
时代农机 2018年8期
关键词:交通灯数码管信号灯

潘 琳

(盐城工学院 电气工程学院,江苏 盐城 224001)

交通灯在现代社会中扮演着非常重要的角色,是管理城市交通的重要工具。交通灯是由红、黄、绿三种信号灯和一个显示倒计时的计时器组成,在每个十字路口基本都有一套交通灯控制系统,对安全行车和车辆分流起着关键的作用。目前大多数的交通灯通行时间都是设定好的,其最大的缺点就是在高峰期和夜间的时候绿灯的最佳时间不能达到现实要求,因此车辆的分流也得不到最佳的分配,还有在一些紧急情况下,特殊车辆也不能做到最优通行,这些问题经常会造成城市交通拥堵,通行效率低。为了对交通进行合理的管理,研究了基于单片机的智能交通灯控制系统。

本设计除了可以实现交通灯控制系统的基本功能,还可以通过按键调整主次干道的通行时间,设定紧急情况按钮,允许紧急车辆强行通过,根据时间表对红绿灯点亮和熄灭时间进行自动调整。

1 系统总体功能描述

设十字交叉路口的交通干道为南北和东西两个方向,其中南北方向为主干道,东西方向为支干道,各路口均有红、黄、绿三种颜色的交通信号灯以及显示通行/停止倒计时时间的数码管。交通灯控制系统的功能如下:

(1)南北方向(主干道)每次通行的时间为40 s,而东西方向(支干道)每次通行的时间为30 s;在绿灯变成红灯前,要求黄灯先亮5 s,绿灯才能变成红灯,并且黄灯是每秒钟亮一次。

(2)设置三个按键来调节主干道和支干道的通行时间,第一个按键为模式按键,第一次按下是调节主干道的通行时间,第二次按下是调节支干道的通行时间,第三次按下是按刚刚重新设定的时间运行,改变时间时四个方向红灯均亮,还有两个按键分别是增加和减少时间的按键。

(3)设计一个紧急状况按键,当出现突发事件时,四个方向均为红灯,只允许指定的车辆通行。

(4)有内部24小时钟,可以对交通灯点亮和熄灭时间进行自动调整。

2 系统硬件设计

本设计电路是由STC89C52单片机为控制核心,另外通过六个电路模块实现功能,分别是最小系统模块、按键控制模块、电源模块、时钟模块、交通信号灯显示模块、数码管显示模块。硬件设计框图如图1所示。

图1 硬件设计框图

2.1 最小系统模块

单片机最小系统是由STC89C52单片机、复位电路和晶振电路组成,晶振频率为11.0592MHz。

2.2 电源模块

本系统需要有一个+5V的直流电源给各个模块供电。从P1口输入220V的交流电压,经过变压器变为15V的交流电压,再利用桥式整流电路,将交流转变为直流,把15V的交流电压转变为0~8V的波动直流电压,再经过电容滤波后得到较为平稳的直流电压,经LM7805稳压器把电压稳定在+5V,最后再经过两个电容滤波得到稳定的+5V直流电源。

2.3 按键模块

按键模块由 K1、K2、K3、K4 四个按键组成,,K1、K2、K3用来调节通行的时间,K1按键第一次按下是改变主干道的通行时间,第二次按下是改变支干道的通行时间,第三次按下是按照刚刚重新设定好的时间运行,调时间的时候红灯亮禁止通行,还有两个是增减时间按钮,K2是增加时间,K3减少时间。K4是紧急模式按键,用来在出现突发状态时,各路口都为红灯,只让特定的车辆通行。K1、K2、K3、K4分别与单片机的 P3.4、P3.5、P3.6、P3.7 相连。

2.4 时钟模块

本系统要对交通灯进行实时计时,所以用了DS1302时钟芯片。DS1302是美国DALLAS公司生产的内部时钟芯片,这种芯片功耗低、性能高,它可以对时间进行计时,能完整地提供秒、分、时、日、星期、月、年的信息,并且每个月的天数和闰年的天数可自动调整。DS1302芯片有八个管脚,分别是 VCC1、VCC2、X1、X2、RST、SCLK、I/O 和 GND. 其中VCC1是后备电源,VCC2是主电源,X1和X2是芯片的两个振荡源,接一个晶振和两个电容,晶振的大小为32.768 kHz,电容大小为22pF,不同的晶振大小对系统的误差也不一样。RST为复位端,是通过RST为高电平来实现数据的传送。当RST为高电平时,所有传送的数据都初始化,DS1302芯片就可以运行;当RST为低电平时,数据的传送则会被终止。SCLK是时钟输入端,当SCLK是低电平时,RST才能是高电平。I/O是串行数据输入输出端。

DS1302与单片机之间的通信,仅需3根线:复位(RST)、I/O 数据线、串行时钟(SCLK),RST接单片机的P0.0,SCLK接P0.1,I/O接P0.2,由于P0口没有上拉电阻,且当P0口作为I/O口的时候,需要在P0口外接一个上拉电阻。

2.5 数码管显示模块

在本系统电路中,数码管的段码线与单片机P1口相连,东西方向数码管位选线十位与P3.0相连,个位与P3.1相连,南北方向数码管位选线十位与P3.2相连,个位与P3.3相连。

为了让数码管的显示更加明显,需要一个驱动模块来驱动数码管,驱动模块是由4个NPN管和4个1K的电阻组成。三极管的发射极与数码管的位选线相连,集电极接电源,基极通过电阻与单片机的P3.0~P3.3相连。

2.6 交通信号灯显示模块

交通信号灯显示模块如图所示,采用红、黄、绿三种LED灯来模拟十字路口的交通信号灯。东西方向红灯D1(D7)、黄灯 D2(D8)、绿灯 D3(D9)分为接到单片机的 P2.0、P2.1 和 P2.2,南北方向红灯 D4(D10)、黄灯 D5(D11)、绿灯D6(D12)分别接到 P2.3、P2.4 和 P2.5,该电路采用的是共阳极接法,将所有的阳极接到一起,通过一个1K的电阻与电源相连,当P2口为低电平时二极管才会点亮。

3 系统软件设计

在keil uvision4环境下编译并调试程序,包括主程序模块、按键扫描子程序模块和定时器中断子程序模块。主程序控制东西南北方向的信号灯的时间以及数码管的显示。按键扫描子程序是通过按键改变数码管的显示时间和信号灯的状态。定时器中断子程序是实现1s定时。主程序流程图如图2。

4 硬件调试

交通灯控制系统的实物图如图3所示。实物上电后显示的是东西方向绿灯亮同时南北方向红灯亮。外设有四个按键来改变交通灯显示的状态,第一个按键K1为设置按键,第一次按下可以改变南北方向即主干道的通行时间。第二次按下K1可以改变东西方向即支干道的通行时间。第三次按下K1键就是按照刚刚设定的时间进行运行。K2是增加时间的按键,K3是减少时间的按键。调节通行时间时,四个方向均为红灯显示。K4是紧急状况按键,是用在突发状态时,按下去之后,四个方向均为红灯,只允许指定的车辆如救护车、消防车、警车等通过。

图2 主程序流程图

图3 智能交通灯控制系统实物图

5 结语

本文设计的智能交通灯控制系统能够根据不同的交通状况,灵活的调节主次干道的通行时间,以及对道路突发情况的应对,实现对车流的智能调控,改善了道路交叉口的拥堵问题,提高了通行效率,具有较强的应用价值。

猜你喜欢
交通灯数码管信号灯
基于51单片机的分数计数器设计
微课教学设计之“数码管动态显示”
Arduino编程
基于单片机的交通灯模糊控制器研究
MC9S08FL16单片机数码管静态显示分析
交通信号灯
基于遗传算法的智能交通灯控制研究
信号灯为什么选这三个颜色?
为什么交通灯是红黄蓝三种颜色?
基于单片机的LED模拟交通灯设计