EDA交通灯控制器VHDL设计_第1页
EDA交通灯控制器VHDL设计_第2页
EDA交通灯控制器VHDL设计_第3页
EDA交通灯控制器VHDL设计_第4页
EDA交通灯控制器VHDL设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、仅供个人参考EDA课程设计不得用于商业用途题目:交通灯控制器VHDL设计专业 班级 姓名 学号通信工程 通信082 XXX XXXXXXXX设计要求乐曲硬件演奏电路的VHDL 设计要求:1、 设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、 黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。2、 红、绿、黄发光二极管作信号灯,。3、 主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。4、 主、支干道均有车时,两者交替允许通行,主干道每次放行45 秒,支

2、干道每次放行25 秒,设立45 秒、 25 秒计时、显示电路。5、 在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5 秒计时、显示电路。教学提示:1、 选择 1HZ 时钟脉冲作为系统时钟。2、 45 秒、25 秒、 5秒定时信号可用顺计时,也可用倒计时,计时起始信号由主控电路给出,每当计满所需时间,即向主控电路输出“时间到”信号,并使计数器清零,由主控电路启、闭三色信号灯或启动另一计时电路。显示结果:设计一个十字路口的交通灯控制器,能显示十字路口东西、南北两个方向的红、黄、绿灯的指示状态。用两组红、黄、绿三种颜色的灯分别作为东西、南北两个方向的

3、红、黄、绿灯,变化规律为:东西绿灯亮,南北红灯亮一东西黄灯亮,南北红灯亮一东西红灯亮、南北绿灯亮一东西红灯亮,南北黄灯亮一东西绿灯亮,南北红灯亮.,这样依次循环。南北方向是主干道车道,东西方向是支干道车道,要求两条交叉道路上的车辆交替运行,主干道每次通行时间都设为45 秒,支干道每次通行时间都设为25秒,时间可设置修改。在绿灯转为红灯时,要求黄灯先亮5 秒钟,才能变换运行车道。要求交通灯控制器有复位功能,在复位信号使能的情况下能够实现交通灯的自动复位,并且要求所有交通灯的状态变化,包括复位信号引起的均发生时钟脉冲的上升沿处。设计方案:可选原理图输入法或VHDL 语言,也可以两种方式结合使用。设

4、计报告、设计题目:交通灯控制器VHDL设计二、设计目标:1、设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口, 在每个入口处设 置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间 停在禁行线外。2、红、绿、黄发光二极管作信号灯,。3、主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。4、主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。5、在每次由绿灯亮到红灯亮的转换过程中, 要亮5秒黄灯作为过渡,使行驶中的车辆有时

5、间停 到禁行线外,设立5秒计时、显示电路。三、设计原理:设计框图如下页图所示,该交通信号灯控制器由主控电路和计时电路两大部分组成。主控电路是一个单进程Moore 型有限状态机,通过接收定时器发送的“ 时间到 ” 信号以及根据s (用来指示支干道是否有车来,1'表示支干道没有车来,0'支干道有车来)的值进行状态的切换,实现对十字路口东西、南北两个方向的红、黄、绿灯状态的控制。具体控制过程为:当s= 1时,支干道没有车来,主干道处于常允许通行的状态,此时主干道亮绿灯,支干道亮红灯;当s= 0时,支干道有车来,即主、支干道均有车,两者交替允许通行,主干道每次放行 45 秒, 支干道每

6、次放行25 秒, 且在每次由绿灯亮到红灯亮的转换过程中,要亮 5 秒黄灯作为过渡。变化规律为:东西绿灯亮,南北红灯亮 -东西黄灯亮,南北红灯亮-东西红灯亮、南 北绿灯亮东西红灯亮,南北黄灯亮 东西绿灯亮,南北红灯亮.,这样依次循环。由于主、 支干道有45 秒和 25 秒得放行时间,以及每次由绿灯亮到红灯亮的转换过程中,要亮 5 秒黄灯作为过渡,所以设计45 秒、 25 秒和 5 秒计时电路,均采用倒计时。考虑到显示的方便, 每个计时电路又由计数器和码型转换电路组成。码型转换电路是把对应的二进制码直接转换成数码管显示时的码字,采用数码管的静态显示,这样可简化模块设计。设计原理图四、设计内容:1、

7、计时电路由于45秒、25秒和5秒计时电路设计原理一致,仅介绍 45秒计时电路45秒计时电路内部结构图仅供个人参考上图为45秒计时电路内部结构图,很显然是由45进制计数器和码型转换电路组成。选才¥ 1HZ 时钟脉冲作为系统时钟,可实现45s计时。计数输出经码型转换电路后分成十位和个位,送至数 码管显示。2、主控电路主控电路是一个单进程 Moore型有限状态机,其状态转换图如下:每种状态说明如下表:原状态目的状态转换条件状态输出s0s0s=TIedsn<="100001”;c45<='1'c25<='0'c545<=

8、9;0'c525<='0's1s=T且 s45='1's1s1s545='0'Iedsn<="010001”;c45<='0'c25<='0'c545<='1'c525<='0's2s545=Ts2s2s25='0'Iedsn<="001100”;c45<='0'c25<='1'c545<='0'c525<='0'

9、;s3s25='1's3s3s525= 0'ledsn<="001010”;c45<='0'c25<='0'c545<='0'c525<='T;s0s525=T主控电路通过接收计时器发送的 “时间到”信号以及根据s的值进行状态的切换,实现对十字路口东西、南北两个方向的红、黄、绿灯状态的控制和对各个计时器的控制 五、仿真结果:关于仿真结果的说明:1、设计时把东西、南北两个方向的红、黄、绿灯合并成六位宽度的ledsn,四种状态一次对应十进制的33、17、12、10;2、由于计数输

10、出经码型转换电路后分成十位和个位为数码管显示的码型,所以会出现无规 律的十进制数。Q曰 T me BatA第If me乳9tJCLK七1iriBSTtf-e5固 ItdncM10STE可用:却将国赵j啊.6JI科42田乩350S y_s<iutlis='0',支干道有车来,即主、支干道均有车,两者交替允许通行s=T,支干道没有车来,主干道处于常允许通行的状态六、总结:本设计是综合应用状态机的设计性实验,读懂设计目标后,认真分析主干道和乡道的状态转 移同样也十分重要。实践中总结出,先画出状态转换图对状态机的设计有着巨大的帮助作用。仿真后发现设计方案可行,满足设计目标。通过这

11、次设计实验,使我加深对状态机的理解和应用, 熟悉EDA设计软件QuartusII,加强独立完成电子设计的能力。七、附录1、码型转换t2bcd.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity t2bcd isport(bins:in std_logic_vector(5 downto 0);H,L:out std_logic_vector(6 downto 0);end;architecture behav of t2bcd isbeginprocess(bins)beginwh

12、en "000001"=>H<="0111111"L<="0000110"case bins iswhen "000000"=>H<="0111111"L<="0111111”;when "000010"=>H<="0111111 "L<="1011011" when "000011 "=>H<="0111111 "L&l

13、t;="1001111 when "000100"=>H<="0111111 "L<="1100110" when "000101 "=>H<="0111111 "L<="1101101 when "000110"=>H<="0111111 "L<="1111101" when "000111 "=>H<="0111111

14、 "L<="0000111 when "001000"=>H<="0111111 "L<="1111111" when "001001 "=>H<="0111111 "L<="1101111" when "001010"=>H<="0000110"L<="0111111" when "001011 "=>H<

15、;="0000110"L<="0000110" when "001100"=>H<="0000110"L<="1011011" when "001101 "=>H<="0000110"L<="1001111 when "001110"=>H<="0000110"L<="1100110" when "001111 &qu

16、ot;=>H<="0000110"L<="1101101 when "010000"=>H<="0000110"L<="1111101" when "010001 "=>H<="0000110"L<="0000111 when "010010"=>H<="0000110"L<="1111111" when "0100

17、11 "=>H<="0000110"L<="1101111" when "010100"=>H<="1011011 "L<="0111111" when "010101 "=>H<="1011011 "L<="0000110" when "010110"=>H<="1011011 "L<="1011011&

18、quot; when "010111 "=>H<="1011011 "L<="1001111"end case;end process;end behav;when "011000"=>H<="1011011 "L<="1100110"when "011001 "=>H<="1011011 "L<="1101101"when "011010"=

19、>H<="1011011 "L<="1111101"when "011011 "=>H<="1011011 "L<="0000111when "011100"=>H<="1011011 "L<="1111111"when "011101 "=>H<="1011011 "L<="1101111"when "0

20、11110"=>H<="1001111 "L<="0111111"when "011111 "=>H<="1001111 "L<="0000110"when "100000"=>H<="1001111 "L<="1011011"when "100001 "=>H<="1001111 "L<="1001111

21、when "100010"=>H<="1001111 "L<="1100110"when "100011 "=>H<="1001111 "L<="1101101"when "100100"=>H<="1001111 "L<="1111101"when "100101 "=>H<="1001111 "L<=&

22、quot;0000111when "100110"=>H<="1001111 "L<="1111111"when "100111 "=>H<="1001111 "L<="1101111"when "101000"=>H<="1100110"L<="0111111"when "101001 "=>H<="1100110&qu

23、ot;L<="0000110"when "101010"=>H<="1100110"L<="1011011"when "101011 "=>H<="1100110"L<="1001111when "101100"=>H<="1100110"L<="1100110"when others=>null;2、45进制计数器cnt45.vhdFor

24、personal use only in study and research; not for commercial uselibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;For personal use only in study and research; not for commercial useentity cnt45 isport(CLK,RST,EN:in stdjogic;CQ:out std_logic_vector(5 downto 0);cout:out stdjogic)

25、;end;architecture behav of cnt45 isbeginprocess(CLK,RST,EN)variable CQI:std_logic_vector(5 downto 0);beginif CLK'event and CLK='r thenif RST='1' then CQI:="101100"elsif EN='1' thenif CQI>0 then CQI:=CQI-1 ;cout<='0'else CQI:="101100"cout<=

26、'1end if;end if;end if;CQ<=CQI;end process;end behav;不得用于商业用途仅供个人参考3、主控电路ctrl.vhd :library ieee;use ieee.std_logic_1164.all;entity ctrl isport(CLK,RST,s,s45,s25,s545,s525:in std_logic;c45,c25,c545,c525:out std_logic;ledsn:out std_logic_vector(5 downto 0);end ctrl;architecture body_ctrl of ctr

27、l istype sx is(s0,s1,s2,s3);signal current_state:sx;beginprocess(RST,CLK)beginif RST='1' then current_state<=s0;ledsn<="100001"c45<='1'c25<='0'c545<='0'c525<='0' elsif CLK'event and CLK='1' thencase current_state iswhen

28、s0=>if s='1' then current_state<=s0;elsif s45='1' then current_state<=s1;else current_state<=s0;end if;ledsn<="100001"c45<='1'c25<='0'c545<='0'c525<='0'when s1=>if s545='1' then current_state<=s2;else current_state<=s1;end if;ledsn<="010001"c45<=&

温馨提示

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

评论

0/150

提交评论