名称:交通灯控制器设计VHDL代码Quartus仿真(文末获取)
软件:Quartus
语言:VHDL
代码功能:
交通灯控制器设计
内容及要求
交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又有很多不同的显示要求,比如十字路口,依人们的交通常规,“红灯停,绿灯行,黄灯提醒
(1)十字路口,A、B两方向,红:黄:绿,亮灯维持时间、车子左右转弯可自行设计
(2)当按下复位时,各方向上均亮红灯,倒计时停止
(3)各个方向的红黄绿等可用发光二极管替代。
(4)黄灯可1Hz闪烁亮,亮灯时间自行设计。
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 仿真图
整体仿真图
分频模块仿真图
二进制转BCD仿真图
状态机控制模块仿真图
数码管控制模块
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; LIBRARY work; ENTITY traffic_light IS PORT ( clk_20M : IN STD_LOGIC;--输入20M时钟 rst_p : IN STD_LOGIC;--复位信号 --A路 al : OUT STD_LOGIC;--左转 ag : OUT STD_LOGIC;--绿 ay : OUT STD_LOGIC;--黄 ar : OUT STD_LOGIC;--红 --B路 bl : OUT STD_LOGIC;--左转 bg : OUT STD_LOGIC;--绿 by : OUT STD_LOGIC;--黄 br : OUT STD_LOGIC;--红 --两个数码管显示十位和个位--一共四个数码管 SEG_ten : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--十位 SEG_one : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)--个位 ); END traffic_light; ARCHITECTURE behav OF traffic_light IS --例化状态机控制模块 COMPONENT state_machine_control PORT( clk : IN STD_LOGIC; rst_p : IN STD_LOGIC; al : OUT STD_LOGIC; ag : OUT STD_LOGIC; ay : OUT STD_LOGIC; ar : OUT STD_LOGIC; bl : OUT STD_LOGIC; bg : OUT STD_LOGIC; by : OUT STD_LOGIC; br : OUT STD_LOGIC; light_change : OUT STD_LOGIC; current_state : OUT STD_LOGIC_VECTOR(2 DOWNTO 0) ); END COMPONENT; --例化分频模块 COMPONENT div_to_1HZ PORT(clk_20M : IN STD_LOGIC; clk_1Hz : OUT STD_LOGIC; clk_1Hz2 :OUT std_logic ); END COMPONENT; --例化数码管显示模块 COMPONENT SEG_8 PORT(clk : IN STD_LOGIC; clk_20M: IN STD_LOGIC; rst_p : IN STD_LOGIC; light_change : IN STD_LOGIC; SEG_A : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); SEG_B : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); current_state : IN STD_LOGIC_VECTOR(2 DOWNTO 0) ); END COMPONENT;
源代码
点击下方的公众号卡片获取