您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 交通灯控制器VHDL设计
EDA课程设计题目:交通灯控制器VHDL设计专业:通信工程班级:通信082姓名:XXX学号:XXXXXXXX设计要求乐曲硬件演奏电路的VHDL设计要求:1、设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。2、红、绿、黄发光二极管作信号灯,。3、主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。4、主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。5、在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。教学提示:1、选择1HZ时钟脉冲作为系统时钟。2、45秒、25秒、5秒定时信号可用顺计时,也可用倒计时,计时起始信号由主控电路给出,每当计满所需时间,即向主控电路输出“时间到”信号,并使计数器清零,由主控电路启、闭三色信号灯或启动另一计时电路。显示结果:设计一个十字路口的交通灯控制器,能显示十字路口东西、南北两个方向的红、黄、绿灯的指示状态。用两组红、黄、绿三种颜色的灯分别作为东西、南北两个方向的红、黄、绿灯,变化规律为:东西绿灯亮,南北红灯亮→东西黄灯亮,南北红灯亮→东西红灯亮、南北绿灯亮→东西红灯亮,南北黄灯亮→东西绿灯亮,南北红灯亮….,这样依次循环。南北方向是主干道车道,东西方向是支干道车道,要求两条交叉道路上的车辆交替运行,主干道每次通行时间都设为45秒,支干道每次通行时间都设为25秒,时间可设置修改。在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道。要求交通灯控制器有复位功能,在复位信号使能的情况下能够实现交通灯的自动复位,并且要求所有交通灯的状态变化,包括复位信号引起的均发生时钟脉冲的上升沿处。设计方案:可选原理图输入法或VHDL语言,也可以两种方式结合使用。设计报告一、设计题目:交通灯控制器VHDL设计二、设计目标:1、设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。2、红、绿、黄发光二极管作信号灯,。3、主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。4、主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。5、在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。三、设计原理:设计框图如下页图所示,该交通信号灯控制器由主控电路和计时电路两大部分组成。主控电路45s计时5s计时25s计时5s计时支干道是否有车来控制信号s时钟、复位信号主、支干道绿、黄红灯输出控制信号计时LED显示输出信号“计时到”信号各计时模块使能信号主控电路是一个单进程Moore型有限状态机,通过接收定时器发送的“时间到”信号以及根据s(用来指示支干道是否有车来,‘1’表示支干道没有车来,‘0’支干道有车来)的值进行状态的切换,实现对十字路口东西、南北两个方向的红、黄、绿灯状态的控制。具体控制过程为:当s=‘1’时,支干道没有车来,主干道处于常允许通行的状态,此时主干道亮绿灯,支干道亮红灯;当s=‘0’时,支干道有车来,即主、支干道均有车,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,且在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡。变化规律为:东西绿灯亮,南北红灯亮→东西黄灯亮,南北红灯亮→东西红灯亮、南北绿灯亮→东西红灯亮,南北黄灯亮→东西绿灯亮,南北红灯亮….,这样依次循环。由于主、支干道有45秒和25秒得放行时间,以及每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,所以设计45秒、25秒和5秒计时电路,均采用倒计时。考虑到显示的方便,每个计时电路又由计数器和码型转换电路组成。码型转换电路是把对应的二进制码直接转换成数码管显示时的码字,采用数码管的静态显示,这样可简化模块设计。VCCCLKINPUTVCCRSTINPUTVCCsINPUTledmc[5..0]OUTPUTy_south[6..0]OUTPUTy_east[6..0]OUTPUTgH_east[6..0]OUTPUTgL_east[6..0]OUTPUTgH_south[6..0]OUTPUTgL_south[6..0]OUTPUTCLKRSTss45s25s545s525c45c25c545c525ledsn[5..0]ctrlinst1CLKRSTENH[6..0]L[6..0]s45cnt45dinstCLKRSTENcq[6..0]s5cnt5dinst2CLKRSTENcq[6..0]s5cnt5dinst3CLKRSTENH[6..0]L[6..0]s25cnt25dinst4设计原理图四、设计内容:1、计时电路由于45秒、25秒和5秒计时电路设计原理一致,仅介绍45秒计时电路。VCCCLKINPUTVCCRSTINPUTVCCENINPUTs45OUTPUTH[6..0]OUTPUTL[6..0]OUTPUTCLKRSTENCQ[5..0]coutcnt45instbins[5..0]H[6..0]L[6..0]t2bcdinst145秒计时电路内部结构图上图为45秒计时电路内部结构图,很显然是由45进制计数器和码型转换电路组成。选择1HZ时钟脉冲作为系统时钟,可实现45s计时。计数输出经码型转换电路后分成十位和个位,送至数码管显示。2、主控电路主控电路是一个单进程Moore型有限状态机,其状态转换图如下:s0s1s2s3RST每种状态说明如下表:原状态目的状态转换条件状态输出s0s0s=’1’ledsn=100001;c45='1';c25='0';c545='0';c525='0';s1s=’1’且s45=’1’s1s1s545=’0’ledsn=010001;c45='0';c25='0';c545='1';c525='0';s2s545=’1’s2s2s25=’0’ledsn=001100;c45='0';c25='1';c545='0';c525='0';s3s25=’1’s3s3s525=’0’ledsn=001010;c45='0';c25='0';c545='0';c525='1';s0s525=’1’主控电路通过接收计时器发送的“时间到”信号以及根据s的值进行状态的切换,实现对十字路口东西、南北两个方向的红、黄、绿灯状态的控制和对各个计时器的控制。五、仿真结果:关于仿真结果的说明:1、设计时把东西、南北两个方向的红、黄、绿灯合并成六位宽度的ledsn,四种状态一次对应十进制的33、17、12、10;2、由于计数输出经码型转换电路后分成十位和个位为数码管显示的码型,所以会出现无规律的十进制数。s=’0’,支干道有车来,即主、支干道均有车,两者交替允许通行s=’1’,支干道没有车来,主干道处于常允许通行的状态六、总结:本设计是综合应用状态机的设计性实验,读懂设计目标后,认真分析主干道和乡道的状态转移同样也十分重要。实践中总结出,先画出状态转换图对状态机的设计有着巨大的帮助作用。仿真后发现设计方案可行,满足设计目标。通过这次设计实验,使我加深对状态机的理解和应用,熟悉EDA设计软件QuartusII,加强独立完成电子设计的能力。七、附录1、码型转换t2bcd.vhdlibraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityt2bcdisport(bins:instd_logic_vector(5downto0);H,L:outstd_logic_vector(6downto0));end;architecturebehavoft2bcdisbeginprocess(bins)begincasebinsiswhen000000=H=0111111;L=0111111;when000001=H=0111111;L=0000110;when000010=H=0111111;L=1011011;when000011=H=0111111;L=1001111;when000100=H=0111111;L=1100110;when000101=H=0111111;L=1101101;when000110=H=0111111;L=1111101;when000111=H=0111111;L=0000111;when001000=H=0111111;L=1111111;when001001=H=0111111;L=1101111;when001010=H=0000110;L=0111111;when001011=H=0000110;L=0000110;when001100=H=0000110;L=1011011;when001101=H=0000110;L=1001111;when001110=H=0000110;L=1100110;when001111=H=0000110;L=1101101;when010000=H=0000110;L=1111101;when010001=H=0000110;L=0000111;when010010=H=0000110;L=1111111;when010011=H=0000110;L=1101111;when010100=H=1011011;L=0111111;when010101=H=1011011;L=0000110;when010110=H=1011011;L=1011011;when010111=H=1011011;L=1001111;when011000=H=1011011;L=1100110;when011001=H=1011011;L=1101101;when011010=H=1011011;L=1111101;when011011=H=1011011;L=0000111;when011100=H=1011011;L=1111111;when011101=H=1011011;L=1101111;when011110=H=1001111;L=0111111;when011111=H=1001111;L=0000110;when100000=H=1001111;L=1011011;when100001=H=1001111;L=1001111;when100010=H=1001111;L=1100110;when100011=H=1001111;L=1101101;when100100=H=1001111;L=1111101;when100101=H=1001111;L=0000111;when100110=H=1001111;L=1111111;when100111=H=1001111;L=1101111;when101000=H=1100110;L=0111111;when101001=H=1100110;L=0000110;when101010=H=1100110;L=1011011;when101011=H=1100110;L=1001111;when101100=H=1100110;L=1100110;whenothers=
本文标题:交通灯控制器VHDL设计
链接地址:https://www.777doc.com/doc-6153290 .html