大家好,又见面了,我是你们的朋友全栈君。
本系统采用STC89C51单片机以及单片机最小系统和74HC245驱动电路以及外围的按键和数码管显示等部件,设计一个基于单片机的交通灯设计。设计通过两位一体共阴极数码管显示,并能通过按键对定时进行设置。
本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行倒计时显示。按键可以控制禁行、深夜模式、复位、东西通行、南北通行、时间加、时间减、切换等功能。
共四个二位阴极数码管,东南西北各一个显示时间,四个数码管的阴极都接到STC89C51的P1口,阳极接到74HC245芯片上,通过P0口控制74HC245芯片,起到驱动放大作用。共12个发光二极管,四个路口每个路口各有一个红(禁行)、黄(警告)发光二极管,四个路口的二极管接到P2口,按键接P3口。
设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。说明:黑色表示亮,白色表示灭。交通状态从状态1开始变换,直至状态6然后循环至状1,周而复始,直至状态6然后循环至状态1,通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如下:
东西方向红灯灭,同时绿灯亮,南北方向黄灯灭,同时红灯亮,倒计时20秒。此状态下,东西向禁止通行,南北向允许通行。
东西方向绿灯灭,同时黄灯亮,南北方向红灯亮,倒计时5秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。
南北方向红灯灭,同时绿灯亮,东西方向黄灯灭,同时红灯亮,倒计时30秒。此状态下,东西向允许通行,南北向禁止通行。
南北方向绿灯灭,同时黄灯亮,东西方向红灯亮,倒计时5秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。
显示模块功能
显示模块分数码管显示和LED显示,数码管倒计时显示可以提醒驾驶员在信号灯颜色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。驾驶员和行人普遍都愿意选择有倒计时显示的信号控制方式,并且认为有倒计时显示的路口更安全。
倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的一种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择。通过两种显示结合,是本设计更合理可靠。
按键模块功能
本系统要求的按键控制不多,且I/0口足够,可直接采用独立式。按键可以设置系统的运行状态,禁行状态为数码管均显示“00”,红灯全亮;复位按键可以将整个系统复位;东西通行是东西方向的绿灯亮,南北方向上的红灯亮;南北通行为南北方向上的绿灯亮,东西方向上的红灯亮;时间加减可以设置通行和等待通行的时间;切换按键可以切换加减的方向时间。通过安检模块的控制,使得整个系统具有灵活性,实用性。
基本构成及原理
在相同的时间里提高通车的质量、效率。并能在高峰期根据实际状况结合方程式控制按钮来调整主次干道的通车时间,降低交通拥挤堵塞现象。并使交通控制系统具有紧急控制,使救护车、救护车通过时,使两个方向均亮红灯,救护车和消防车通过后,恢复原来状态,增加对出现特殊情况的处理能力。
本单片机控制交通灯系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,当然,接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。本系统在此基础上,单片机对此进行具体处理,及时调整控制指挥。
键盘设置模块对系统输入模式选择及具体通行时间设置的信号,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。在此过程中还要实时捕捉违规检测和紧急按键信号,以达到对异常状态进行实时控制的目的。急停按键和违规检测随时调用中断。
单片机最小系统设计
STC89C51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。
信号显示驱动电路设计
74HC245译码器可接受3位二进制加权地址输入(A0,A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。74HC245特有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3)。除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。
利用这种复合使能特性,仅需4片74HC245芯片和1个反相器,即可轻松实现并行扩展,组合成为一个1-32(5线到32线)译码器。任选一个低有效使能输入端作为数据输入,而把其余的使能输入端作为选通端,则74HC245亦可充当一个8输出多路分配器,未使用的使能输入端必须保持绑定在各自合适的高有效或低有效状态。
74HC245作用原理于高性能的存贮译码或要求传输延迟时间短的数据传输系统,在高性能存贮器系统中,用这种译码器可以提高译码系统的效率。将快速赋能电路用于高速存贮器时,译码器的延迟时间和存贮器的赋能时间通常小于存贮器的典型存取时间,这就是说由肖特基钳位的系统译码器所引起的有效系统延迟可以忽略不计。
HC138 按照三位二进制输入码和赋能输入条件,从8个输出端中译出一个低电平输出。两个低电平有效的赋能输入端和一个高电平有效的赋能输入端减少了扩展所需要的外接门或倒相器,扩展成24线译码器不需外接门;扩展成32线译码器,只需要接一个外接倒相器。在解调器应用中,赋能输入端可用作数据输入端。
设计中将1脚接VCC,19脚接地,整个芯片是输入端输入高则输出端输出高,输入端输入低则输出端输出地,只是相当于驱动作用。
键盘输入电路设计
独立式键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下。将常开按键的一端接地,另一端接一个I/O 口,程序开始时将此I/O口置于高电平,平时无键按下时I/O口保护高电平。
当有键按下时,此I/O 口与地短路迫使I/O 口为低电平。按键释放后,单片机内部的上拉电阻使I/O口仍然保持高电平。我们所要做的就是在程序中查寻此I/O口的电平状态就可以了解我们是否有按键动作了。
程序主体设计
全部控制程序实际上分为若干模块:键盘设置处理程序,状态灯控制程序,LED显示程序,消抖动延时程序,次状态判断及处理程序,紧停或违规判断程序,中断服务子程序,车流量计数程序,红绿灯时间调整程序等。整个软件程序方面主要分两大部分:按键处理程序和50ms扫描程序。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。