资源描述:
《EDA交通灯程序设计111》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、EDA交通灯程序设计-7-实验目的1.学习较复杂数字电路系统的设计;2.熟悉QuartusⅡ软件的使用方法;3.学习VHDL基本逻辑电路和状态机电路的综合设计应用。一、实验基本原理本实验中主要应用了状态机以及减法器的设计原理。在状态连续变化的数字系统设计中,采用状态机的设计思想有利于提高设计效率,增加程序的可读性,减少错误的发生几率。同时,状态机的设计方法也是数字系统中一种最常用的设计方法。一般来说,标准状态机可以分为穆尔(Moore)机和米利(Mealy)机两种。在穆尔机中,其输出仅仅是当前状态值的函数,并且仅在时钟上升沿到来时才发生变化。米利
2、机的输出则是当前状态值、当前输出值和当前输入值的函数。二、实验内容和要求设计一个主干道和支干道十字路口的交通灯控制电路,要求如下:①一般情况下,保持主干道畅通,主干道绿灯亮、支干道红灯亮,并且主干道绿灯亮的时间不得少于60s。②主干道无车,支干道有车,则主干道红灯亮、支干道绿灯亮,但支干道绿灯亮的时间不得超过30s。③每次主干道或支干道绿灯变红灯时,黄灯先亮5s。设计要求:1.有MR(主红)、MY(主黄)、MG(主绿)、CR(乡红)、CY(乡黄)、CG(乡绿)六盏交通灯需要控制;2.交通灯由绿转红有5秒黄灯亮的间隔时间,由红转绿没有间隔时间;3.
3、系统有MRCY、MRCG、MYCR、MGCR四个状态;4.乡间公路右侧各埋有一个传感器,当有车辆通过乡间公路时,发出请求信号S=1,其余时间S=0;5.平时系统停留在MGCR(主干道通行)状态,一旦S信号有效,经MYCR(黄灯状态)转入MRCG(支干道通行)状态,但要保证MGCR的状态不得短于一分钟;6.一旦S信号无效,系统脱离MRCG状态。随即经MRCY(黄灯状态)进入MGCR状态,即使S信号一直有效,MRCG状态也不得长于30秒钟。三、所需器材①PC机一台②QuartusII软件③EDA实验箱一台④下载电缆一根(已接好)⑤导线若干四、实验步骤
4、1.用文本输入法设计交通信号控制器(1)由实验要求写出设计思路如下:a)主、支干道各设有一个绿、黄、红指示灯,两个显示数码管。-7-a)主干道处于常允许通行状态,而支干道有车来才允许通行。当主干道允许通行亮绿灯时,支干道亮红灯。而支干道允许通行亮绿灯时,主干道亮红灯。b)当主、支干道均有车时,两者交替允许通行,主干道每次放行60s,支干道每次放行30s,在每次由亮绿灯变成亮红灯的转换过程中,要亮5s的黄灯作为过渡,并进行减计时显示。整个交通控制器的状态转换图如下图示(仅画出主干道状态转换图,支干道类似):主干道状态转换图S=0立刻转换下一状态S=
5、1S=1S=0S=0S=1STEP0系统下载,主干道开始60s倒计时,不论S有无信号,皆为MGCR状态。判断SSTEP1保持MGCR状态,显示保持5秒。STEP2转入MYCR状态,开始5s倒计时STEP3转入MRCG状态,开始30s倒计时判断SSTEP4转入MRCY状态,开始5s倒计时程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYAAAISPORT(CLK0,RST,S:INS
6、TD_LOGIC;OUT1,OUT2:OUTSTD_LOGIC_VECTOR(3DOWNTO0);C,M:BUFFERSTD_LOGIC_VECTOR(7DOWNTO0);MR,MY,MG,CR,CY,CG:OUTSTD_LOGIC);ENDENTITY;ARCHITECTUREBBBOFAAAISSIGNALC1,C5,C30,C60,M1:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALCLK,EN5,EN30,EN60,RST5,RST30,RST60:STD_LOGIC;TYPESTATESIS(MGCR,MYCR,MR
7、CY,MRCG);-7-SIGNALSTATE:STATES;BEGINPRO0:PROCESS(CLK0)beginif(clk0'eventandclk0='1')thenclk<=notclk;endif;endprocess;pro1:PROCESS(RST,RST5,EN5,CLK,C5)BEGINIFRST='1'ORRST5='1'THENC5<="00000011";ELSIFCLK'EVENTANDCLK<='0'ANDC5>"00000000"THENIFEN5='1'THENC5<=C5-1;ENDIF;ENDIF;ENDP
8、ROCESS;--四秒倒计数pro2:PROCESS(RST,RST30,EN30,CLK,C30)BEGINIFRST='1'ORRS