基于eda交通灯控制课程设计.doc_第1页
基于eda交通灯控制课程设计.doc_第2页
基于eda交通灯控制课程设计.doc_第3页
基于eda交通灯控制课程设计.doc_第4页
基于eda交通灯控制课程设计.doc_第5页
已阅读5页,还剩17页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录第一章 设计内容与要求. 21.1、设计要求.21.2、对题目的理解.2第二章 设计思路. 32.1、分模块设计. 32.2、模块设计思路. 3 1、JTDKZ. 3 2、XSKZ. 3 3、CNT45S. 3 4、CNT25S. 3 5、CNT05S. 3 6、输入输出模块. 3第三章设计模块具体实现.43.1、JTDKZ.43.2、XSKZ.63.3、CNT45S.73.4、CNT25S.103.5、CNT05S.13第四章 整体组装与测试.154.1、自动转换出来的源程序.154.2、主原理图.194.3、功能说明.19第五章 设计总结.205.4、设计总结.20附录1 参考文献.21第一章 设计内容与要求一、设计要求设计一个由一条支干道和一条主干道的汇合点形成的十字交叉路口的交通灯控制器,主要要求如下:1.主、支干道各设有一个绿、黄、红指示灯,两个显示数码管。2.主干道处于常允许状态,两支干道有车来才允许通行。3.当主、支干道有车时,两者交替通行,主干道每次放行45s,支干道每次放行25s,在每次由亮绿灯变成亮红灯转换过程中,要亮5s黄灯作为过渡,并进行减计时显示。二、对题目的理解(一)、交通灯的功能是实现一个交叉口的通车控制,交通灯显示有以下4种状态:1.主干道绿灯,支干道红灯;2.主干道绿灯,支干道黄灯;3.主干道红灯,支干道绿灯;4.主干道黄灯,支干道绿灯。(二)、支干道没车时,主干道一直亮绿灯;主干道没车时,主干道和支干道交替亮绿灯;主干道和支干道都有车时同样交替亮红绿灯。在红绿灯交替时亮5s黄灯。第二章 设计思路一、分模块设计1、红、绿、黄灯控制模块,模块名JTDKZ;2、倒计时传输、控制模块XSKZ;3、倒计时45sCNT45s;4、倒计时25sCNT25s;5、倒计时5sCNT05s。6、输入、输出。二、模块设计思路1、JTDKZ根据交通灯显示有4种状态,可以采用CASE语句设置选择4种状态。设置3个输入:CLK(时钟脉冲)、SB(支干道传感器)、SM(主干道传感器)。2、XSKZ根据需要交通灯显示的不同数倒计时据设置4个输入使能信号:EN45(45s倒计时使能信号)、EN25(25s倒计时使能信号)、EN05(5s倒计时使能信号);再设置5个倒计时计数数据输入信号将此时倒计时数据输出:AIN45M、AIN45B、AIN25M、AIN25B、AIN05;2个输出信号使数码管显示正在倒计时的时间。3、CNT45S根据倒计时计数的要求设置3个输入信号:CLK(计数脉冲)、EN45(计数使能)、SB(支干道传感器信号);2个输出DOUT45M、DOUT45B,分别用于主、支干道显示。 4、CNT25s根据倒计时计数的要求设置4个输入信号:CLK(计数脉冲)、EN45(计数使能)、SM(主干道传感器信号)、SB(支干道传感器信号);2个输出DOUT25M、DOUT25B,分别用于主、支干道显示。 5、CNT05s根据倒计时计数的要求设置3个输入信号:CLK(计数脉冲)、EN05B(计数使能)、EN05M(计数使能);1个输出DOUT05,用于主、支干道显示。 6、输入输出模块,3个输入分别为:CLK、SB、SM,2个输出分别为DOUT17.0、DOUT27.0。第三章设计模块具体实现一、JTDKZ简单思路:假设4种状态分别为:A、B、C、D,在CLK上升沿来时,根据SB、SM状态判断交通处于何种状态,该状态输出什么信号。设计的原理图模块:设计源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY JTDKZ IS PORT(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); SIGNAL STATE:STATE_TYPE; BEGIN CNT:PROCESS(CLK)IS VARIABLE S:INTEGER RANGE 0 TO 45; VARIABLE CLR,EN:BIT; BEGIN IF(CLKEVENT AND CLK=1)THEN IF CLR=0THEN S:=0; ELSIF EN=0THEN S:=S; ELSE S:=S+1; END IF; CASE STATE IS WHEN A=MR=0;MY0=0;MG0=1;BR=1;BY0=0;BG0=0; 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; ELSIF(SB AND(NOT SM)=1THEN STATE=B;CLR:=0;EN:=0; ELSE STATEMR=0;MY0=1;MG0=0;BR=1;BY0=0;BG0=0; IF S=5 THEN STATE=C;CLR:=0;EN:=0; ELSE STATEMR=1;MY0=0;MG0=0;BR=0;BY0=0;BG0=1; IF(SM AND SB)=1THEN IF S=25 THEN STATE=D;CLR:=0;EN:=0; ELSE STATE=C;CLR:=1;EN:=1; END IF; ELSIF SB=0 THEN STATE=D;CLR:=0;EN:=0; ELSE STATEMR=1;MY0=0;MG0=0;BR=0;BY0=1;BG0=0; 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;设计仿真的截图:二、XSKZ简单设计思路:根据EN45、EN25、EN05M、EN05B的信号以及3个倒计时计数器的计数状态决定输出3个倒计时计数器中某个的状态输出。原理图模块:设计源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CSKZ IS PORT(INA:IN STD_LOGIC; OUTA:OUT STD_LOGIC);END ENTITY CSKZ;ARCHITECTURE ART OF CSKZ IS BEGIN PROCESS(INA)IS BEGIN IF INA=1THEN OUTA=1; ELSE OUTA=0; END IF; END PROCESS;END ARCHITECTURE ART;设计仿真的截图:三、CNT45S 简单思路:CLK上升沿到来时,若到计时使能信号和SB信号有效,CNT45S开始计数,并将输入状态通过DOUT45M、DOUT45B分别输出到主、支干道显示。 设计的原理图模块: 设计源程序:3LIBRARY 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;ARCHITECTURE 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; ELSIF(CLKEVENT AND CLK=1)THEN IF EN45=1THEN CNT6B=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;DOUT45BDOUT45M=00110100;DOUT45BDOUT45M=00110011;DOUT45BDOUT45M=00110010;DOUT45BDOUT45M=00110001;DOUT45BDOUT45M=00110000;DOUT45BDOUT45M=00101001;DOUT45BDOUT45M=00101000;DOUT45BDOUT45M=00100111;DOUT45BDOUT45M=00100110;DOUT45BDOUT45M=00100101;DOUT45BDOUT45M=00100100;DOUT45BDOUT45M=00100011;DOUT45BDOUT45M=00100010;DOUT45BDOUT45M=00100001;DOUT45BDOUT45M=00100000;DOUT45BDOUT45M=00011001;DOUT45BDOUT45M=00011000;DOUT45BDOUT45M=00010111;DOUT45BDOUT45M=00010110;DOUT45BDOUT45M=00010101;DOUT45BDOUT45M=00010100;DOUT45BDOUT45M=00010011;DOUT45BDOUT45M=00010010;DOUT45BDOUT45M=00010001;DOUT45BDOUT45M=00010000;DOUT45BDOUT45M=00001001;DOUT45BDOUT45M=00001000;DOUT45BDOUT45M=00000111;DOUT45BDOUT45M=00000110;DOUT45BDOUT45M=00000101;DOUT45BDOUT45M=00000100;DOUT45BDOUT45M=00000011;DOUT45BDOUT45M=00000010;DOUT45BDOUT45M=00000001;DOUT45BDOUT45M=00000000;DOUT45B=00000000;END CASE;END PROCESS;END;设计仿真的截图:4、CNT25S简单思路:CLK上升沿到来时,若到计时使能信号、SM信号和SB信号有效,CNT25S开始计数,并将输入状态通过DOUT25M、DOUT25B分别输出到主、支干道显示。设计的原理图模块:设计源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT25S IS PORT(SB,SM,CLK,EN25:IN STD_LOGIC; DOUT25M,DOUT25B:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY CNT25S;ARCHITECTURE ART OF CNT25S IS SIGNAL CNT5B:STD_LOGIC_VECTOR(4 DOWNTO 0); BEGINPROCESS(SB,SM,CLK,EN25)ISBEGIN IF SB=0THEN CNT5B=CNT5B-CNT5B-1; ELSIF SM=0THEN CNT5B=CNT5B-CNT5B-1; ELSIF(CLKEVENT AND CLK=1)THEN IF EN25=1THEN CNT5B=CNT5B+1; ELSIF EN25=0THEN CNT5BDOUNT25B=00100101;DOUT25MDOUNT25B=00100100;DOUT25MDOUNT25B=00100011;DOUT25MDOUNT25B=00100010;DOUT25MDOUNT25B=00100001;DOUT25MDOUNT25B=00100000;DOUT25MDOUNT25B=00011001;DOUT25MDOUNT25B=00011000;DOUT25MDOUNT25B=00010111;DOUT25MDOUNT25B=00010110;DOUT25MDOUNT25B=00010101;DOUT25MDOUNT25B=00010100;DOUT25MDOUNT25B=00010011;DOUT25MDOUNT25B=00010010;DOUT25MDOUNT25B=00010001;DOUT25MDOUNT25B=00010000;DOUT25MDOUNT25B=00001001;DOUT25MDOUNT25B=00001000;DOUT25MDOUNT25B=00000111;DOUT25MDOUNT25B=00000110;DOUT25MDOUNT25B=00000101;DOUT25MDOUNT25B=00000100;DOUT25MDOUNT25B=00000011;DOUT25MDOUNT25B=00000010;DOUT25MDOUNT25B=00000001;DOUT25MDOUNT25B=00000000;DOUT25M=00000000;END CASE;END PROCESS;END;设计仿真的截图:5、CNT05S简单思路:CLK上升沿到来时,若到计时使能信号有效,CNT25S开始计数,并将输入状态通过DOUT05输出到主、支干道显示。设计的原理图模块:设计源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT05S ISPORT(CLK,EN05M,EN05B:IN STD_LOGIC; DOUT5:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END CNT05S;ARCHITECTURE ART OF CNT05S IS SIGNAL CNT3B:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN PROCESS(CLK,EN05M,EN05B)IS BEGIN IF(CLKEVENT AND CLK=1)THEN IF EN05M=1THEN CNT3B=CNT3B+1; ELSIF EN05B=1THEN CNT3B=CNT3B+1; ELSIF EN05B=0THEN CNT3BDOUT5DOUT5DOUT5DOUT5DOUT5DOUT5=00000000; END CASE; END PROCESS;END;设计仿真的截图:第四章 整体组装与测试一、自动转换出来的源程序:LIBRARY ieee;USE ieee.std_logic_1164.all; LIBRARY work;ENTITY Block1 IS port( CLK : IN STD_LOGIC;SM : IN STD_LOGIC;SB : IN STD_LOGIC;MR : OUT STD_LOGIC;MY : OUT STD_LOGIC;MG : OUT STD_LOGIC;BR : OUT STD_LOGIC;BY : OUT STD_LOGIC;BG : OUT STD_LOGIC;DOUT1 : OUT STD_LOGIC_VECTOR(7 downto 0);DOUT2 : OUT STD_LOGIC_VECTOR(7 downto 0);END Block1;ARCHITECTURE bdf_type OF Block1 IS component cnt05sPORT(CLK : IN STD_LOGIC; EN05M : IN STD_LOGIC; EN05B : IN STD_LOGIC; DOUT5 : OUT STD_LOGIC_VECTOR(7 downto 0);end component;component cnt25sPORT(SB : IN STD_LOGIC; SM : IN STD_LOGIC; CLK : IN STD_LOGIC; EN25 : IN STD_LOGIC; DOUT25B : OUT STD_LOGIC_VECTOR(7 downto 0); DOUT25M : OUT STD_LOGIC_VECTOR(7 downto 0);end component;component cnt45sPORT(SB : IN STD_LOGIC; CLK : IN STD_LOGIC; EN45 : IN STD_LOGIC; DOUT45B : OUT STD_LOGIC_VECTOR(7 downto 0); DOUT45M : OUT STD_LOGIC_VECTOR(7 downto 0);end component;component jtdkzPORT(CLK : IN STD_LOGIC; SM : IN STD_LOGIC; SB : IN STD_LOGIC; MR : OUT STD_LOGIC; MY0 : OUT STD_LOGIC; MG0 : OUT STD_LOGIC; BR : OUT STD_LOGIC; BY0 : OUT STD_LOGIC; BG0 : OUT STD_LOGIC);end component;component xskzPORT(EN45 : IN STD_LOGIC; EN25 : IN STD_LOGIC; EN05M : IN STD_LOGIC; EN05B : IN STD_LOGIC; AIN05 : IN STD_LOGIC_VECTOR(7 downto 0); AIN25B : IN STD_LOGIC_VECTOR(7 downto 0); AIN25M : IN STD_LOGIC_VECTOR(7 downto 0); AIN45B : IN STD_LOGIC_VECTOR(7 downto 0); AIN45M : IN STD_LOGIC_VECTOR(7 downto 0); DOUTB : OUT STD_LOGIC_VECTOR(7 downto 0); DOUTM : OUT STD_LOGIC_VECTOR(7 downto 0);end component;signalSYNTHESIZED_WIRE_13 : STD_LOGIC;signalSYNTHESIZED_WIRE_14 : STD_LOGIC;signalSYNTHESIZED_WIRE_15 : STD_LOGIC;signalSYNTHESIZED_WIRE_16 : STD_LOGIC;signalSYNTHESIZED_WIRE_8 : STD_LOGIC_VECTOR(7 downto 0);signalSYNTHESIZED_WIRE_9 : STD_LOGIC_VECTOR(7 downto 0);signalSYNTHESIZED_WIRE_10 : STD_LOGIC_VECTOR(7 downto 0);signalSYNTHESIZED_WIRE_11 : STD_LOGIC_VECTOR(7 downto 0);signalSYNTHESIZED_WIRE_12 : STD_LOGIC_VECTOR(7 downto 0);BEGIN MY = SYNTHESIZED_WIRE_13;MG = SYNTHESIZED_WIRE_16;BY = SYNTHESIZED_WIRE_14;BG CLK, EN05M = SYNTHESIZED_WIRE_13, EN05B = SYNTHESIZED_WIRE_14, DOUT5 = SYNTHESIZED_WIRE_8);b2v_inst1 : cnt25sPORT MAP(SB = SB, SM = SM, CLK = CLK, EN25 = SYNTHESIZED_WIRE_15, DOUT25B = SYNTHESIZED_WIRE_9, DOUT25M = SYNTHESIZED_WIRE_10);b2v_inst2 : cnt45sPORT MAP(SB = SB, CLK = CLK, EN45 = SYNTHESIZED_WIRE_16, DOUT45B = SYNTHESIZED_WIRE_11, DOUT45M = SYNTHESIZED_WIRE_12);b2v_inst3 : jtdkzPORT MAP(CLK = CLK, SM = SM, SB = SB, MR = MR, MY0 = SYNTHESIZED_WIRE_13, MG0 = SYNTHESIZED_WIRE_16, BR = BR, BY0 = SYNTHESIZED_WIRE_14, BG0 = SYNTHESIZED_WIRE_15);b2v_inst4 : xskzPORT MAP(EN45 = SYNTHESIZED_WIRE_16, EN25 = SYNTHESIZED_WIRE_15, EN05M = SYNTHESIZED_WIRE_13, EN05B = SYNTHESIZED_WIRE_14, AIN05 = SYNTHESIZED_WIRE_8, AIN25B = SYNTHESIZED_WIRE_9, AIN25M = SYNTHESIZED_WIRE_10, AIN45B = SYNTHESIZED_WIRE_11, AIN45M = SYNTHESIZED_WIRE_12, DOUTB = DOUT2, DOUTM = DOUT1);END;二、总原理图三、功能说明:1.主、支干道各设有一个绿、黄、红指示灯,两个显示数码管。2.主干道绿灯处于常亮状态,两支干道有车来才亮绿灯。3.当主、支干道有车时,两者交替通行,主干道绿灯每次亮45S,支干道绿灯每次亮25S,在每次由亮绿灯变成亮红灯转换过程中,亮5S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论