安康学院基于VHDL的交通灯设计班级:电本三班姓名:李大良邓佳吕旭州指导教师姓名:王庆春摘要:伴随着社会的发展以及人类生活水平的提高,汽车的数量在不断增加,交通事业得以蓬勃发展,而随之引起的安全问题已经不容忽视。EDA技术的发展和应用领域也在不断的扩大与深入,机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域的重要性日益突出。为了确保十字路口的行人和车辆顺利,畅通的通过,往往采用电子控制的交通信号来进行指挥。利用EDA技术设计交通灯来完成这个需求就显的更加迫切,同样也是非常的实用和合理。关键字:VHDL语言、交通灯、QuartusⅡ软件、Abstract:Withthedevelopmentofsocietyandtheimprovementofpeople'soflivingstandard,thenumberofcarsisincreasing.AlongwiththedevelopmentofEDAtechnologyandit'sexpansioninapplicationfields,theEDAtechnologyinelectronicinformation,communication,automaticcontrol,computerapplicationandotherfieldsisofgrowingimportance.Withtheeverincreasingnumberofcars,trafficproblemshavebecomeincreasinglyprominent,whichleadstoitnottobefeasibleonlyrelyonmanpowertodirecttraffic.Therefore,thedesignoftrafficlightstocompletethisdemandwasofgreaturgent.Inordertoensurethecrossroadsofpedestrianandvehicletrafficpassthroughsmoothly,weoftenuseelectronicallycontrolledtrafficsignaltocommandthetraffic.Thefollowingistheuseofdigitalelectronicdesignofthetrafficlights.Keywords:VHDLlanguage,trafficlights,QuartusⅡsoftware,正文:一、系统分析与设计思路1系统分析本次的设计的电路将主要会采用时序电路来实现,主要因为其实时性容易得到保证,而难点在于控制逻辑和如何保证主干道信号灯与支路信号灯的同步。2设计思路本次中的交通灯将要求主干道绿灯至少保持2分钟(其中不包括绿灯闪的时间),在此前提下,当支路检查到有车或者有人时,主干道绿灯闪3秒,然后黄灯继续亮3秒,红灯再亮,同时支路绿灯亮,红灯灭。当支路连续5秒检测不到车或者人时,支路绿灯闪3秒,然后黄灯连续亮3秒,红灯再亮。同时主干道绿灯亮,红灯灭,支路绿灯最长持续20秒(其中不包括绿灯闪的时间)。若从绿灯闪开始车和行人即禁止通行,则可保证主干道禁止通行的时间最多为26秒。支路可通过仪器来监测有无车辆和行人,对于行人,由于其不定性,需要多设置一些监测仪器来监测,如果行人想通过,需要站在其中的一个监测仪器下,当任一仪器监测到有车辆或者行人要横穿主干道时,便使输出呈现高电平,否则呈现低电平。由于主干道禁止通行的时间至多为26秒,因此无须检测有无车辆和行人。3需要注意的问题有:1)主干道绿灯至少要亮2分钟2)支路绿灯最长持续20秒3)支路需要仪器来检测有无车辆和行人,由于主干道禁止通行26秒所以无需检测仪器。由于主干道和支路的灯显示都需要显示确定的时间,为了交通灯行人和车辆的安全以及更好的指挥交通灯的运作,需要对各种灯的时间进行显示。4)设计特点:本设计以考虑主干道为主,避免了各车道不均衡所造成的十字路口交通资源的浪费,大幅度的提高十字路口的车辆通行效率。4三种灯转换状态表:时间|S1203320533数码管主120s主3s主3s支20s等待支3s支3s主红0001110主绿1100001主黄0010000支红1110000支绿0001110支黄0000001分析如下:1)当支路检测到有人或者车辆的时候,那么主干道的变化为绿灯至少亮2分钟=绿灯闪烁3秒=黄灯亮3秒=红灯亮,而支路的变化为红灯亮=绿灯亮。2)当支路连续5秒没有检测到行人或者车辆的时候,那么支路变化为绿灯=绿灯闪烁3秒=黄灯亮3秒=红灯,而主干道变化则为红灯=绿灯。并且需要注意的情况就是支路绿灯最长持续20秒。3)当主干道绿灯亮了2分钟之后,如果支路上仍让没有检测到人或者车辆。那么主干道就一直保持在绿灯的状态,支路一直保持在红灯的状态。5设计方案主干道绿灯亮至少120秒,支路红灯亮。(主干道数码管亮120s倒计时)亮120s后否主干道绿灯亮,红灯亮。3s判断支路是否有车辆或者行人主干道数码管显示为0。一直检测等待有车或人。后是主干道绿灯闪3秒,同时主干道红灯亮。主干道数码管显示3秒。支路黄灯闪3秒。支路红灯亮。支路数码管显示3s3s3s之之后后主干道黄灯闪3秒,主干道红灯亮。主干道数码管显示3秒。支路绿灯闪3秒。支路红灯亮。否支路数码管显示3s3s后主干道红灯亮。20s后支路绿灯亮20秒。检测支路连续5秒内是.是否有人或车二、系统电路的设计1分频模块的设计该模块是用两个分频器模块是分别产生1hz和4hz时钟,1hz时钟是用于控制状态机部分的,4hz时钟是用于控制灯的闪烁。500MHz时钟分频器1Hz时钟LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYfeng_500MHZTO_1HZISPORT(clkin:INSTD_LOGIC;--50Mhz时钟源clkout:OUTSTD_LOGIC—1hz时钟源);ENDfeng_500MHZTO_1HZ;ARCHITECTUREtop1OFfeng_500MHZTO_1HZISSIGNALfenpcontent:INTEGERRANGE0TO50000000;BEGINPROCESS(clkin)BEGINIFclkin'EVENTANDclkin='1'THEN—每当上升沿的时候IFfenpcontent=50000000THEN—每50000000的上升沿进行拉高fenpcontent=0;clkout='1';ELSEenpcontent=fenpcontent+1;clkout='0';ENDIF;ENDIF;ENDPROCESS;ENDtop1;2数字模块的设计该模块是整个数字交通灯的控制轴心。它控制交通灯中三种灯的转态转换以及显示和灯显示的控制。状态转换电路状态控制输出电路复位时钟支路检测端口主干道绿灯亮使能输出主干道绿灯闪烁使能输出主干道黄灯亮使能输出主干道红灯亮使能输出支路绿灯亮使能输出支路绿灯闪烁使能输出支路黄灯使能输出支路红灯使能输出State3数码管的显示该模块就是数码管显示电路,将其分为主干道数码管显示电路以及支路数码管显示电路。显示电路的目的是用于显示主干道或者支路灯亮的时间或者闪烁的时间。1)支路数码管的框架:支路数码管显示数值10进制转4位BCD码电路7段译码器7段译码器支路数码管显示整形输入高位四位BCD低位四位BCDHEX7[6..0]HEX6[6..0]2)主干道数码管的框架:其实主干道和支路的数码管显示电路的设计原理是一样的,只是主干道是三位数值显示,而支路是两位数值显示。主干道数码管显示数值10进制转4位BCD码电路7段译码器7段译码器主干道数码管显示整形输入中间四位BCD低位四位BCDHEX1[6..0]HEX0[6..0]7段译码器HEX2[6..0]最高位四位BCD4整体控制的显示该模块电路是用于控制主干道和支路的灯亮或者闪烁。其系统框架为:CLK交通灯系统控制扫描显示模块和数码管显示LED显示示灯控制实体电路为:灯控制电路主干道绿灯亮使能信号主干道绿灯闪烁使能信号主干道黄灯亮使能信号主干道红灯亮使能信号支路绿灯闪烁使能信号支路黄灯亮使能信号支路红灯亮使能信号支路绿灯亮使能信号主干道绿灯控制信号主干道黄灯控制信号主干道红灯控制信号支路绿灯控制信号支路黄灯控制信号支路红灯控制信号4hz时钟三程序仿真与分析利用QuartusII软件对本程序进行编译,其仿真波形如下:仿真结果如图:最后两个一个是时钟信号,一个是复位信号,我将复位信号都变为无效,给了一个时钟给它,仿真结果如图。第一个是主干道数码管显示数值为120s接着是显示119s。下面这个图式闪烁。支路从3到0又从3到0,因为绿灯闪烁要倒计时,黄灯闪烁也要倒计时四实验总结通过本次的设计,实现了一个简单的交通灯信号的控制和转换,让我们可以加深了认识对时序电路的控制逻辑的设计思路,为以后更加复杂,实际的交通灯的设计打下了坚实的基础,同时掌握了该设计的要领。这次的设计,不仅让我了解怎么去设计程序,更重要的还让我学会了怎么样和别人合作。这对我而言,不仅是知识上的收获,更是精神上的丰收。同时让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!参考文献[1]阎石主编,《数字电子技术基础》,高等教育出版社,1998[2]谭会生等主编,《EDA技术及应用》,西安电子科技大学出版社,2001[3]廖裕评等主编,《CPLD数字电路设计——使用MAX+plusⅡ入门篇》,清华大学出版社,2001[4]冯涛等主编,《可编程逻辑器件开发技术:MAX+plusⅡ入门与提高》,人民邮电出版社,2002[5]杨崇志,《特殊新型电子元件手册》,辽宁科学技术出版社,1999[6]彭介华,《电子技术课程设计指导》高等教育出版社.2000年出版.[7]MarkZwolinski,DigitalSystemDesignwithVHDL,电子工业出版社,2002[8]AlanB.MarcovitzIntroductiontologicDesign,电子工业出版社,2002程序清单LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDigitTraficControllerISPORT(CLOCK_50:INSTD_LOGIC;SW:INSTD_LOGIC_VECTOR(1DOWNTO0);--SW(0),SW(1),分别表示复位和支路是否有行人LEDR:OUTSTD_LOGIC_VECTOR(5DOWNTO0);--LEDR(0),LEDR(1),LEDR(2),分别表示主干道绿,黄,红--LEDR(3),LEDR(4),LEDR(5),分别表示支路绿,黄,红HEX0,HEX1,HEX2,HEX6,HEX7:OUTSTD_LOGIC_VECTOR(6DOWNTO0)--HEX0,HEX1,HEX2显示主干道--HEX6,HEX7显示支路);ENDDigitTraficController;ARCHITECTURETOPOFDigitTraficControllerISCOMPONENTfeng_500MHZTO_1HZ--500Mhz转1hz的电路PORT(clkin:INSTD_LOGIC;clkout:OUTSTD_LOGIC);ENDCOMPONENT;COMPONENTfeng_500MHZTO_4HZIS--500Mhz转4hz的电路PORT(clkin:INSTD_LOGIC;clkout:OUTSTD_LOGIC);ENDCOMPONENT;COMPONENTStateControllerIS--状态机控制输出电路PORT(clk:INSTD_LOGIC;--1hz时钟输入reset:INSTD