基于EDA的交通信号灯电路的设计与仿真
当工作状态为st1时ra=‘0’、ya=‘0’、ga=‘1’,即甲车道绿灯亮;rb=‘1’、yb=‘0’、gb=‘0’,即乙车道红灯亮;此时计数器qh=3,ql=0,即30s。当工作状态为st2时ra=‘0’、ya=‘1’、ga=‘0’,即甲车道黄灯亮;rb=‘0’、yb=‘1’、gb=‘0’,即乙车道黄灯亮;此时计数器qh=0,ql=5,即5s。同理,当工作状态处于st3时,甲车道红灯亮,乙车道绿灯亮,计数器置初值30;当工作状态处于st4时,甲乙车道都点亮黄灯,计数器置初值5。在特殊情况jin=‘1’时,ra=‘1’,rb=‘1’,此时甲乙车道红灯都点亮,禁止各方向车辆通行,同时计数器停止计数。
2.3 译码模块
译码模块的作用是根据根据状态控制模块中设置的计时初值显示交通灯的闪亮持续时间,并将灯亮时间以倒计时的形式显示出来。即将状态控制模块中计数器计数位各数值进行译码,输出译码信号,驱动七段数码管,由数码管显示器显示当前计数值。当显示黄灯点亮持续时间和特殊情况时数码管显示器实现闪烁显示功能。
译码模块根据七段数码管显示控制规则,将状态控制模块计数器中数值按规则输入译码信号,驱动数码管各控制端。其中数码管各显示控制信号与数值显示关系如表2所示。
译码模块仿真波形如图5。其中one存放计数器个位数值,ten存放计数器十位数值,seg7_1,seg7_2分别代表个位和十位数码管显示控制信号。根据计数器存放数值,seg7_ 1,seg7_2分别输出对应控制信号,以便驱动数码管显示对应数值,例如:当one=6时seg7_1输出“1011111”信号驱动数码管显示数字6;当ten=0时seg7_2输出“1111110”信号驱动数码管显示数字0。
2.4 交通信号灯整体电路仿真分析
交通信号灯控制电路仿真波形如图6所示。
系统输入的基准时钟脉冲Clk=1 kHz,经过分频后得到系统电路需要的时钟激励信号1 Hz。当工作状态stx=st1时,甲车道绿灯信号ga=‘1’,乙车道红灯信号rb=‘1’,并且计数器置入初始值30(qh=3,ql=0),数码管开始倒计时显示时间,此时甲车道绿灯亮,允许车辆通行30s,乙车道红灯亮,禁止车辆通行;当工作状态stx=st2时,甲车道黄灯信号ya=‘1’,乙车道黄灯信号yb=‘1’,并且计数器置入初始值5(qh=0,ql=5),数码管开始倒计时闪烁显示时间,此时甲乙两车道黄灯亮,两车道车辆运行状态进入转换阶段;当工作状态stx=st3时,甲车道红灯信号ra=‘1’,乙车道绿灯信号gb=‘1’,并且计数器置入初始值30,数码管开始倒计时显示时间,此时甲车道红灯亮,禁止车辆通行,乙车道绿灯亮,允许车辆通行30s;当工作状态stx=st4时如同工作状态st2。
如图中所示,在正常运行时出现特殊情况时,启动特殊控制开关,使禁止通行信号jin=‘1’,此时ra=‘1’,rb=‘1’,甲乙两车道都亮红灯,禁止各方向车辆运行,此时数码管停止计时并闪烁显示,当特殊状态结束后,恢复正常运行,数码管继续计时显示。
3 结束语
基于EDA技术的交通信号灯控制电路设计改变了基于单片机的传统交通灯不稳定和不利于扩展的缺点,突破了单片机的种种限制。通过VHDL语言编程,对交通信号灯控制电路做了改进:增加了指示灯倒计时和闪烁提醒功能,以便让司机控制过交叉路口的车速,使交通更加安全有序;增加了全红灯的特殊状态,保证了紧急情况下公务车能顺利通行。
- 新型膜片钳放大器系统的设计实现(10-09)
- 指纹识别的DSP实现方案(一)(09-25)
- 浅谈基于凌力尔特LTC3626的温度监视限制实现(08-28)
- 一种三极管开关电路实现方案(10-29)
- 如何实现时钟晶振的高稳定性运用?(10-02)
- 多学科间数据交互在SIMPACK中的实现方法(09-26)