多功能交通灯控制系统VHDL十字路口红绿灯倒计时DE2-115开发板代码

这篇具有很好参考价值的文章主要介绍了多功能交通灯控制系统VHDL十字路口红绿灯倒计时DE2-115开发板代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

名称:多功能交通灯控制系统VHDL十字路口红绿灯倒计时DE2-115开发板

软件:Quartus II

语言:VHDL

代码功能:

要求设计一个多功能交通灯控制系统。并进行软件仿真与硬件实现。要求做到 

(1)主干道绿灯亮时,支干道红灯亮,反之亦然,两者交替允许通行,主干道每次放行60s,支干道每次放行45s.每次由绿灯变为红灯的过程中,黄灯亮3S作为过渡; 

(2)能实现正常的倒计时显示功能; 

(3)能实现总体清零功能:计数器由初始状态开始计数,对应状态的指示灯亮 

(4)能实现特殊状态的功能显示:进入特殊状态时,东西、南北路口均显示红灯状态 

(5)在任何一个时刻,有一盏灯亮而且只有一盏灯亮。否则发出故障信号,提醒相关人员去维修。 

本代码的通行时间可以设置,如下代码修改即可:

--主、支干道均有车时,两者交替允许通行,
--主干道每次放行60秒,支干道每次放行45秒,
--设立60秒、45秒计时、显示电路
--设置时间,可自行修改时间,
--主路红灯时间等于支路绿灯加黄灯
--支路红灯时间等于主路绿灯加黄灯
   G1_time <= "00111100";--主路绿灯60s
   Y1_time <= "00000011";--主路黄灯3s
   G2_time <= "00101101";--支路绿灯45s
   Y2_time <= "00000011";--支路黄灯3s

基于de2-115的交通信号灯代码,fpga开发,交通灯,DE2-115,VHDL,红绿灯

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

本代码已在DE2-115开发板验证,开发板如下,其他开发板可以修改管脚适配:

基于de2-115的交通信号灯代码,fpga开发,交通灯,DE2-115,VHDL,红绿灯

代码下载:多功能交通灯控制系统VHDL十字路口红绿灯倒计时DE2-115开发板名称:多功能交通灯控制系统VHDL十字路口红绿灯倒计时DE2-115开发板(代码在文末下载)软件:Quartus II语言:VHDL代码功能:要求设计一个多功能交通灯控制系统。并进行软件仿真与硬件实现。要求做到 (1)主干道绿灯亮时,支干道红灯亮,反之亦然,两者交替允许通行,主干道每次放行60s,支干道每次放行45s.每次由绿灯变为红灯的过程中,黄灯亮3S作为过渡; (2)能实现正常的倒计时显示功http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=263

设计文档:

1. 工程文件

基于de2-115的交通信号灯代码,fpga开发,交通灯,DE2-115,VHDL,红绿灯

2. 程序文件

基于de2-115的交通信号灯代码,fpga开发,交通灯,DE2-115,VHDL,红绿灯

3. 管脚分配

基于de2-115的交通信号灯代码,fpga开发,交通灯,DE2-115,VHDL,红绿灯

4. 程序编译

基于de2-115的交通信号灯代码,fpga开发,交通灯,DE2-115,VHDL,红绿灯

5. RTL图

基于de2-115的交通信号灯代码,fpga开发,交通灯,DE2-115,VHDL,红绿灯

6. 仿真图

整体仿真图

基于de2-115的交通信号灯代码,fpga开发,交通灯,DE2-115,VHDL,红绿灯

基于de2-115的交通信号灯代码,fpga开发,交通灯,DE2-115,VHDL,红绿灯

分频模块仿真图

基于de2-115的交通信号灯代码,fpga开发,交通灯,DE2-115,VHDL,红绿灯

交通灯控制模块

基于de2-115的交通信号灯代码,fpga开发,交通灯,DE2-115,VHDL,红绿灯

显示模块

基于de2-115的交通信号灯代码,fpga开发,交通灯,DE2-115,VHDL,红绿灯

部分代码展示:文章来源地址https://www.toymoban.com/news/detail-762383.html

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;
--交通灯
ENTITY Traffic_Light_Control IS
   PORT (
      clk     : IN STD_LOGIC;--50Mhz
reset_n : IN STD_LOGIC;--复位
control : IN STD_LOGIC;--特殊功能
      R1      : OUT STD_LOGIC;--高电平亮,主路红灯
      G1      : OUT STD_LOGIC;--高电平亮,主路绿灯
      Y1      : OUT STD_LOGIC;--高电平亮,主路黄灯
      R2      : OUT STD_LOGIC;--高电平亮,支路红灯
      G2      : OUT STD_LOGIC;--高电平亮,支路绿灯
      Y2      : OUT STD_LOGIC;--高电平亮,支路黄灯
alarm   : 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);--仿真时改小为500加快仿真速度,实际上板验证时改为50000000
   PORT(CLK: IN STD_LOGIC;
         DAV: OUT STD_LOGIC);
   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;
   
--交通灯控制模块
   COMPONENT RGY IS
      PORT (
         clk_1   : IN STD_LOGIC;
clk   : IN STD_LOGIC;
reset_n : IN STD_LOGIC;--复位
control : IN STD_LOGIC;----特殊功能
         G1_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         Y1_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         G2_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         Y2_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         R1      : OUT STD_LOGIC;
         G1      : OUT STD_LOGIC;
         Y1      : OUT STD_LOGIC;
         R2      : OUT STD_LOGIC;
         G2      : OUT STD_LOGIC;
         Y2      : OUT STD_LOGIC;
      SMG1     : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--输出数码管显示数
      SMG2     : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--输出数码管显示数
      );
   END COMPONENT;
   
   
   SIGNAL clk_1      : STD_LOGIC;
   SIGNAL SMG1       : STD_LOGIC_VECTOR(7 DOWNTO 0);
   SIGNAL SMG2       : STD_LOGIC_VECTOR(7 DOWNTO 0);
   
   SIGNAL R1_led     : STD_LOGIC;
   SIGNAL G1_led     : STD_LOGIC;
   SIGNAL Y1_led     : STD_LOGIC;
   
   SIGNAL R2_led     : STD_LOGIC;
   SIGNAL G2_led     : STD_LOGIC;
   SIGNAL Y2_led     : STD_LOGIC;
   
   SIGNAL G1_time    : STD_LOGIC_VECTOR(7 DOWNTO 0);
   SIGNAL Y1_time    : STD_LOGIC_VECTOR(7 DOWNTO 0);
   SIGNAL G2_time    : STD_LOGIC_VECTOR(7 DOWNTO 0);
   SIGNAL Y2_time    : STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL led1_cnt    : STD_LOGIC_VECTOR(1 DOWNTO 0);
SIGNAL led2_cnt    : STD_LOGIC_VECTOR(1 DOWNTO 0);
   
   SIGNAL HEX0_SIG : STD_LOGIC_VECTOR(6 DOWNTO 0);
   SIGNAL HEX1_SIG : STD_LOGIC_VECTOR(6 DOWNTO 0);
   SIGNAL HEX2_SIG : STD_LOGIC_VECTOR(6 DOWNTO 0);
   SIGNAL HEX3_SIG : STD_LOGIC_VECTOR(6 DOWNTO 0);
BEGIN
--每条路led计数
   led1_cnt<=('0'& R1_led) + ('0'& G1_led) + ('0'& Y1_led);
led2_cnt<=('0'& R2_led) + ('0'& G2_led) + ('0'& Y2_led);
--判断是否有2个以上灯亮,若有输出1
alarm<='1' when(led1_cnt > "01" ) or (led2_cnt > "01") else '0' ;
   HEX0 <= HEX0_SIG;
   HEX1 <= HEX1_SIG;
   HEX2 <= HEX2_SIG;
   HEX3 <= HEX3_SIG;
   R1 <= R1_led;--主路红灯
   G1 <= G1_led;--主路绿灯
   Y1 <= Y1_led;--主路黄灯
   R2 <= R2_led;--支路红灯
   G2 <= G2_led;--支路绿灯
   Y2 <= Y2_led;--支路黄灯
   
--分频到1hz   
   U_CLOCK : CLOCK
      PORT MAP (
         clk  => clk,
         dav  => clk_1
      );
--主、支干道均有车时,两者交替允许通行,
--主干道每次放行60秒,支干道每次放行45秒,
--设立60秒、45秒计时、显示电路
--设置时间,可自行修改时间,
--主路红灯时间等于支路绿灯加黄灯
--支路红灯时间等于主路绿灯加黄灯
   G1_time <= "00111100";--主路绿灯60s
   Y1_time <= "00000011";--主路黄灯3s
   G2_time <= "00101101";--支路绿灯45s
   Y2_time <= "00000011";--支路黄灯3s
   
   
 --交通灯控制模块  
   U1 : RGY
      PORT MAP (
         clk_1    => clk_1,
clk    => clk,
reset_n=>reset_n,
         control  => control,
         R1       => R1_led,
         G1       => G1_led,
         Y1       => Y1_led,
         
         R2       => R2_led,
         G2       => G2_led,
         Y2       => Y2_led,
         
         G1_time  => G1_time,
         Y1_time  => Y1_time,
         G2_time  => G2_time,
         Y2_time  => Y2_time,
         
         SMG1     => SMG1,--数码管显示
         SMG2     => SMG2--数码管显示
      );
   
   --数码管显示模块
   U3 : HEX
      PORT MAP (
         clk    => clk,
         SMG_1  => SMG1,--数码管数据显示
         SMG_2  => SMG2,--数码管数据显示
         
         HEX0   => HEX0_SIG,--低电平亮
         HEX1   => HEX1_SIG,--低电平亮
         HEX2   => HEX2_SIG,--低电平亮
         HEX3   => HEX3_SIG--低电平亮
      );
   
END behave;

到了这里,关于多功能交通灯控制系统VHDL十字路口红绿灯倒计时DE2-115开发板代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA智能交通灯控制器系统系统设计

    把由5OM的有源晶振产生的现场可编程逻辑器件FPGA 的系统时钟输入到分频模块,经分频模块分频产生频率为1Hz的时钟脉冲,作为控制定时模块、控制模块、紧急模块、计数模块的时钟信号,然后再由定时模块来控制紧急模块和控制模块,按照交通管理规则控制交通工作状态的

    2024年02月04日
    浏览(28)
  • 基于单片机控制的交通灯系统设计

    本设计是交通灯的控制实验,必须要先了解实际交通灯的变化规律。假设一个路口为东西南北走向,即十字路口,初始状态零为东西南北灯都熄灭。然后转状态一东西绿灯通车,南北为红灯。过段时间转状态二,东西绿灯闪几次转黄灯,延时几秒,南北仍为红灯。再转状态三

    2024年02月08日
    浏览(44)
  • 【Proteus仿真】【STM32单片机】交通灯控制系统设计

    本项目使用Proteus8仿真STM32单片机控制器,使用数码管、按键、交通信号灯模块等。 系统运行后,交通灯系统开始运行,数码管显示初始时间,默认南北绿灯5S,东西红灯8S,绿灯过后南北黄灯3秒;然后切换东西绿灯5S,南北红灯8S,绿灯过后南北黄灯3秒;如此循环。 可使用

    2024年02月11日
    浏览(27)
  • 51单片机的交通灯控制系统(仿真+程序+报告+原理图)

    该系统由AT89C51单片机+数码管模块+LED指示灯模块+按键模块构成。 可实现基本功能: 1、红绿灯正常切换,黄灯会闪烁 2、红灯30s,绿灯25s,黄灯5s(时间不同只需修改变量,简单) 按键功能: 1、南北向红灯时间可调,东西向绿灯时间可调 2、东西方向紧急模式:按下东西方向变

    2024年02月05日
    浏览(40)
  • 单片机设计基于单片机的交通灯控制系统的设计

      针对我国城市路况复杂的特点,在交通灯控制系统硬件设计方面以最小系统模块、电源模块、时间显示模块以及车流量检测模块为主要模块,不仅可以完成交通灯的顺序点亮,还可以实现倒计时、车流量检测等相关功能;软件设计方面通过检测程序的设定,来检测是否达

    2024年02月04日
    浏览(32)
  • 【毕业设计】基于PLC的十字路口交通灯控制系统设计【仿真+源码+论文】

    摘 要 本次设计的课题是基于PLC的十字路口交通灯控制系统设计,传统的十字路口交通灯多采用单片机集成电路作为控制系统,单片机系统虽然在功能上能够实现十字路口交通灯的各种控制需求,但是单片机控制系统在设计时需要数字电路与模拟电路的完美结合,这样的控制

    2024年02月08日
    浏览(37)
  • 大学生创新创业大赛论文:多功能智能跟随行李箱控制系统设计

    完成日期:2021-08-31 行李箱是人们旅途中的好帮手,最早的行李箱可追溯到20世纪20年代的木制手提箱,随着航空业的发展,轮式行李箱于1972年在美国问世[1]。直至1987年才出现了装上了轮子和拉杆的立式拉杆箱,解决了乘务人员到处跑的困难,逐渐普及到全球市场。 行李箱极

    2023年04月12日
    浏览(25)
  • 实验(八):交通灯控制

            1. 学习模拟交通灯控制的实现方法;         2. 掌握Proteus硬件仿真与调试。         1.根据要求编写程序,并写出原理性注释;         2. 将检查程序运行的结果,分析一下是否正确;         3. 完成所建工程的仿真及调试。 按照电路要求在Protu

    2024年02月03日
    浏览(40)
  • 数电课设交通灯控制器

    1.通灯控制器内容 设计一个红绿灯控制器控制器,模拟十字路口交通灯 的状态。设计要求: 南北主干道红灯时间小于东西干道红灯时间,东西干道红灯时间为学号尾数两位(20以前的+20),黄灯为5秒,红灯时间=绿灯时间+黄灯时间。东西、南北4个方向的红绿黄灯时间都用两

    2024年02月09日
    浏览(33)
  • 红绿灯交通灯控制逻辑电路设计

    最近无聊整理一下以前的笔记之类的,发现以前的课设,简陋粗糙,还是记录下吧。 此设计有具体接线说明 实验箱大概如下图 课设任务及要求 1、满足如图 1 顺序工作流程 t为时间单位 2、满足两个方向的工作时序 即东西方向亮红灯时间应等于南北方向亮黄、绿灯时间之和,

    2024年02月10日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包