利用VHDL及Quartus进行十字路口交通控制系统设计
一、目标
利用VHDL及Quartus设计一个十字路口交通控制系统,其东西,南北两个方向除了有红、黄、绿灯指示是否允许通行外,还设有时钟,以倒计时方式显示每一路允许通行的时间,绿灯,黄灯,红灯的持续时间分别 40、5和45秒。当东西或南北两路中任一道上出现特殊情况,例如有消防车,警车要去执行任务,此时交通控制系统应可由交警手动控制立即进入特殊运行状态,即两条道上的所有车辆皆停止通行,红灯全亮,时钟停止计时,且其数字在闪烁。当特殊运行状态结束后,管理系统恢复原来的状态,继续正常运行。
二、实现方案
本方案主要由时钟信号产生器,信号灯控制器、分别控制两条通路的两个倒计时控制显示器组成。时钟信号发生器由实验板上的 1Hz 时钟信号源实现。
信号灯控制器模块由分为五种状态的状态机进行实现:
S0:A方向绿灯亮,B方向红灯亮,持续40秒;
S1:A方向黄灯亮,B方向红灯亮,持续5秒;
S2:A方向红灯亮,B方向绿灯亮,持续40秒;
S3:A方向红灯亮,B方向黄灯亮,持续5秒;
S4:紧急状态,A、B方向均红灯亮。
在非紧急状态下,状态机按照S0、S1、S2、S3、S0的顺序进行。
循环。
在紧急状态信号传入时,模块对进入紧急状态前的数字进行存储,同时状态机转入S4。在从紧急状态转入非紧急状态时,读取之前存储的数字,状态机重新进入非紧急状态下的循环。倒计时控制显示器中除正常存储变量Usual外,还引入了Mark,用来标记模块在紧急和非紧急状态间切换的状态,便于在紧急状态下
对倒计时显示器进行闪烁处理。
三、核心代码
1、信号灯控制器
1 | library ieee; |
2、倒计时显示器模块1
1 | library ieee; |
3、倒计时显示器模块2
1 | library ieee; |
四、结果图像
电路图
仿真结果