资源描述:
《eda技术及应用课程设计交通灯wu》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、课程设计课程名称:EDA技术与FPGA应用设计课设题目:交通灯控制实验地点:电机馆跨越机房专业班级:电信1001班学号:学生姓名:吴清涛指导教师:张文爱2013年6月10日课设题目:交通灯控制器一、设计要求设计一个由一条主干道和一条支干道的十字路口的交通灯控制器,具体要求如下:(1)主、支干道各设有一个绿、黄、红指示灯,两个显示数码管。(2)主干道处于常允许通行状态,而支干道有车来才允许通行。当主干道允许通行亮绿灯时,支干道亮红灯。而支干道允许通行亮绿灯时,主干道亮红灯。(3)当主、支道均有车时,
2、两者交替允许通行,主干道每次放行45s,支干道每次放行25s,由亮绿灯变成亮红灯转换时,先亮5s的黄灯作为过渡,并进行减计时显示。二、设计方案(1)设置支干道有车开关SB。(2)系统中要求有45秒、25秒和5秒三种定时信号,需要设计三种相应的计时显示电路。计时方法为倒计时。定时的起始信号由主控电路给出,定时时间结束的信号输入到主控电路。(3)主控制电路的输入信号一方面来自车辆检测,另一方面来自45秒、25秒、5秒的定时到信号;输出有计时启动信号(置计数起始值)和红绿灯驱动信号。状态转移如图所示,用
3、状态机描述。模块结构如下图:三、各模块程序1.JTDKZLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYJTDKZISPORT(CLK,SB,cnt,RST:INSTD_LOGIC;en,MR,MY,MG,BR,BY,BG:OUTSTD_LOGIC;din:outSTD_LOGIC_vector(7downto0));ENDENTITYJTDKZ;ARCHITECTUREARTOFJTDKZISTYPESTATE_TYPEIS(A,B,C,D);SIGNA
4、Lp_STATE,n_state:STATE_TYPE;BEGINreg:PROCESS(CLK,rst)ISBEGINifrst='1'thenp_STATE<=A;ELSIF(CLK'EVENTANDCLK='1')THENp_STATE<=n_state;ENDIF;endprocessreg;com:PROCESS(sb,cnt,p_state)beginCASEp_STATEISWHENA=>MR<='0';MY<='0';MG<='1';BR<='1';BY<='0';BG<='0';
5、IF(SBANDcnt)='1'THENn_STATE<=B;din<="";EN<='0';ELSEn_STATE<=A;din<="";EN<='1';ENDIF;WHENB=>MR<='0';MY<='1';MG<='0';BR<='1';BY<='0';BG<='0';IFcnt='1'THENn_STATE<=C;din<="";EN<='0';ELSEn_STATE<=B;din<="";EN<='1';ENDIF;WHENC=>MR<='1';MY<='0';MG<='0';BR<=
6、'0';BY<='0';BG<='1';IFcnt='1'THENn_STATE<=D;din<="";EN<='0';ELSEn_STATE<=C;din<="";EN<='1';ENDIF;WHEND=>MR<='1';MY<='0';MG<='0';BR<='0';BY<='1';BG<='0';IFcnt='1'THENn_STATE<=A;din<="";EN<='0';ELSEn_STATE<=D;din<="";EN<='1';ENDIF;ENDCASE;ENDPROCESScom;
7、ENDARCHITECTUREART;2.JSQLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYjsqISPORT(en,RST:INSTD_LOGIC;Din:INSTD_LOGIC_VECTOR(7DOWNTO0);CLK:INSTD_LOGIC;Cnt:OUTSTD_LOGIC;QH,QL:BUFFERSTD_LOGIC_VECTOR(3DOWNTO0));ENDENTITYjsq;ARC
8、HITECTUREARTOFjsqISBEGINcnt<='1'WHEN(QH="0000"ANDQL="0000")ELSE'0';PROCESS(CLK,en,RST)BEGINIFRST='1'THENQH<="0100";QL<="0101";ELSIFCLK'EVENTANDCLK='1'THENIFen='0'THENQH<=Din(7DOWNTO4);QL<=Din(3DOWNTO0);elsIFQL=0THENQL<="1001";IFQH=0THENQH<="10