您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 交通灯控制器课程设计
4目录一课题介绍1.1概述1.2课题要求二设计原理与分析2.1.1红黄绿灯之间状态变换2.1.2计时设置2.1.3紧急情况2.2总体框图2.3分块设计三、原理图四、程序代码4.1M分频器4.2数码管译码器4.3交通灯控制器4.4计时器五、仿真结果及实验分析六、总结5一、课题介绍1.1概述在十字路口,每条道路各有一组红、黄、绿灯和倒计时显示器,用以指挥车辆和行人有序地通行。其中,红灯(R)亮,表示该条道路禁止通行;黄灯(Y)亮,表示停车;绿灯(G)亮,表示可以通行。倒计时显示器是用来显示允许通行和禁止通行地时间。交通灯控制器就是用来自动控制十字路口的交通灯和计时器,指挥各种车辆和行人安全通行。1.2课题要求设计一个十字交叉路口的交通灯控制器,具体要求如下:(1)每条道路设一组信号灯,每组信号灯由红、黄、绿3盏灯组成,绿灯表示允许通行,红灯表示禁止通行,黄灯表示该车道上已过停车线德车辆继续通行,未过停车线的车辆停止通行。(2)设置一组数码管,以倒计时的方式显示允许通行或禁止通行的时间,其中绿灯、黄灯、红灯的持续时间分别是20s、5s和25s。(3)当各条路上任意一条上出现特殊情况时,如当消防车、救护车或其他需要优先放行的车辆通过时,各方向上均是红灯亮,倒计时停止,且显示数字在闪烁。当特殊运行状态结束后,控制器恢复原来状态,继续正常运行。二、设计原理与分析2.1交通灯用以指挥车辆和行人有序地通行,在功能上要实现红黄绿灯之间状态变换、计时设置和紧急情况三大功能。2.1.1红黄绿灯之间状态变换对于十字路口两个方向上的交通灯,要保证一条道路通行另一条禁止,同时还要考虑黄灯到红灯的变换,因此一共有四个状态,即南北红东西绿、南北红东西黄、南北绿东西红、南北黄东西红。2.1.2计时设置根据要求,绿灯、黄灯、红灯的持续时间分别是20s、5s和25s。2.1.3紧急情况当各条路上任意一条上出现特殊情况时,各方向上均是红灯亮,倒计时停止,且显示数字在闪烁。2.2总体框图2.2.1模块示意图6图12.3分块设计要实现交通灯的控制需要5个功能模块,分别为4M分频器,数码管译码器,交通灯控制器以及计时器。2.3.14M分频器由于引脚选用4M时钟,而计时单位为秒,需要对时钟信号进行4M分频处理,编译后生成4M分频器如下图:图24M分频器2.3.2数码管译码器输出时间为16进制数,要在数码管上显示需设计数码管译码器对其进行译码,编译后生成数码管译码器如下图:7图3数码管译码器2.3.3交通灯控制器为完成四个状态之间的循环,需交通灯控制器通过时钟信号的变化来完成状态循环的功能,编译后生成交通灯控制器如下图:图4交通灯控制器2.3.4计时器计时器不仅要完成倒计时功能,还要随状态的变化而改变其倒计时时间,编译后生成计时器如下图:图5计时器三、原理图、代码书写1、交通灯控制的原理图8各个模块代码书写4.1M分频器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;--运算符重载ENTITYcnt4MISPORT(ena,clr,d_ctr,clk:INSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(3DOWNTO0);co:outstd_logic);ENDENTITYcnt4M;ARCHITECTUREbhvOFcnt4MISSIGNALq1:STD_LOGIC_VECTOR(3DOWNTO0);BEGINq=q1;PROCESS(clk,clr,ena,d_ctr)BEGINIFclr='0'THENq1=(others='0');ELSIFclk'EVENTANDclk='1'THENIFena='1'THENIFd_ctr='1'THENIFq1=1111THENq1=(others='0');ELSEq1=q1+'1';ENDIF;ELSIFq1=0000THEN9q1=(others='1');ELSEq1=q1-'1';ENDIF;ENDIF;ENDIF;ENDPROCESS;PROCESS(q1)BEGINIFq1=1111THENco='1';ELSEco='0';ENDIF;ENDPROCESS;ENDARCHITECTUREbhv;4.2数码管译码器libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityexp4isport(clk:instd_logic;A,B:instd_logic_vector(7downto0);ledag:outstd_logic_vector(6downto0);sel:outstd_logic_vector(7downto0));end;architecturebhofexp4issignaldel:std_logic_vector(1downto0);signalkey:std_logic_vector(3downto0);beginprocess(clk)variabledount:std_logic_vector(1downto0);beginifclk'eventandclk='1'thendount:=dount+1;endif;del=dount;endprocess;process(key)begincasekeyis10when0000=ledag=1111110;when0001=ledag=0110000;when0010=ledag=1101101;when0011=ledag=1111001;when0100=ledag=0110011;when0101=ledag=1011011;when0110=ledag=1011111;when0111=ledag=1110000;when1000=ledag=1111111;when1001=ledag=1111011;whenothers=null;endcase;endprocess;process(del)begincasedeliswhen11=sel=10000000;key=A(7downto4);when10=sel=01000000;key=A(3downto0);when00=sel=00010000;key=b(3downto0);endcase;endprocess;endbh;4.3交通灯控制器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYjtdISPORT(clk,emg:INSTD_LOGIC;--输入时钟,复位,状态COUNT1,COUNT2:INSTD_LOGIC_VECTOR(7DOWNTO0);--计时器MG,MY,MR,CG,CY,CR:OUTSTD_LOGIC);--输出信号,控制各种灯ENDjtd;ARCHITECTUREbehavOFjtdISTYPEjtdSTATEIS(mrcg,mrcy,mgcr,mycr);SIGNALSTATE:jtdSTATE;BEGINPROCESS(STATE,clk,emg)--RESET,,SBEGIN--IFRESET='1'THENSTATE=mgcr;MG='1';CR='1';MY='0';MR='0';CG='0';CY='0';--ELSIFclk'EVENTANDclk='1'thenIFemg='1'THENMY='0';CR='1';MG='0';MR='1';CG='0';CY='0';11ENDIF;IFemg='0'THENCASESTATEISWHENmrcg=IFCOUNT1=00000110ANDCOUNT2=00000001THENSTATE=mrcy;MY='0';CR='0';MG='0';MR='1';CG='0';CY='1';ELSESTATE=mrcg;MG='0';CR='0';MY='0';MR='1';CG='1';CY='0';ENDIF;WHENmrcy=IFCOUNT1=00000001ANDCOUNT2=00000001THENSTATE=mgcr;MR='0';CG='0';MG='1';MY='0';CR='1';CY='0';ELSESTATE=mrcy;MY='0';CR='0';MG='0';MR='1';CG='0';CY='1';ENDIF;WHENmgcr=IFCOUNT2=00000110ANDCOUNT1=00000001THENSTATE=mycr;MR='0';CY='0';MY='1';MG='0';CR='1';CG='0';ELSESTATE=mgcr;MR='0';CG='0';MG='1';MY='0';CR='1';CY='0';ENDIF;WHENmycr=IFCOUNT1=00000001ANDCOUNT2=00000001THENSTATE=mrcg;MG='0';CR='0';MR='1';MY='0';CY='0';CG='1';ELSESTATE=mycr;MR='0';CY='0';MY='1';MG='0';CR='1';CG='0';ENDIF;ENDCASE;ENDIF;ENDIF;ENDPROCESS;ENDbehav;4.4计时器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYJISHUISPORT(clk,RESET,emg:INSTD_LOGIC;tim1,tim2:OUTSTD_LOGIC_VECTOR(7DOWNTO0));12ENDJISHU;ARCHITECTUREbehavOFJISHUISTYPERGYIS(mrcg,mrcy,mgcr,mycr);SIGNALSTATE:RGY;BEGINPROCESS(clk,RESET,emg)--,RESETVARIABLEa1:STD_LOGIC:='0';VARIABLEa2:STD_LOGIC:='0';VARIABLEa3:STD_LOGIC:='0';VARIABLEa4:STD_LOGIC:='0';VARIABLEb:STD_LOGIC:='0';VARIABLEtimmh:STD_LOGIC_VECTOR(3DOWNTO0);VARIABLEtimml:STD_LOGIC_VECTOR(3DOWNTO0);VARIABLEtimch:STD_LOGIC_VECTOR(3DOWNTO0);VARIABLEtimcl:STD_LOGIC_VECTOR(3DOWNTO0);VARIABLEmth,mtl,cth,ctl:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFclk'EVENTANDclk='1'THENIFRESET='1'THENSTATE=mrcg;a1:='1';ENDIF;IFRESET='0'ANDemg='1'THENIFb='0'THENb:='1';mth:=0000;mtl:=0000;cth:=0000;ctl:=0000;elseb:='0';mth:=timmh;mtl:=timml;cth:=timch;ctl:=timcl;ENDIF;ENDIF;IFemg='0'THENmth:=timmh;mtl:=timml;cth:=timch;ctl:=timcl;CASESTATEISWHENmrcg=--IFS='1'ANDb=
本文标题:交通灯控制器课程设计
链接地址:https://www.777doc.com/doc-2622685 .html