My title page contents

交通灯控制实验设计VHDL代码Quartus仿真

名称:交通灯控制实验设计VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

本电路是常用交通灯控制的电路,用于控制某路口红绿黄三色信号灯,对于该电路的设计,需综合应用数字电路中组合逻辑与时序电路的基本知识,掌握各类触发器、门电路的工作原理与使用要点,并分析数字电路在调试过程中出现的各种问题    

不考虑主、次干道的通行优先情况,仅对两个道路的交汇路口进行红绿黄三色信号灯的控制电路设计,此时绿灯亮为T1,红灯亮为T2,黄灯亮为T3,只要亮灯时间一到,电路发出信号进行状态转换,这样的交通灯控制电路是目前应用较为普遍的电路

根据交通规则,即“红灯停,绿灯行,黄灯提醒”,交通灯的亮灭规律为:初始态是两个路口的红灯全亮。之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向开始通行,同时从12秒开始倒计时,倒计时到1秒时东西绿灯灭,黄灯开始亮,倒计时从3秒开始,倒计时到0秒后,东西路口红灯亮,倒计时从14秒开始,同时南北路口的绿灯亮,南北方向开始通行,同样从12秒开始倒计时,再切换到东西路口方向,以后周而复始的重复上述过程。 


交通灯控制实验.jpg

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


演示视频:

设计文档:

设计文档.doc

1. 工程文件

Quartus9.0版本


2. 程序文件


3. 程序编译


4. 管脚分配


5. RTL图(模块连接图)


6. 仿真图


部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
ENTITY Traffic_Light_Control IS
   PORT (
      clk     : IN STD_LOGIC;--48MHz
--      enable  : IN STD_LOGIC;--hold,按下高电平
      R1      : OUT STD_LOGIC;
      G1      : OUT STD_LOGIC;
      Y1      : OUT STD_LOGIC;
      R2      : OUT STD_LOGIC;
      G2      : OUT STD_LOGIC;
      Y2      : OUT STD_LOGIC;
dig:OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);
seg:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
   );
END Traffic_Light_Control;
ARCHITECTURE trans OF Traffic_Light_Control IS
COMPONENT CLOCK IS-- Divide 48MHz to 1Hz
GENERIC(D : INTEGER := 48000000);
   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);
dig:OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);
seg:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
      );
   END COMPONENT;
   
   COMPONENT SMG IS
      PORT (
         clk     : IN STD_LOGIC;
         R1      : IN STD_LOGIC;
         G1      : IN STD_LOGIC;
         Y1      : IN STD_LOGIC;
         R2      : IN STD_LOGIC;
         G2      : IN STD_LOGIC;
         Y2      : IN STD_LOGIC;
         G1_BCD  : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         Y1_BCD  : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         R1_BCD  : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         G2_BCD  : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         Y2_BCD  : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         R2_BCD  : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         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);
         SMG1    : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
         SMG2    : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
      );
   END COMPONENT;
   
   COMPONENT RGY IS
      PORT (
         clk_1   : IN STD_LOGIC;
         enable  : 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;
         G1_BCD  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
         Y1_BCD  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
         R1_BCD  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
         G2_BCD  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
         Y2_BCD  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
         R2_BCD  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
      );
   END COMPONENT;

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 交通灯控制实验设计VHDL代码Quartus仿真

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员