EDA原理与及应用试验报告交通灯控制器_第1页
EDA原理与及应用试验报告交通灯控制器_第2页
EDA原理与及应用试验报告交通灯控制器_第3页
EDA原理与及应用试验报告交通灯控制器_第4页
EDA原理与及应用试验报告交通灯控制器_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、EDA 原理与及应用 实验报告 题目:交通灯控制器 专业:电子信息工程 班级:教育资料姓名:学号:一、设计题目:交通灯控制器二、设计目标:1、设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路 口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通 行,黄灯亮则给行驶中的车辆有时间停在禁行线外。2、红、绿、黄发光二极管作信号灯。3、主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。4、主、支干道均有车时,两者交替允许通行,主干道每次放行 45 秒,支 干道每次放行 25 秒,设立 45 秒、 25 秒计时、显示电路。5、在每次由绿灯亮到红灯亮的转换过程中,

2、要亮 5 秒黄灯作为过渡,使行 驶中的车辆有时间停到禁行线外,设立 5 秒计时、显示电路。三、设计原理:(含系统总的原理图)教育资料由两个分频器模块,三个计数器模块及它的选择器,一个扫描数码管模块,和一个红绿灯控制模块连接而成RTL 状态图四、设计内容:(含状态转换图、软件流程图、说明文字等,每单 独模块的图标和 VHDL 程序;最后为总体程序框图) 分频器 1教育资料LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DVF ISPORT(CLK:IN STD_LOGIC;-D:IN

3、STD_LOGIC_VECTOR(3 DOWNTO 0);FOUT:OUT STD_LOGIC);END;ARCHITECTURE one OF DVF ISSIGNAL FULL:STD_LOGIC;BEGINP_REG:PROCESS(CLK)VARIABLE CNT8:INTEGER RANGE 48000000 DOWNTO 0;BEGINIF CLKEVENT AND CLK=1 THENIF CNT8=24000000 THENCNT8:=0;FULL=1;ELSE CNT8:=CNT8+1;教育资料FULL=0;END IF;END IF;END PROCESS P_REG;P_

4、DIV:PROCESS(FULL)VARIABLE CNT2:STD_LOGIC;BEGINIF FULLEVENT AND FULL=1 THENCNT2:=NOT CNT2;IF CNT2=1 THEN FOUT=1;ELSE FOUT=0;END IF;END IF;END PROCESS P_DIV;END;教育资料说明 :采用的是 48M 时钟输入,作为后面的时钟信号分频器 2LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DVF2 IS 教育资料PORT(CLK:IN S

5、TD_LOGIC;-D:IN STD_LOGIC_VECTOR(3 DOWNTO 0);FOUT:OUT STD_LOGIC);END;ARCHITECTURE one OF DVF2 ISSIGNAL FULL:STD_LOGIC;BEGINP_REG:PROCESS(CLK)VARIABLE CNT8:INTEGER RANGE 48000000 DOWNTO 0;BEGINIF CLKEVENT AND CLK=1 THENIF CNT8=20000 THENCNT8:=0;FULL=1;ELSE CNT8:=CNT8+1;FULL=0;END IF;END IF;END PROCESS

6、 P_REG;P_DIV:PROCESS(FULL)VARIABLE CNT2:STD_LOGIC;BEGIN教育资料IF FULLEVENT AND FULL=1 THENCNT2:=NOT CNT2;IF CNT2=1 THEN FOUT=1;ELSE FOUT=0;END IF;END IF;END PROCESS P_DIV;END;说明:改变了分频器的大小,这个频率很高,是给扫描数码管模块使 用的。计数器 1教育资料LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cntn

7、ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC_vector(2 downto 0);U:IN STD_LOGIC_VECTOR(2 DOWNTO 0);A,B:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END;ARCHITECTURE bhv OF cntn ISSIGNAL J,K,L:STD_LOGIC;SIGNAL Q2,Q1:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINa1:PROCESS(CLK)BEGINIF CLR=001 THEN Q1=0100;ELSIF U=010 THENIF CLKEV

8、ENT AND CLK=1 THENQ1=Q1-1; IF Q1=0000 THEN Q1=1001;J=1;ELSE J=0;END IF;教育资料END IF;A=Q1;END IF;END PROCESS;a2:PROCESS(J)BEGINIF CLR=001 THEN Q2=0010;ELSIF U=010 THENIF JEVENT AND J=1 THENQ2=Q2-1; IF Q2=0000 THEN Q2=0010;K=0;ELSE K=1;END IF;END IF;B=Q2;END IF;END PROCESS;END ;说明: 作为支干道通行时间,倒计时 25s计数器

9、2教育资料LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cntm ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC_vector(2 downto 0);U:IN STD_LOGIC_VECTOR(2 DOWNTO 0);C,D:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END;ARCHITECTURE bhv OF cntm ISSIGNAL J,K,L:STD_LOGIC;SIGNAL Q2,Q1:STD_LOGIC_VE

10、CTOR(3 DOWNTO 0);BEGINa1:PROCESS(CLK)BEGINIF CLR=010 THEN Q1=0101;ELSIF U=001 THENIF CLKEVENT AND CLK=1 THENQ1=Q1-1; IF Q1=0000 THEN Q1=1001;J=1;ELSE J=0;END IF;教育资料END IF;C=Q1;END IF;END PROCESS;a2:PROCESS(J)BEGINIF CLR=010 THEN Q2=0000;ELSIF U=001 THENIF JEVENT AND J=1 THENQ2=Q2-1; IF Q2=0000 THEN

11、 Q2=0010;K=0;ELSE K=1;END IF;END IF;D=Q2;END IF;END PROCESS;END ;教育资料说明:要亮 5 秒黄灯作为过渡计数器 3LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cntl ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC_vector(2 downto 0);U:IN STD_LOGIC_VECTOR(2 DOWNTO 0);E,F:OUT STD_LOGIC_VECTOR(3 DOWNT

12、O 0);教育资料END;ARCHITECTURE bhv OF cntl ISSIGNAL J,K,L:STD_LOGIC;SIGNAL Q2,Q1:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINa1:PROCESS(CLK)BEGINIF CLR=001 THEN Q1=0100;ELSIF U=000 THENIF CLKEVENT AND CLK=1 THENQ1=Q1-1; IF Q1=0000 THEN Q1=1001;J=1;ELSE J=0;END IF;END IF;E=Q1;END IF;END PROCESS;a2:PROCESS(J)BEGINIF

13、 CLR=001 THEN Q2=0100;ELSIF U=000 THENIF JEVENT AND J=1 THENQ2=Q2-1; IF Q2=0000 THEN Q2=0010;K=0;ELSE K=1;END IF;END IF;FQ1=E;Q2Q1=C;Q2Q1=A;Q2NULL;END CASE;END PROCESS;END ;教育资料说明: 不同的状态数码管分别显示 45s ,25s ,5s 倒计时红绿灯控制模块library ieee;use ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;教育资料 entit

14、y deng isgeneric(a:integer:=45;b:integer:=5;c:integer:=25);port(clk,rst : in std_logic;R1,G1,Y1,R2,G2,Y2 : out std_logic;U:out std_logic_vector(2 downto 0); end;architecture one of deng istype fsm_st is (QA,QB,QC,QD);signal current_state , next_state : fsm_st;SIGNAL q: integer range 0 TO 200;begin-p

15、rocess(clk) -begin -if clk = 1 and clkevent then -if q=29 then q=0;else q=q+1;end if;end if;-end process;教育资料process (clk) beginif rst = 0 then current_state = QA;q=0;elsif clk = 1 and clkevent thencurrent_state = next_state;if q=a+b+b+c-1 then q=0;else qG1 = 0;R2= 0;R1=1;Y1=1;G2=1;Y2=1;U=000;if q=a

16、-1 then next_state = QB;else next_state Y1=0;R2= 0;R1=1;G1 = 1;G2=1;Y2=1;U=001;if q=a+b-1 then next_state = QC;else next_state R1=0;G2= 0;Y1=1;G1 = 1;R2=1;Y2=1;U=010;if q=a+b+c-1 then next_state = QD;else next_state R1=0;Y2= 0;Y1=1;G1 = 1;G2=1;R2=1;U=001;if q=a+b+b+c-1 then next_state = QA;else next_state bt=NOT00000001;abt=NOT00000010;abt=NOT00000100;abt=NOT00001000;abt=NOT00010000;abt=NOT00100000;abt=NOT01000000;abt=NOT10000000;anull;end case;end process p1;p2:process(clk)beginif clkevent and clk=1 then cnt8

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论