欢迎来到天天文库
浏览记录
ID:10359324
大小:108.87 KB
页数:8页
时间:2018-07-06
《eda实验报告实验五:交通灯控制器设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验五十字路口交通灯控制器设计一.实验目的1.进一步加强经典状态机的设计2.学会设计模可变倒计时计数器二.实验要求一条主干道,一条乡间公路。组成十字路口,要求优先保证主干道通行。有MR(主红)、MY(主黄)、MG(主绿)、CR(乡红)、CY(乡黄)、CG(乡绿)六盏交通灯需要控制;交通灯由绿→红有4秒黄灯亮的间隔时间,由红→绿没有间隔时间;系统有MRCY、MRCG、MYCR、MGCR四个状态;乡间公路右侧各埋有一个传感器,当有车辆通过乡间公路时,发出请求信号S=1,其余时间S=0;平时系统停留在MGCR(主干道通行)状态,一旦
2、S信号有效,经MYCR(黄灯状态)转入MRCG(乡间公路通行)状态,但要保证MGCR的状态不得短于一分钟;一旦S信号无效,系统脱离MRCG状态。随即经MRCY(黄灯状态)进入MGCR状态,即使S信号一直有效,MRCG状态也不得长于20秒钟。三.实验设计:1.一条主道,一条乡道,组成十字路口,要求优先保证主道通行。2.当主道没有车通行,且乡道友车要通行时,并且此时主道通行时间大于1分钟,则主道变黄灯,乡道保持红灯,经过4秒倒计时时间进入主道为红灯乡道为绿灯的状态。再倒计时20秒钟。在倒计时过程中,若乡道突然没有车通行,马上进入主
3、道红灯,乡道黄灯状态,倒计时4秒。3.之后主道变为绿灯,乡道为红灯,这时无论乡道有无车通行都要倒计时60秒,然后若乡道有车通行则主道为黄灯,乡道为红灯,若乡道一直没有车要通行则保持主道通行,若乡道友车通行则按照上面的状态依次进行转换。按照以上的思路,设计两个底层文件和一个顶层文件:1.模块1是状态改变控制6盏灯的亮与灭。1.模块2是控制数码管显示倒计时数并且输出作为模块1的输入控制状态改变3.将两个模块连接成顶层文件,即可完成设计。四.实验步骤1.分别将两个模块的代码输入,两个模块的代码如下:1)控制6盏灯的模块代码LIBRA
4、RYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYjtdISPORT(clk,RESET,S:INSTD_LOGIC;COUNT:INSTD_LOGIC_VECTOR(7DOWNTO0);MG,MY,MR,CG,CY,CR:OUTSTD_LOGIC);ENDjtd;ARCHITECTUREbehavOFjtdISTYPEjtdSTATEIS(mgcr,mycr,mrcg,mrcy);SIGNALSTATE:jtdSTATE;BEGINP
5、ROCESS(RESET,STATE,clk,S)BEGINIFRESET='1'THENSTATE<=mgcr;MG<='1';CR<='1';MY<='0';MR<='0';CG<='0';CY<='0';ELSIFclk'EVENTANDclk='1'thenCASESTATEISWHENmgcr=>IFCOUNT="00000000"ANDS='1'THENSTATE<=mycr;MY<='1';CR<='1';MG<='0';MR<='0';CG<='0';CY<='0';ELSESTATE<=mgcr;MG<='1
6、';CR<='1';MY<='0';MR<='0';CG<='0';CY<='0';ENDIF;WHENmycr=>IFCOUNT="00000000"THENSTATE<=mrcg;MR<='1';CG<='1';MG<='0';MY<='0';CR<='0';CY<='0';ELSESTATE<=mycr;MY<='1';CR<='1';MG<='0';MR<='0';CG<='0';CY<='0';ENDIF;WHENmrcg=>IFCOUNT="00000000"ORS='0'THENSTATE<=mrcy;MR<='
7、1';CY<='1';MY<='0';MG<='0';CR<='0';CG<='0';ELSESTATE<=mrcg;MR<='1';CG<='1';MG<='0';MY<='0';CR<='0';CY<='0';ENDIF;WHENmrcy=>IFCOUNT="00000000"THENSTATE<=mgcr;MG<='1';CR<='1';MR<='0';MY<='0';CY<='0';CG<='0';ELSESTATE<=mrcy;MR<='1';CY<='1';MY<='0';MG<='0';CR<='0';CG<='
8、0';ENDIF;ENDCASE;ENDIF;ENDPROCESS;ENDbehav;2)控制数码管显示倒计时数并且输出:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYJ
此文档下载收益归作者所有