• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

DE0-CV开发板交通灯控制器红绿灯VHDL正常和报警

05/21 08:15
728
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1-2310312319453U.doc

共1个文件

名称:DE0-CV开发板交通灯控制器红绿灯VHDL正常和报警(代码在文末下载)

软件:QuartusII

语言:VHDL

代码功能:

要求:设计一个十字路口交通信号灯的控制电路。分为两种情况,正常状态和报警状态。

1.正常状态:要求红、绿灯按一定的规律亮和灭,并在亮灯期间进行倒计时,且将运行时间用数码管显示出来。

绿灯亮时,为该车道允许通行信号,红灯亮时,为该车道禁止通行信号。

要求主干道每次通行时间为 60秒,支干道每次通行时间为 30 秒。

每次变换运行车道前绿灯闪烁,持续时间为 5 秒。

即车道要由 X转换为 Y时,X在通行时间只剩下 5 秒钟时,绿灯闪烁显示, Y仍为红灯。

2.报警状态:亮黄灯,蜂鸣器响起。(蜂鸣器高电平触发)

外接键盘:三种模式的切换:高峰,正常,夜晚

高峰:x:绿灯 35S 红灯25S;y:绿灯 25S 红灯35S。

夜晚:x:绿灯 45S 红灯45S;y:绿灯 45S红灯45S

本代码已在DE0-CV开发板验证,开发板如下,其他开发板只需要修改管脚即可:

DE0_cv.png

演示视频:

FPGA代码Verilog/VHDL代码资源下载网:www.hdlcode.com

部分代码展示

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
ENTITY?Traffic_Light_Control?IS
???PORT?(
??????clk?????:?IN?STD_LOGIC;--50Mhz
reset??????????:?IN?STD_LOGIC;--复位
??????key_1??????????:?IN?STD_LOGIC;--正常状态按键
??????key_2??????????:?IN?STD_LOGIC;--高峰状态按键
??????key_3??????????:?IN?STD_LOGIC;--夜晚状态按键
??????sw1????????????:?IN?STD_LOGIC;--主路报警开关
??????sw2????????????:?IN?STD_LOGIC;--支路报警开关
??????beep????????????:?OUT?STD_LOGIC;--报警蜂鸣器
??????red_1??????????:?OUT?STD_LOGIC;--主路灯
??????green_1????????:?OUT?STD_LOGIC;--主路灯
??????yellow_1???????:?OUT?STD_LOGIC;--主路灯
??????red_2??????????:?OUT?STD_LOGIC;--支路灯
??????green_2????????:?OUT?STD_LOGIC;--支路灯
??????yellow_2???????:?OUT?STD_LOGIC;--支路灯
??????HEX0????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);--数码管0
??????HEX1????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);--数码管1
??????HEX2????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);--数码管2
??????HEX3????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0)--数码管3
???);
END?Traffic_Light_Control;
ARCHITECTURE?behave?OF?Traffic_Light_Control?IS
--分频模块
COMPONENT?CLOCK?IS--?Divide?50MHz?to?1Hz
GENERIC(D?:?INTEGER?:=?50000000);--仿真时改小为50加快仿真速度,实际上板验证时改为50000000
???PORT(CLK:?IN?STD_LOGIC;
?????????DAV:?OUT?STD_LOGIC);
???END?COMPONENT;
--交通灯控制模块
COMPONENT?Traffic_Light_ctrl?IS
???PORT?(
??????clk????????????:?IN?STD_LOGIC;
??????reset??????????:?IN?STD_LOGIC;
??????clk_1Hz????????:?IN?STD_LOGIC;--1Hz信号
??????key_1??????????:?IN?STD_LOGIC;--正常状态按键
??????key_2??????????:?IN?STD_LOGIC;--高峰状态按键
??????key_3??????????:?IN?STD_LOGIC;--夜晚状态按键
??????sw1????????????:?IN?STD_LOGIC;--主路报警开关
??????sw2????????????:?IN?STD_LOGIC;--支路报警开关
beep????????????:?OUT?STD_LOGIC;--报警蜂鸣器
??????red_1??????????:?OUT?STD_LOGIC;--主路灯
??????green_1????????:?OUT?STD_LOGIC;--主路灯
??????yellow_1???????:?OUT?STD_LOGIC;--主路灯
??????red_2??????????:?OUT?STD_LOGIC;--支路灯
??????green_2????????:?OUT?STD_LOGIC;--支路灯
??????yellow_2???????:?OUT?STD_LOGIC;--支路灯
??????main_time??????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);--主路倒计时
??????branch_time????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--支路倒计时
???);
END?COMPONENT;
--显示模块
???COMPONENT?HEX?IS
??????PORT?(
?????????clk?????:?IN?STD_LOGIC;
?????????SMG_1???:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0);
?????????SMG_2???:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0);
?????????HEX0????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);
?????????HEX1????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);
?????????HEX2????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);
?????????HEX3????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0)
??????);
???END?COMPONENT;
???SIGNAL?clk_1??????:?STD_LOGIC;
???SIGNAL?main_time????:?STD_LOGIC_VECTOR(7?DOWNTO?0);
???SIGNAL?branch_time????:?STD_LOGIC_VECTOR(7?DOWNTO?0);
BEGIN
???
--分频到1hz???
???U_CLOCK?:?CLOCK
??????PORT?MAP?(
?????????clk??=>?clk,
?????????dav??=>?clk_1
??????);
--交通灯控制模块
i_Traffic_Light_ctrl:?Traffic_Light_ctrl
???PORT?MAP(
??????clk????????????=>?clk,
??????reset??????????=>?reset,
??????clk_1Hz????????=>?clk_1,--1Hz信号
??????key_1??????????=>?key_1,--正常状态按键
??????key_2??????????=>?key_2,--高峰状态按键
??????key_3??????????=>?key_3,--夜晚状态按键
??????sw1????????????=>?sw1,--主路报警开关
??????sw2????????????=>?sw2,--支路报警开关
beep???????????=>beep,--报警蜂鸣器
??????red_1??????????=>?red_1,--主路灯
??????green_1????????=>?green_1,--主路灯
??????yellow_1???????=>?yellow_1,--主路灯
??????red_2??????????=>?red_2,--支路灯
??????green_2????????=>?green_2,--支路灯
??????yellow_2???????=>?yellow_2,--支路灯
??????main_time??????=>?main_time,--主路倒计时
??????branch_time????=>?branch_time--支路倒计时
???);
???
???--数码管显示模块
???U3?:?HEX
??????PORT?MAP?(
?????????clk????=>?clk,
?????????SMG_1??=>?main_time,--数码管数据显示--主路倒计时
?????????SMG_2??=>?branch_time,--数码管数据显示--支路倒计时
?????????
?????????HEX0???=>?HEX0,--低电平亮
?????????HEX1???=>?HEX1,--低电平亮
?????????HEX2???=>?HEX2,--低电平亮
?????????HEX3???=>?HEX3--低电平亮
??????);
???
END?behave;

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚分配

6. Testbench

7. 仿真图

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=228

  • 1-2310312319453U.doc
    下载

相关推荐