名称:交通信号灯操纵电路设计VHDL代码Quartus仿真(文末获取)
软件:Quartus
语言:VHDL
代码功能:
就是设计一个交通信号灯操纵电路,分三种情况
第1种情况是南北路上正常的绿灯秒数是25秒,红灯10s
第2种情况是南北路上客流量增多时,倒计时的秒数是40秒,红灯10s
第3种情况是由紧急情况时,手动控制全为红灯这种可以做吗
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 仿真图
整体仿真图
分频模块
控制模块
显示模块
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; USE ieee.std_logic_arith.all; --显示模块 ENTITY display IS PORT ( clk : IN STD_LOGIC;--50MHz SMG1 : IN STD_LOGIC_VECTOR(7 DOWNTO 0);--倒计时时间 SMG2 : IN STD_LOGIC_VECTOR(7 DOWNTO 0);--倒计时时间 SEG : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--数码管段选 SEL : OUT STD_LOGIC_VECTOR(2 DOWNTO 0)--数码管位选 ); END display; ARCHITECTURE behavioral OF display IS SIGNAL SMG1_ten : INTEGER := 0; SIGNAL SMG1_one : INTEGER := 0; SIGNAL SMG2_ten : INTEGER := 0; SIGNAL SMG2_one : INTEGER := 0; SIGNAL SMG1_int : INTEGER := 0; SIGNAL SMG2_int : INTEGER := 0; SIGNAL display_data : INTEGER := 0; SIGNAL select_num : STD_LOGIC_VECTOR(31 DOWNTO 0) := "00000000000000000000000000000000"; SIGNAL geshu : STD_LOGIC_VECTOR(15 DOWNTO 0) := "0000000000000000"; BEGIN SMG1_int<=Conv_Integer(SMG1);--转为int类型 SMG2_int<=Conv_Integer(SMG2);--转为int类型 SMG1_ten <= SMG1_int / 10;--时间十位 SMG1_one <= SMG1_int- SMG1_ten *10;--时间个位 SMG2_ten <= SMG2_int / 10;--时间十位 SMG2_one <= SMG2_int- SMG2_ten *10;--时间个位
源代码
点击下方的公众号卡片获取