基于VHDL状态机设计的智能交通控制灯1设计方案十字路口设计两组交通灯分别控制东西和南北两个方向的交通
如图1所示,当东西方向的红灯亮时,南北方向对应绿灯亮,过渡阶段黄灯亮,即东西方向红灯亮的时间等于南北方向绿灯和黄灯亮的时间之和
交通灯维持变亮的时间取决于键盘输入的控制键值
同理,当南北方向的红灯变亮时,东西方向的交通灯也遵循此逻辑
总体上由状态机实现控制,本设计中使用两个状态机分别控制东西和南北两个方向的交通
每个状态机中都设有4个状态,分别对应红灯亮、绿灯亮、黄灯亮和出现紧急状况时两个方向上的红灯同时变亮,停止倒计时的同时数码管上出现闪烁
路口的繁忙程度是不一样的,白天时的交通比较繁忙,因此,红绿灯要变化快一些以便提高通过效率,减少拥堵时间;相反,夜晚交通稀疏,就需要红绿灯变化慢一些
因此,加入键盘控制程序来控制交通维持变亮状态的持续时间
2总体设计结构框图总体设计结构框图如图2所示,共有11个功能模块,包括控制东西方向交通灯的状态机和控制南北方向交通灯的状态机、计数器模块、键盘扫描模块、数字合成模块、三个分位模块、数码管显示模块、动态显示扫描模块
用VHDL语言对各个模块进行编程,最后形成顶层文件,在MAX+PLUSⅡ环境下进行编译与仿真,检查所编程序是否运行正确
如果出现错误,需要进行修改,直到完全通过为止
需要说明的是,在进行程序编译时,要先从底层程序开始,所有底层程序都正确后,才能开始顶层程序的编译
这是因为顶层程序是对底层程序的概括,它是把底层程序各个模块连接起来,相当于把每个模块的功能汇聚到一起,实现整个系统的控制功能,所以底层程序的正确与否关系到顶层程序的运行结果
VHDL语言编程生成的结构框图如图3所示
3VHDL程序设计3.1状态机1(东西方向)程序关键代码用两个状态机分别控制东西方向和南北方向上的交通
从键盘获得红、绿、黄灯的总时间,红灯时间占1/