基于AT89C51单片机的路口交通信号灯控制设计

2017-11-07 03:42林纪言吉林师范大学博达学院
消费导刊 2017年15期
关键词:倒计时信号灯单片机

林纪言 吉林师范大学博达学院

基于AT89C51单片机的路口交通信号灯控制设计

林纪言 吉林师范大学博达学院

该路口交通信号灯控制系统以美国Atmel公司生产的51单片机为控制核心,配合使用数码管、红黄绿三种发光二极管、反相器等多种电子软件,该设计不仅可以控制路口的通行状态,也可以是对于车辆的车速进行测量,适用于不同环境下的交通控制。

AT89C51 速度测量 交通信号灯 keil proteus

引言

随着社会的不断发展,道路上的汽车也越来越多,随之而来的交通环境越来越恶劣,道路的拥挤现象越来越严重,尤其在北京等大城市的路口,在高峰时间段拥挤更为严重。根据调查我国的大多数城市依然采用定周期的交通信号装置,在日常运行中,不论什么时间段,信号灯都是按照相同的周期进行交替变换,这种单一的设计往往会浪费较多的社会资源。所以,改变传统信号灯的控制模式,使用周期可调节的新型交通信号灯会更快速有效地改变道路现状,提高道路利用率。

微控制器(Micro Controller Unit,MCU)即单片机是指把组成微型计算机的各种功能的部件(中央处理单元、随机存储器、只读存储器、计数器等)集成在一块微型电子芯片上,由于单片机的硬件结构较小故常用于一些控制装置当中。

一、信号灯功能分析

图1

表1

交通信号灯主要用于城市道路交叉口,用于疏导交通车流,提高城市公共交通资源的利用率。该设计(如图1)①②共有四个状态(如表1),实际显示电路(图2)。

二、状态流程

首先,X区显示绿灯亮起60秒,此时X1和X2区车辆通行,Z1和Z2区车辆停车等待;当X区显示黄灯亮起时,提醒X1和X2区此时已超过停止线的车辆快速通过,Z1和Z2区车辆依旧停车等待;5秒后X区红灯亮起并持续60秒,该状态下X1和X2区车辆禁止通行,此时Z区为绿灯状态,Z1和Z2区域内车辆正常通行。当Z区显示黄灯亮起的时候,则Z区已超过停止线的车辆快速通过,此时X1和X2区车辆停止等待,一个周期结束,之后重复此流程。

三、硬件设计

(一)主要器件为51单片机,按照芯片半导体制造工艺来划分,可以分为HMOS工艺性和CHMOS工艺型,在这个系统设计中,我们采用CHMOS型AT89C51单片机,该单片机是一种可编程可擦除的只读存储器单片机,具有低耗能的特点。

单片机的最小系统(图3)即能然单片机工作的最基本元件所构成的系统,单片机的最小系统通常由复位电路与时钟脉冲电路构成,现在常见的单片机芯片(如MCS-51)的工作频率为0~24MHz,我们通常会接上由一个晶振和两个电容所组成的振荡电路到18、19号引脚来为单片机传输一段脉冲信号使单片机能够正常工作。复位电路主要由一个电解电容构成,将其连接至第九号复位引脚(Reset),再次引脚链接高电平超过2个机器周期时,则会产生一个复位动作,使整个系统能够重新运行。

(图2)

(二)采用红黄绿三色led灯和7段共阴极数码管作为输出显示器件,由于X1和X2区永远为同一组输出状态,Z1和Z2区永远为同一组输出状态,我们为了降低编程复杂度,则我们将同种输出状态的两组信号灯接在同一I/O口。

(三)键盘模块能够对于周期时间进行更改,选择(Select)键能够选中不同的倒计时数字,加(Plus)键能够增加时间,减(Minus)键按下即可减少倒计时时间从而减少等待时间,当全部设置完毕时按下退出(Quit)键即可恢复到正常运行模式。

键盘去抖,由于在我们按下按键等待弹回的时间内会产生大约一段10~20ms的抖动,这种抖动会明显地影响系统的可靠性,为了避免这种现象的发生,我们在每个按键上并联一个电容,根据计算假设抖动的时间为20ms,则可得出C的值在2.8uF到5.6uF之间。

四、软件设计

由于C语言是一种结构化的高级语言,并且C语言具有可读性好,移植容易的优点,所以在路口交通信号灯控制程序的设计中,采用了C语言进行编写。文件中包含了初始化函数、显示函数以及延时等子模块,由主程序直接调用各个子模块来实现红黄绿三色信号灯的周期变换以及7段数码管的倒计时功能,在正常状态下,通过周期性调用延时子程序来实现定时时间。

五、设计流程

首先使用keil软件对交通灯控制程序进行编写,之后运行程序无误后编译生成.hex格式文件,打开Proteus软件,选取所需元器件并按照设计要求排列元器件,绘制电路板(图3)。

(图3)

六、电路仿真

检查电路连接无误后,将编译生成的.hex文件烧写到Atmel公司的C51单片机中,运行信号灯控制系统(图4)并观察在一个周期(I~IV)内的交通信号灯及倒计时显示装置运行状态是否正常,按下设置按钮调节每个时间段内的时间,再次观察电路运行是否稳定。

(图4)

七、结语

最后通过多次运行,该设计能够稳定地运行,并且由于使用单片机进行的设计,只需要对其运行程序的部分语句进行重新编写就能够修改各个周期所持续的时间,同时还可实现信号灯控制系统的维护与升级,大大节省了日常维护的费用。

注释:

① X1与X2因为信号状态相同简记为X区,同理,Z1与Z2记为Z区。

②R表示红灯,Y表示黄灯,G表示绿灯。

[1]Stephen prata.C Primer Plus[M].姜佑.第六版.北京:人民邮电出版社,2016.

[2]谭浩强.C程序设计[M].第四版,北京:清华大学出版社,2010.

[3]林立,张俊亮.单片机原理及应用:基于Proteus和Keil C[M].第三版.北京:电子工业出版社,2014.

[4]徐爱钧.Keil C51单片机高级语言应用编程与实践[M].北京:电子工业出版社,2013.

[5]李朝青,刘艳玲.单片机原理及接口技术[M].第4版,北京:北京航空航天大学出版社,2013.

[6]王冠安.基于AT89C51单片机的交通灯控制系统设计与仿真[J].高科技产品研发,2014,4:24.

[7]朱清慧,张凤蕊等.Proteus教程[M].第3版,北京:清华大学出版社,2016

林纪言(1995-),吉林长春人,主要研究方向为电子电路设计与数字通信技术。

猜你喜欢
倒计时信号灯单片机
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
交通信号灯
信号灯为什么选这三个颜色?
安装在路面的交通信号灯
Microchip推出两个全新PIC单片机系列
交通信号灯控制系统设计