已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于EDA的交通灯控制设计摘要:根据数字逻辑电路与系统设计进行实践,利用Quartus软件设计一个基于EDA的由一条支干道和一条主干道的汇合点形成的十字交叉路口的交通灯控制器,通过JTDKZ模块、XSKZ模块、CNT45S模块、CNT25S模块、CNT05S模块的实现,经过整体组装、测试及程序来实现交通灯的控制功能。Abstract: based on digital logic circuits and systems design, use Quartus carries on the practice software design based on by a team of EDA highways and the main thoroughfare areas of forming the cross intersection of traffic light controller, through JTDKZ module, XSKZ module, CNT45S module, CNT25S module, CNT05S of the module, through the whole assembly, test and procedures to achieve traffic control functions.关键词:Quartus,交通灯控制器,模块,程序Keywords: Quartus , traffic controller, modules, program1. 设计背景和设计方案1.1 设计背景设计一个由一条支干道和一条主干道的汇合点形成的十字交叉路口的交通灯控制器,主要要求如下:1.主、支干道各设有一个绿、黄、红指示灯,两个显示数码管。2.主干道处于常允许状态,两支干道有车来才允许通行。3.当主、支干道有车时,两者交替通行,主干道每次放行45s,支干道每次放行25s,在每次由亮绿灯变成亮红灯转换过程中,要亮5s黄灯作为过渡,并进行减计时显示。1.2 设计方案1.2.1 背景分析(一)、交通灯的功能是实现一个交叉口的通车控制,交通灯显示有以下4种状态:1.主干道绿灯,支干道红灯;2.主干道绿灯,支干道黄灯;3.主干道红灯,支干道绿灯;4.主干道黄灯,支干道绿灯。(二)、支干道没车时,主干道一直亮绿灯;主干道没车时,主干道和支干道交替亮绿灯;主干道和支干道都有车时同样交替亮红绿灯。在红绿灯交替时亮5s黄灯。1.2.2 方案及思路一、分模块设计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。2. 设计模块具体实现2.1 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;设计仿真的截图:2.2 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;设计仿真的截图:2.3 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;设计仿真的截图:2.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;设计仿真的截图:2.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;设计仿真的截图:3. 整体组装和测试3.1自动转换出来的源程序: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 =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 恶性黑色素瘤治疗流程
- 白血病放化疗药物管理培训
- 血友病患者出血急救处理流程培训
- 2020-2025年统计师之中级统计师工作实务通关题库(附带答案)
- 《数独》教学设计
- 2025的企业融资合同模板示例
- 2025合作合同书与协议
- 2025文具用品供货合同协议范本
- 沃尔玛零存货管理案例
- 肾内科腹膜透析护理要点
- 2024年形势与政策 第七讲推动构建新时代的大国关系格局
- 机房维保巡检服务报告
- DB65-T 4820-2024 公路工程施工安全风险辨识与管控实施指南
- 《新中国的科技成就》参考课件4
- DL∕T 5362-2018 水工沥青混凝土试验规程
- 2024年经典心理健康知识竞赛题库及答案(共450题)
- 工会换届选举筹备工作报告
- 新疆维吾尔自治区葡萄酒生产企业质量安全风险点清单
- DL-T5054-2016火力发电厂汽水管道设计规范
- 小学数学二年级上册期中测试卷及参考答案(考试直接用)
- 保密知识竞赛参考试题库(附答案)
评论
0/150
提交评论