文档详情

交通灯VHDL设计.doc

发布:2017-12-17约7.16千字共16页下载文档
文本预览下载声明
交通灯控制器设计报告 一.设计目的. (1) 初步学习,运用VHDL(Verilog)语言编写模块程序。 (2) 巩固课堂所学的组合逻辑电路,时序逻辑电路及其有关的应用,如计数器,分频器等。 (3) 提高实践及运用意识。 二.设计任务及要求. 利用EDA/SOPC实验开发平台提供的八位七段管码显示模块以及EP2C35核心板,实现交通灯信号控制器。 设交通灯信号控制器用于主干道公路的交叉路口,要求是优先保证主干道的畅通,因此,平时处于“主干道绿灯,支道红灯”状态。 (1)当处于“主干道绿灯,支道红灯”状态: ① 主干道有车要求通行,支道也有车要求通行时,若主干道通行时间大于等于30秒则切换到“主黄,支红”,4秒后自动切换到“主红,支绿”。 ② 主干道无车要求通行,支道有车要求通行时,立即切换到“主黄,支红”,4秒后自动切换到“主红,支绿”。 其它情况保持“主绿,支红”状态。 (2)当处于“主干道红灯,支道绿灯”状态: ① 支道有车要求通行时,保持“主红,支绿”状态,但最多保持30秒然后自动切换到“主红,支黄”状态,4秒后自动切换到“主绿,支红”状态。 ② 支道无车要求通行时,立即切换到“主红,支黄”状态,4秒后自动切换到“主绿,支红”状态。 (3)利用八位七段管码显示模块其中的2位实现时间显示。 (4)扩展要求:自主设计(如改变时间显示方式,丰富控制逻辑等) 三.设计原理及方案. 1.总体设计框图 2.原理概述: (1)由于主干道,支干道的交通灯均在绿,黄,红三种状态之间有顺序的转换,组合共有四种。所以,利用状态机按照设定的条件实现“主绿,支红” 、“主黄,支红” 、“主红,支绿”、“主红,支黄”4种状态之间的切换。 (2)因为红黄绿灯之间转换有时间限制,所以要有计数器,可用七段数码管显示模块,由于时间是两位数,所以只需要八位七段管码显示模块其中的2位实现时间显示。 (3)由于实验室提供的基准频率为50MHZ,所以得用分频器得到所需要的频率。 四.电路设计及实现. (1)各模块设计程序及模块图: 1.1计数器: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY counter IS PORT (clk:IN STD_LOGIC; reset:in std_logic; 图1 计数器 countNum:BuFFeR INTEGER RANGE 0 TO 64); END; ARCHITECTURE behavior OF counter IS BEGIN process(reset,Clk) BEGIN IF Reset=1 THEN countNum=0; ELSIF rising_edge(Clk) THEN IF countNum=64 THEN countNum=0; ELSE countNum=countNum+1; END IF; END IF; END PROCESS; END; (2)七段显示器程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY bcd_data IS PORT (bcd_data:in STD_LOGIC_VECTOR(3 downto 0); segout: out STD_LOGIC_VECTOR(6 downto 0)); END; ARCHITECTURE behavior OF bcd_data IS BEGIN process(bcd_data) BEGIN case bcd_data is when 0000=segout=0111111; when 0001=segout=0000110; when 0010=segout=1011011; when 0011 =segout=1001111; 图2 显示器 when 0100 =segout=1100110 ; when 0101=segout=1101101 ; when 0110=segout=1111101 ; when 0111=segout=0000111 ; when 1000 =segout=1111111 ; when
显示全部
相似文档