《EDA课程设计-交通控制器的设计.doc》由会员分享,可在线阅读,更多相关《EDA课程设计-交通控制器的设计.doc(19页珍藏版)》请在金锄头文库上搜索。
1、目录第一章 系统设计总述11.1 课程设计要求与分析1第二章各模块模型程序及仿真波形32.1 交通灯控制模块12.2 四十五秒倒计时模块12.3 二十五倒计时模块12.4 五秒倒计时模块12.5 显示信号模块12.6 译码器模块1第三章 顶层设计25第四章 心得与体会26第五章 参考文献26 第一章 系统设计总述1.1课程设计要求与分析 设计一个由一条主干道和一条支干道的汇合点形成的十字交叉路口的交通灯控制器,具体要求如下: (1)主、支干道各设有一个绿、黄、红指示灯,两个显示数码管。 (2)主干道处于常允许通行状态,而支干道有车来才允许通行。 (3)当主、支道均有车时,两者交替允许通行,主干
2、道每次放行45 s,支干道每次放行25 s,在每次由亮绿灯变成亮红灯的转换过程中,要亮5 s的黄灯作为过渡,并进行减计时显示。 (4)以上设计仅模拟某一十字路口的信号灯来大道控制交通流量的目的,以上所有时间都可以按照自己的需要进行修改。状态分析框图:主干道支干道时间绿灯亮,允许通行红灯亮,禁止通行45黄灯亮,停车红灯亮,禁止通行5红灯亮,禁止通行绿灯亮,允许通行25红灯亮,禁止通行黄灯亮,停车5图 1.1 状态分析方框图:图1.2 原理方框图总设计电路图: 图1.3 原理图设计实际分析:(1) 道路交通以主干道为主,处在常开放状态。(2) 当主、支干道同时有车时,两者交替通行;主干道通行时间较
3、支干道通行时间较长;5秒黄灯时间共同使用。第二章 各模块模型程序及仿真波形如上述原理图建立输入、输出端口和实体名。2.1 交通灯控制模块(JTDKZ ) 在CLK上升沿来时,根据SB、SM传感器状态判断交通处于何种状态,假设4种状态分别为:A、B、C、D,各交通灯该状态输出什么状态。 设计的原理图模块: 图2.1.1 JTDKZ模块 CLK脉冲信号,SM、SB主支干路有无车传感信号;输出端分别为主、支干道六盏灯 注意:有些程序末尾处有中文标注程序,仿真时不可写入设计源程序: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY JTDKZ IS POR
4、T(CLK,SM,SB:IN STD_LOGIC; MR,MY0,MG0,BR,BY0,BG0:OUT STD_LOGIC); END ENTITY JTDKZ;ARCHITECTURE ART OF JTDKZ IS TYPE STATE_TYPE IS(A,B,C,D); /自定义数组类型STSTE-TYPE数组/ SIGNAL STATE:STATE_TYPE; / STATE是数组类型/ BEGIN CNT:PROCESS(CLK)IS VARIABLE S:INTEGER RANGE 0 TO 45; / 45秒S倒计时计数器/ VARIABLE CLR,EN:BIT; BEGIN
5、IF(CLKEVENT AND CLK=1)THEN /总CLK上升沿时 IF CLR=0THEN S:=0; CLR为0时则S=0 ELSIF EN=0THEN S:=S; CLR为1时 EN为0 ELSE S:=S+1; CLR=1 EN=1时,加1循环/ END IF; CASE STATE IS WHEN A=MR=0;MY0=0;MG0=1;BR=1;BY0=0;BG0=0; A=主通行,支停车 IF(SB AND SM)=1 THEN IF S=45 THEN STATE=B;CLR:=0;EN:=0; ELSE STATE=A;CLR:=1;EN:=1; END IF; ELSI
6、F(SB AND(NOT SM)=1THEN STATE=B;CLR:=0;EN:=0; ELSE STATEMR=0;MY0=1;MG0=0;BR=1;BY0=0;BG0=0; /B=主黄灯闪烁倒计时5秒 支道停车等待绿灯开始 / IF S=5 THEN STATE=C;CLR:=0;EN:=0; ELSE STATEMR=1;MY0=0;MG0=0;BR=0;BY0=0;BG0=1; / C=主红灯亮,支绿灯通行/ IF(SM AND SB)=1THEN IF S=25 THEN STATE=D;CLR:=0;EN:=0; ELSE STATE=C;CLR:=1;EN:=1; END IF
7、; ELSIF SB=0 THEN STATE=D;CLR:=0;EN:=0; ELSE STATEMR=1;MY0=0;MG0=0;BR=0;BY0=1;BG0=0; /D=主路停车、支路黄灯闪烁/ IF S=5 THEN STATE=A;CLR:=0;EN:=0; ELSE STATE=D;CLR:=1;EN:=1; END IF; END CASE; END IF; END PROCESS CNT; END ARCHITECTURE ART;设计仿真的截图:图2.1.2 JTDKZ波形仿真 在SM、SB(包括非运算)相与为1,相应控制主支干道红绿灯2.2 四十五秒倒计时模块(CNT45S
8、) CLK上升沿到来时,若到计时使能信号和SB信号有效,CNT45S开始计数,并将输入状态通过DOUT45M、DOUT45B分别输出到主、0支0干道显示。设计的原理图模块: 、图3.2.1 CNT45S模块模块设计源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT45S IS PORT(SB,CLK,EN45:IN STD_LOGIC; DOUT45M,DOUT45B:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END CNT45S;ARCHITEC
9、TURE ART OF CNT45S IS SIGNAL CNT6B:STD_LOGIC_VECTOR(5 DOWNTO 0); BEGIN PROCESS(SB,CLK,EN45) IS BEGIN IF SB=0 THEN CNT6B=CNT6B-CNT6B-1; 18/SB等于0时,CNT6B减1;ELSIF(CLKEVENT AND CLK=1)THEN SB等于1且CLK为上升沿时, IF EN45=1THEN CNT6B=CNT6B+1; 如果EN45=1, CNT6B自加1 ELSIF EN45=0THEN CNT6BDOUT45M=01000101;DOUT45BDOUT45M=01000100;DOUT45BDOUT45M=01000011;DOUT45BDOUT45M=01000010;DOUT45BDOUT45M=01000001;DOUT45BDOUT45M=01000000;DOUT45BDOUT45M=00111001;DOUT45BDOUT45M=00111000;DOUT45BDOUT45M=00110111;DOUT45BDOUT45M=00110110;DOUT45BDOUT45M=00110101;DOUT45BDOUT4