关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 利用有限状态机的交通灯控制系统设计与仿真

利用有限状态机的交通灯控制系统设计与仿真

作者:时间:2012-03-09来源:网络收藏

h.JPG
将编译后的程序进行,得到灯控制与倒计时模块波形图如图3所示。由波形可以看出,灯按St0→*St1→St2→St3 →St0顺序进行循环。light按主路红、主路黄、主路绿、支路红、支路黄、支路绿的顺序排列。如在St0下,light的值为“001100 ”,当hold紧急情况信号为高电平时,主路、支路均亮红灯,并且停止倒计时。当rst复位信号为高电平时,恢复到初态。

本文引用地址:http://www.eepw.com.cn/article/160987.htm

c.JPG



3 顶层文件的及仿真
将分频模块和显示控制模块均分别用VHDL进行编程、仿真,检查其功能正确性,并包装元件入库建立元件符号。在上述3个模块完成之后,按照图1所示电路结构,用原理图输入方式进行连接,构成的顶层文件,并在Quartus II平台上进行编译、仿真,引脚锁定,得到仿真波形如图4所示,图中信号light、a(b)、dec7sa(dec7sb)分别用二进制、十进制、十六进制表示。

b.JPG


从仿真波形中可以看出:当复位信号rst=1有效时,电路复位,此时light复位为“001100”,置a方向和b方向计数器为最大值24和29;当rst=0无效,紧急信号hold=1有效时,light为“100100”表示两路红灯均亮的状态;当rst=0,hold=0时,恢复电路原来的light为“001100”状态,a和b进行倒计时计数。7段显示译码器a方向的dec7sa和b方向的dec7sb分别显示计数器a和b的数值,如当a计数到21时,dec7sa的高位2和低位1的0gfedcba=01011011B(5B)和00000110 B(06),即5806,同理当b计数到26时,dec7sb的值为5B7D,所以交通灯的仿真结果完全正确。
最后将顶层文件下载到可编程逻辑器件EP1C12Q240C8中,经测试,交通灯正常工作,完全符合要求。

4 结束语
状态机及其设计技术是数字系统中实现高效率、高可靠性逻辑控制的重要途径。在交通灯控制系统设计中,通过对控制功能的分析和实际状态的选择,把交通灯的控制归纳为4种工作状态,并建立状态转移关系,较为准确、直观的反映了实际需求。在用VHDL语言设计实现交通灯控制系统时,既有传统的基于逻辑单元构建的整体组成结构方式,也有纯软件编程实现的逻辑模块。设计方法灵活、实现简单、性能稳定的特点。
以上状态机的设计方法具有通用性,对于较为复杂的状态机可采用多个进程,分别完成任意复杂组合逻辑和时序逻辑,包括进程间状态值的传递以及状态转换值的输出,对类似含有逻辑控制功能的系统,通过自顶向下设计、分步实现,是切实可行的方法。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭