EDA实验 交通灯设计

时间:2025-04-18

实验内容与要求一条主干道,一条乡间公路,组成十字路口,要求保证主干道先通行,有MR(主红),MY(主黄),MG(主绿),CR(乡红),CY(乡黄),CG(乡绿)。六盏交通灯需要控制;交通灯由绿变红有4秒黄灯亮的时间间隔,由红到绿没有时间间隔;系统有MRCY、MRCG、MYCR、MGCR四个状态;乡间公路右侧各埋有一个传感器,当有车辆通过乡间公路时,发出请求信号s=1,其余时间s=0。

实验五 交通灯控制器设计

一、实验目的

(1)进一步熟练EDA设计流程、系统仿真及硬件测试分析。 (2)学会用分层次设计的方法设计交通灯控制器。

(3)掌握动态数码管的原理,学会用VHDL语言编程使用数码管。 (4)学习较复杂数字电路系统的设计。 二、实验内容与要求

一条主干道,一条乡间公路,组成十字路口,要求保证主干道先通行,有MR(主红),MY(主黄),MG(主绿),CR(乡红),CY(乡黄),CG(乡绿)。六盏交通灯需要控制;交通灯由绿变红有4秒黄灯亮的时间间隔,由红到绿没有时间间隔;系统有MRCY、MRCG、MYCR、MGCR四个状态;

乡间公路右侧各埋有一个传感器,当有车辆通过乡间公路时,发出请求信号s=1,其余时间s=0;

平时系统停留在MGCR(主干道通行)状态,当s=1时,经MYCR(黄灯)状态转到MRCG状态,但保证MGCR不短于一分钟;一旦s=0系统将脱离MRCG状态。随即由MRCY进入MGCR状态,即使s一直为1,MRCG持续时间也不得超过20秒。 三、设计思路/原理图

图一、交通灯控制器原理图

采用分层设计的方法分为其中jishuqi为倒计数器模块预置数有60、3、19三种。yimaqi为8位二进制数译码成8421BCD码的译码模块,dongtaism为动态扫描显示模块,deng为交通灯状态转移模块。当s=0时系统处以MGCR状态,一旦s=1且一直有效则状态转移:MGCR——>MYCR——>MRCG——>MRCY——>MGCR。其中MGCR持续时间为61秒,MYCR持续时间为4秒,MRCG最长持续时间为20秒。MRCY持续时间为4秒。

实验内容与要求一条主干道,一条乡间公路,组成十字路口,要求保证主干道先通行,有MR(主红),MY(主黄),MG(主绿),CR(乡红),CY(乡黄),CG(乡绿)。六盏交通灯需要控制;交通灯由绿变红有4秒黄灯亮的时间间隔,由红到绿没有时间间隔;系统有MRCY、MRCG、MYCR、MGCR四个状态;乡间公路右侧各埋有一个传感器,当有车辆通过乡间公路时,发出请求信号s=1,其余时间s=0。

四、实验程序 (程序来源:王鸿亮 6100208031 ) (1)倒计数器模块jishuqi library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity jishuqi is

port(clk,s:in std_logic;

count:out std_logic_vector(7 downto 0); state:out std_logic_vector(1 downto 0)); end jishuqi;

architecture one of jishuqi is

signal st:std_logic_vector(1 downto 0):="00"; signal cnt:std_logic_vector(7 downto 0); type states is (st0,st1); signal stx:states; begin

process(clk,s) begin

if clk'event and clk='1' then case st is

when "00" =>if s='1' then case stx is when st0=>cnt<="00111100";stx<=st1;

when st1=>if cnt>0 then cnt<=cnt-1;else cnt<="00000011";st<="01";end if;

when others=>null;end case; else cnt<="00000000";stx<=st0;st<="00";end if;

when "01" =>if s='1' then case stx is when st1=>if cnt>0 then cnt<=cnt-1;else cnt<="00010011";st<="10";end if;

when others=>null;end case;

else case stx is when st1=>if cnt>0 then cnt<=cnt-1;else cnt<="00000000";st<="00";end if;

when others=>null;end case;end if;

when "10"=> if s='1' then case stx is when st1=>if cnt>0 then cnt<=cnt-1;else cnt<="00000011";st<="11";end if;

when others=>null;end case; else cnt<="00000011";st<="11";end if;

when "11"=> if cnt>0 then cnt<=cnt-1;else cnt<="00000000";st<="00";stx<=st0;end if; when others=>null; end case; end if;

end process; state<=st;

实验内容与要求一条主干道,一条乡间公路,组成十字路口,要求保证主干道先通行,有MR(主红),MY(主黄),MG(主绿),CR(乡红),CY(乡黄),CG(乡绿)。六盏交通灯需要控制;交通灯由绿变红有4秒黄灯亮的时间间隔,由红到绿没有时间间隔;系统有MRCY、MRCG、MYCR、MGCR四个状态;乡间公路右侧各埋有一个传感器,当有车辆通过乡间公路时,发出请求信号s=1,其余时间s=0。

count<=cnt; end architecture;

(2)交通灯状态转移模块deng library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity deng is

port(state:in std_logic_vector(1 downto 0); mg,cr,my,cg,mr,cy:out std_logic ) ; end entity deng ;

architecture one of deng is begin

process(state) begin

case state is

when "00"=>mg<='1';cr<='1';my<='0';mr<='0';cg<='0';cy<='0';

when "01"=>mg<='0';cr<='1';my<='1';mr<='0';cg<='0';cy<='0';

when "10"=>mg<='0';cr<='0';my<='0';mr<='1';cg<='1';cy<='0';

when "11"=>mg<='0';cr<='0';my<='0';mr<='1';cg<='0';cy<='1'; end case; end process;

end architecture one;

(5) 八位二进制向八位BCD译码的译码模块yimaqi library ieee;

use ieee.std_logic_1164.all; use ieee.std …… 此处隐藏:4953字,全部文档内容请下载后查看。喜欢就下载吧 ……

EDA实验 交通灯设计.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219