eda交通灯设计
eda交通灯课程设计
eda交通灯课程设计一、教学目标本课程旨在让学生了解和掌握交通灯系统的基本原理和设计方法。
通过本课程的学习,学生将能够:1.知识目标:理解交通灯系统的原理和组成,包括信号灯、控制器、传感器等;掌握交通灯系统的设计和实施方法,包括硬件设计和软件编程。
2.技能目标:能够使用相关工具和软件进行交通灯系统的设计和仿真;具备一定的实际操作能力,能够进行交通灯系统的安装和调试。
3.情感态度价值观目标:培养学生对交通安全和秩序的重视,提高学生的社会责任感和公民意识。
二、教学内容本课程的教学内容主要包括以下几个部分:1.交通灯系统的原理和组成:介绍交通灯系统的工作原理和基本组成,包括信号灯、控制器、传感器等。
2.交通灯系统的设计和实施:讲解交通灯系统的设计方法和步骤,包括硬件设计和软件编程。
3.交通灯系统的仿真和实验:使用相关工具和软件进行交通灯系统的仿真,并进行实际操作和实验。
4.交通安全和秩序的重要性:强调交通安全和秩序对社会的的重要性,培养学生的社会责任感和公民意识。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括:1.讲授法:讲解交通灯系统的原理和组成,设计和实施方法等基本知识。
2.讨论法:学生进行小组讨论,分享学习心得和经验,提高学生的思维能力和团队合作能力。
3.案例分析法:分析真实的交通灯系统案例,让学生了解交通灯系统的实际应用和效果。
4.实验法:进行交通灯系统的仿真和实验,让学生亲身体验交通灯系统的设计和实施过程。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:选择一本适合学生水平的交通灯系统设计教材,作为学生学习的基本参考资料。
2.参考书:提供一些相关的参考书籍,供学生深入学习和研究。
3.多媒体资料:制作一些教学PPT、视频等多媒体资料,帮助学生更好地理解和掌握交通灯系统的原理和设计方法。
4.实验设备:准备一些实验设备,包括交通灯控制器、传感器等,供学生进行实际操作和实验。
eda交通灯课程设计
eda交通灯课程设计一、课程目标知识目标:1. 学生能理解并掌握交通灯的基本原理及其在现代社会交通管理中的作用。
2. 学生能了解EDA(电子设计自动化)的基本概念,并运用其原理设计简单的交通灯控制系统。
3. 学生掌握交通灯工作周期的计算方法,以及不同交通情况下信号灯变换的逻辑规则。
技能目标:4. 学生能够通过EDA软件进行交通灯电路的设计与仿真,具备基本的电子设计能力。
5. 学生能够运用所学知识分析并解决交通灯控制中的实际问题,具备一定的创新设计思维。
情感态度价值观目标:6. 学生通过设计交通灯控制系统,培养对工程技术的兴趣,增强社会责任感和团队合作意识。
7. 学生能够在项目实践中体验科学探究的乐趣,提高学习科学的积极性,形成良好的学习习惯。
8. 学生通过课程学习,认识到科技在生活中的应用,增强对现代科技改善生活品质的认识,培养创新精神和实践能力。
本课程设计针对的是具有一定电子学基础的中高年级学生,课程性质为实践性强的综合设计课。
在分析课程性质、学生特点和教学要求的基础上,课程目标旨在分解为具体的学习成果,以便通过后续的教学设计和评估,有效提升学生对交通工程和电子设计自动化知识的综合应用能力。
二、教学内容本章节教学内容紧密围绕课程目标,结合课本相关章节,科学系统地组织以下内容:1. 交通灯基本原理:讲解交通灯的功能、结构及工作原理,对应教材第3章“交通信号控制基础”。
2. EDA软件介绍:介绍EDA软件的基本功能、操作方法及其在电子设计中的应用,对应教材第5章“电子设计自动化技术”。
3. 交通灯控制系统设计:a. 设计要求:分析交通灯控制系统的需求,明确设计目标和功能要求。
b. 电路设计:学习并运用EDA软件设计交通灯控制电路,对应教材第6章“数字电路设计”。
c. 仿真测试:利用EDA软件对设计电路进行仿真测试,验证设计方案的可行性。
4. 交通灯控制逻辑:学习并掌握交通灯工作周期的计算方法,以及不同交通情况下的信号灯变换规则,对应教材第3章“交通信号控制策略”。
EDA实验课程大作业报告:设计制作一个用于十字路口的交通灯控制器
交通灯控制器设计一.系统功能设计要求设计制作一个用于十字路口的交通灯控制器,要求如下:(1)南北和东西方向各有一组红、绿、黄灯来指挥交通,持续时间分别为25S,20S,和5S。
(2)当有特殊情况(如消防车、救护车等)时,两个方向均为红灯亮,计时停止。
(3)当特殊情况结束后,控制器恢复原来状态,继续正常运行。
(4)用两组数码管,以倒计时方式显示两个方向允许通行或禁止通行的时间。
二.设计原理1.交通灯控制器的状态转换根据题目要求将将红绿灯的状态转换列成如下表:2.设计方案1)由于交通灯需要使用2位7段LED数码管指示通行剩余时间,故采用LED动态扫描方式显示当前时间。
频率设定CLK1k对应的频率为50MHZ。
2)控制模块是交通灯的核心,主要控制交通灯按工作顺序自动变换,同时控制倒计时模块工作,每当倒计时回零时,控制模块接收到一个计时信号,从而控制交通灯进入下一个工作状态。
3)每个方向有一组2位倒计时器模块,用以显示该方向交通灯剩余的点亮时间。
4)显示模块由两部分组成,一是由七段数码管组成的倒计时显示器,每个方向两个七段数码管;二是由发光二极管代替的交通灯,每个方向3个发光二极管。
三.变量符号说明其中,CLK1K为系统时钟信号输入端,SN为禁止通行信号输入通行信号输入端,light0为东西红灯信号输出端,light1为东西黄灯信号输出端,light2为东西绿灯信号输出端,light3为南北红灯信号输出端,light4为南北黄灯信号输出端,light5为南北绿灯信号输出端,led1、led2、led3、led4为数码管地址选择信号输出端。
四.代码说明library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity Hongld ISport (clk1k,SN:in std_logic; --SN紧急情况led1, led2, led3, led4 :out std_logic_vector (6 downto 0);--显示管显示时间用light:out std_logic_vector (5 downto 0)); --红绿黄灯end Hongld;architecture traffic1 of Hongld ISsignal S:std_logic_vector (1 downto 0); --状态signal DXT:std_logic_vector(7 downto 0):=X"01"; --东西方向时间signal NBX:std_logic_vector(7 downto 0):=X"01"; --南北方向时间signal ART,AGT,AYT,BRT,BGT,BYT: std_logic_vector(7 downto 0); --红绿黄灯信号signal temp: integer range 0 to 49999999; --产生1s计数器时计数signal clk: std_logic;beginART<="00100101";AGT<="00100000";AYT<="00000100";BRT<="00100101";BGT<="00100000";BYT<="00000100";process(clk1k) -- 选频率为50MHZ beginif (clk1k'event and clk1k='1') thenif temp=49999999 thentemp<=0;clk<='1';elsetemp<=temp+1;clk<='0';end if;end if;end process;process(clk,DXT,NBX) --状态转换进程beginif clk'event and clk ='1' thenif(DXT ="00000001")OR (NBX = "00000001") then S<=S+1;else S<=S;end if; --状态转换结束end if;end process;process (clk,SN,S) --倒计时模块beginif SN = '1' then DXT<=DXT; NBX<=NBX;elseif clk'event and clk='1' thenif (DXT="0000000") OR (NBX="00000000") thencase S ISwhen "00"=>DXT<=ART; NBX<=BGT; --南北红灯、东西绿灯when "01"=>NBX<=BYT; --南北红灯、东西黄灯when "10"=>DXT<=AGT; NBX<=BRT; --南北绿灯、东西红灯when "11"=>DXT<=AYT; --南北黄灯、东西红灯when others=>NULL;end case;end if;if DXT/="00000000" thenif DXT(3 downto 0)= "0000" thenDXT(3 downto 0)<="1001";DXT(7 downto 4)<=DXT(7 downto 4)-1;else DXT(3 downto 0)<=DXT(3 downto 0)-1;DXT(7 downto 4)<=DXT(7 downto 4);end if;end if;if NBX/="00000000" thenif NBX(3 downto 0)="0000" thenNBX(3 downto 0)<="1001";NBX(7 downto 4)<=NBX(7 downto 4)-1;else NBX(3 downto 0)<=NBX(3 downto 0)-1;NBX(7 downto 4)<=NBX(7 downto 4);end if;end if;end if;end if;end process; --倒计时模块结束process(DXT,NBX,S,SN) --显示模块begincase NBX(3 downto 0) iswhen "0000"=>led1<="1000000";when "0010"=>led1<="0100100"; when "0011"=>led1<="0110000"; when "0100"=>led1<="0011001"; when "0101"=>led1<="0010010"; when "0110"=>led1<="0000010"; when "0111"=>led1<="1111000"; when "1000"=>led1<="0000000"; when "1001"=>led1<="0010000"; when others=>led1<="1111111"; end case;case NBX(7 downto 4) iswhen "0000"=>led2<="1000000"; when "0001"=>led2<="1111001"; when "0010"=>led2<="0100100"; when "0011"=>led2<="0110000"; when "0100"=>led2<="0011001"; when "0101"=>led2<="0010010"; when "0110"=>led2<="0000010"; when "0111"=>led2<="1111000"; when "1000"=>led2<="0000000"; when "1001"=>led2<="0010000"; when others=>led2<="1111111"; end case;case DXT(3 downto 0) iswhen "0000"=>led3<="1000000"; when "0001"=>led3<="1111001"; when "0010"=>led3<="0100100"; when "0011"=>led3<="0110000"; when "0100"=>led3<="0011001"; when "0101"=>led3<="0010010"; when "0110"=>led3<="0000010"; when "0111"=>led3<="1111000"; when "1000"=>led3<="0000000"; when "1001"=>led3<="0010000"; when others=>led3<="1111111"; end case;case DXT(7 downto 4) iswhen "0000"=>led4<="1000000"; when "0001"=>led4<="1111001"; when "0010"=>led4<="0100100";when "0100"=>led4<="0011001";when "0101"=>led4<="0010010";when "0110"=>led4<="0000010";when "0111"=>led4<="1111000";when "1000"=>led4<="0000000";when "1001"=>led4<="0010000";when others=>led4<="1111111";end case;if SN ='1' then light<="001001";elsecase S ISwhen "00"=>light<="010001";when "01"=> light <="100001";when "10"=> light <="001010";when "11"=> light <="001100";when others=>NULL;end case;end if;end process;end traffic1;五.仿真波形图仿真时序波形图。
EDA交通灯的课程设计
EDA交通灯的课程设计一、课程目标知识目标:1. 让学生理解EDA交通灯的基本原理,掌握交通灯控制系统的设计方法和步骤。
2. 使学生掌握交通灯控制系统中各模块的功能和相互关系,如时钟模块、控制器模块、显示模块等。
3. 帮助学生了解交通灯控制系统的实际应用,提高对电子设计自动化技术的认识。
技能目标:1. 培养学生运用所学知识,设计并实现一个简单的EDA交通灯控制系统的能力。
2. 培养学生使用相关软件(如Multisim、Protel等)进行电路仿真、绘制和调试的能力。
3. 提高学生的团队协作和沟通能力,培养他们在项目实践中解决问题的能力。
情感态度价值观目标:1. 培养学生对电子设计自动化技术的兴趣,激发他们探索未知、创新实践的热情。
2. 培养学生关注社会问题,认识到交通灯控制系统在提高道路通行效率、保障交通安全方面的重要性。
3. 引导学生树立正确的价值观,认识到科技发展应服务于社会、造福于人类。
课程性质:本课程为实践性较强的电子设计课程,以项目为导向,注重培养学生的实际操作能力和团队协作能力。
学生特点:学生具备一定的电子技术基础知识,具有较强的学习兴趣和动手能力,但对EDA技术及其应用尚不熟悉。
教学要求:结合学生特点,采用讲授与实践相结合的教学方法,注重引导学生主动参与、积极探索,提高他们的实际操作能力和创新能力。
在教学过程中,关注学生的个体差异,给予个性化的指导和支持。
通过本课程的学习,使学生能够达到上述课程目标,为后续相关课程的学习和实践奠定基础。
二、教学内容1. 交通灯控制系统概述:介绍交通灯控制系统的基本概念、分类及其在现实生活中的应用。
相关教材章节:第一章 电子设计自动化概述2. EDA技术基础:讲解EDA技术的基本原理、发展历程和常用软件工具。
相关教材章节:第二章 EDA技术基础3. 交通灯控制器设计:a. 时钟模块设计:介绍时钟电路的原理与设计方法。
b. 控制器模块设计:讲解控制器的工作原理、编程方法。
eda交通灯控制器课程设计
eda交通灯控制器课程设计课程设计:EDA交通灯控制器1. 课程背景和目标:EDA交通灯控制器是使用EDA(电子设计自动化)工具进行交通灯控制系统设计的课程。
学习该课程的目标是使学生能够熟练运用EDA工具进行交通灯控制系统设计,并能够理解交通灯控制系统的原理和设计方法。
2. 课程内容和安排:(1) 交通灯控制系统原理介绍:介绍交通灯控制系统的基本原理,包括信号机、信号控制方法和交通流量检测等。
(2) EDA工具介绍:介绍常用的EDA工具,如Verilog、VHDL等,并讲解其基本使用方法。
(3) 交通灯控制器设计流程:介绍交通灯控制器的设计流程,包括需求分析、功能设计、模块设计和系统集成等。
(4) 交通灯控制器设计实践:学生通过实践项目,使用EDA工具设计交通灯控制器。
项目涵盖设计、仿真、验证和生成等环节,学生需要独立完成设计并提交设计报告。
3. 课程教学方法:(1) 理论讲解:通过课堂讲解,介绍交通灯控制系统的原理和设计方法,以及EDA工具的使用方法。
(2) 实践项目:学生通过实践项目,运用所学知识设计交通灯控制器,并进行仿真、验证和生成等环节。
(3) 讨论和案例分析:通过课堂讨论和案例分析,加深学生对交通灯控制系统的理解和应用能力。
(4) 指导和批评:教师对学生的设计进行指导和批评,帮助学生不断提高设计能力。
4. 评估方式:(1) 实践项目报告:学生独立完成实践项目,并提交设计报告,包括设计过程、仿真结果和验证结果等。
(2) 课堂测试:通过课堂测试检验学生对交通灯控制系统原理和EDA工具的理解程度。
(3) 课堂表现:评估学生的课堂出勤情况、学习态度和参与度等。
5. 参考教材:(1) 《交通信号控制原理与技术》高新泽(2) 《EDA与数字电路设计》陈骏等(3) 《数字电路与系统设计》刘敏衡等(4) 《系统设计自动化技术与EDA工具应用》杨学庆等以上是对EDA交通灯控制器课程设计的简要介绍。
课程内容涵盖了交通灯控制系统的原理和设计方法,以及EDA工具的使用方法。
EDA实验 交通灯设计
实验五交通灯控制器设计一、实验目的(1)进一步熟练EDA设计流程、系统仿真及硬件测试分析。
(2)学会用分层次设计的方法设计交通灯控制器。
(3)掌握动态数码管的原理,学会用VHDL语言编程使用数码管。
(4)学习较复杂数字电路系统的设计。
二、实验内容与要求一条主干道,一条乡间公路,组成十字路口,要求保证主干道先通行,有MR(主红),MY(主黄),MG(主绿),CR(乡红),CY(乡黄),CG(乡绿)。
六盏交通灯需要控制;交通灯由绿变红有4秒黄灯亮的时间间隔,由红到绿没有时间间隔;系统有MRCY、MRCG、MYCR、MGCR四个状态;乡间公路右侧各埋有一个传感器,当有车辆通过乡间公路时,发出请求信号s=1,其余时间s=0;平时系统停留在MGCR(主干道通行)状态,当s=1时,经MYCR(黄灯)状态转到MRCG状态,但保证MGCR不短于一分钟;一旦s=0系统将脱离MRCG状态。
随即由MRCY进入MGCR状态,即使s一直为1,MRCG持续时间也不得超过20秒。
三、设计思路/原理图图一、交通灯控制器原理图采用分层设计的方法分为其中jishuqi为倒计数器模块预置数有60、3、19三种。
yimaqi 为8位二进制数译码成8421BCD码的译码模块,dongtaism为动态扫描显示模块,deng 为交通灯状态转移模块。
当s=0时系统处以MGCR状态,一旦s=1且一直有效则状态转移:MGCR——>MYCR——>MRCG——>MRCY——>MGCR。
其中MGCR持续时间为61秒,MYCR持续时间为4秒,MRCG最长持续时间为20秒。
MRCY持续时间为4秒。
四、实验程序(程序来源:王鸿亮6100208031 )(1)倒计数器模块jishuqilibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity jishuqi isport(clk,s:in std_logic;count:out std_logic_vector(7 downto 0);state:out std_logic_vector(1 downto 0));end jishuqi;architecture one of jishuqi issignal st:std_logic_vector(1 downto 0):="00";signal cnt:std_logic_vector(7 downto 0);type states is (st0,st1);signal stx:states;beginprocess(clk,s)beginif clk'event and clk='1' thencase st iswhen "00" =>if s='1' then case stx is when st0=>cnt<="00111100";stx<=st1;when st1=>if cnt>0 then cnt<=cnt-1;else cnt<="00000011";st<="01";end if;when others=>null;end case;else cnt<="00000000";stx<=st0;st<="00";end if;when "01" =>if s='1' then case stx is when st1=>if cnt>0 then cnt<=cnt-1;else cnt<="00010011";st<="10";end if;when others=>null;end case;else case stx is when st1=>if cnt>0 then cnt<=cnt-1;else cnt<="00000000";st<="00";end if;when others=>null;end case;end if; when "10"=> if s='1' then case stx is when st1=>if cnt>0 then cnt<=cnt-1;else cnt<="00000011";st<="11";end if;when others=>null;end case;else cnt<="00000011";st<="11";end if;when "11"=> if cnt>0 then cnt<=cnt-1;else cnt<="00000000";st<="00";stx<=st0;end if; when others=>null;end case;end if;end process;state<=st;count<=cnt;end architecture;(2)交通灯状态转移模块denglibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity deng isport(state:in std_logic_vector(1 downto 0);mg,cr,my,cg,mr,cy:out std_logic ) ;end entity deng ;architecture one of deng isbeginprocess(state)begincase state iswhen "00"=>mg<='1';cr<='1';my<='0';mr<='0';cg<='0';cy<='0'; when "01"=>mg<='0';cr<='1';my<='1';mr<='0';cg<='0';cy<='0'; when "10"=>mg<='0';cr<='0';my<='0';mr<='1';cg<='1';cy<='0'; when "11"=>mg<='0';cr<='0';my<='0';mr<='1';cg<='0';cy<='1'; end case;end process;end architecture one;(5) 八位二进制向八位BCD译码的译码模块yimaqi library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity yimaqi isport(count:in std_logic_vector(7 downto 0);p:out std_logic_vector(7 downto 0));end entity yimaqi;architecture one of yimaqi isbeginprocess(count)variable h:std_logic_vector(7 downto 0);beginh:=count;if h<10 then h:=h;elsif h>=10 and h<20 then h:=h+6;elsif h>=20 and h<30 then h:=h+12;elsif h>=30 and h<40 then h:=h+18;elsif h>=40 and h<50 then h:=h+24;elsif h>=50 and h<60 then h:=h+30;elsif h>=60 and h<70 then h:=h+36;end if;p<=h;end process;end architecture one;(6)动态数据选择器模块dongtaismlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dongtaism isport(clk2:in std_logic;count:in std_logic_vector(7 downto 0);y:out std_logic_vector(2 downto 0);pu:out std_logic_vector(3 downto 0));end entity dongtaism;architecture one of dongtaism issignal y1:std_logic_vector(2 downto 0);type states is (st0,st1);signal stx1:states;beginprocess(clk2)beginif clk2'event and clk2='1' thencase stx1 is when st0=>y1<="000";pu<=count(3 downto 0);stx1<=st1;when st1=>y1<="001";pu<=count(7 downto 4);stx1<=st0;when others=>stx1<=st0;end case;end if;end process;y<=y1; end architecture one ;五、实验步骤1.建立工作库文件夹和编辑设计文件2.编译过程3.系统仿真(1)建立新的波形激励文件。
交通灯的设计(EDA)
目录目录 (1)第一章设计思路 (1)1.1、设计内容及要求 (1)1.2、设计构思 (1)1.3、设计构思框图 (2)第二章单元模块设计与仿真 (3)2.1、时钟分频模块 (3)2.2、5秒倒计时计数器模块 (4)2.3、35秒倒数计时计数器模块 (7)2.4、25秒倒计时计数器模块 (9)2.5、40秒倒计时计数器模块 (11)2.6、20秒倒计时计数器模块 (13)2.7、A方向控制模块 (15)2.8、B方向控制模块 (16)2.9、显示模块 (18)2.10、顶层文件的编写 (21)2.11. 总电路图 (25)第三章调试 (26)3.1、硬件实验 (26)3.2、实验现象 (27)心得体会 (28)参考文献 (29)第一章设计思路1.1、设计内容及要求1. 设计制作一块十字路口的交通信号灯的控制电路的专用芯片。
2. A方向和B方向各设置红(R)、黄(Y)、绿(G)三盏灯,三盏灯按合理的顺序亮灭,并能将灯亮的时间以倒计时的方式显示出来。
3. 两个方向各灯的时间可方便地进行设置和修改。
假设A方向为主干道,车流量大,A方向通行时间比B方向长。
设A方向每次至少通行t1秒,B 方向每次至多通行t2秒,黄灯亮t秒。
1.2、设计构思为了方便A、B方向的车流不堵塞,默认A方向先亮绿灯,同时B方向亮红灯,时间以倒数显示出来,在绿灯时间到达时,通过3秒黄灯,过渡到红灯,使得行驶过程中的车辆有足够的时间停下来。
所以,红灯的时间是另一方向的绿灯时间加上黄灯的时间。
用Ga、Ya、Ra依次代表主干道A方向的绿灯、黄灯和红灯。
用Gb、Yb、Rb依次代表支干道B方向的绿灯、黄灯和红灯。
根据A、B方向的车流量大小,令A方向绿灯亮30S,黄灯亮3s,红灯亮28S;B方向绿灯亮25S,黄灯3s,红灯33s。
如图1-1,图中1代表点亮,0代表灭。
A方向(主干道)B方向(支干道)时间Ga Ya Ra Gb Yb Rb 时间35S 1 0 0 0 0 1 40S 5S 0 1 0 1 0 0 20S25S 0 0 1 0 1 0 5S图1-1 交通灯亮灭时间安排1.3、设计构思框图图1-2 设计构思框图如图所示,通过A、B方向控制器分别控制A和B方向各自的时间倒数模块以及时间显示。
EDA交通灯课程设计
EDA 交通灯课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握交通灯系统的原理与设计流程。
2. 学生能够运用所学知识,设计并实现一个具备基本功能的交通灯控制系统。
3. 学生了解交通灯控制系统在实际应用中的重要性,理解不同颜色灯亮灭的时间间隔及其意义。
技能目标:1. 学生能够运用EDA软件进行电路设计,完成交通灯控制系统的原理图与PCB布线图绘制。
2. 学生能够通过编程实现对交通灯控制系统的仿真与调试,解决简单问题。
3. 学生能够运用团队协作、沟通技巧,共同完成课程设计任务,提高实践操作能力。
情感态度价值观目标:1. 学生培养对电子设计自动化技术的兴趣,激发创新意识和探索精神。
2. 学生通过实践操作,培养动手能力、问题解决能力和自主学习能力。
3. 学生认识到遵守交通规则的重要性,增强社会责任感和安全意识。
课程性质:本课程设计为实践性课程,注重培养学生的动手能力和团队协作能力。
学生特点:初三学生,具有一定电子基础知识,好奇心强,喜欢动手实践。
教学要求:结合学生特点,课程设计应注重理论与实践相结合,鼓励学生自主探究和团队协作,提高学生的综合能力。
通过分解课程目标为具体学习成果,使学生在完成课程设计的过程中达到预期目标。
二、教学内容1. 电子设计自动化(EDA)基本原理介绍:包括EDA的概念、发展历程、应用领域。
2. 交通灯控制系统原理:讲解交通灯的工作原理、控制逻辑、信号灯颜色时间设置。
3. EDA软件操作:学习并掌握EDA软件的使用,如原理图绘制、PCB布线图设计。
4. 交通灯控制系统设计:根据实际需求,设计具备基本功能的交通灯控制系统。
- 知识点:数字电路、逻辑门、时序逻辑、微控制器应用。
- 教材章节:第四章 电子设计自动化,第三节 数字电路设计。
5. 编程与仿真:学习编程实现对交通灯控制系统的仿真与调试。
- 知识点:基础编程知识、仿真软件使用。
- 教材章节:第五章 嵌入式系统设计,第一节 嵌入式编程基础。
EDA实验报告:基于VHDL语言的交通灯控制系统设计与实现
图为k1=0时的输出状态s1,输出恒为011110。即亮灯为R1,y2。保持时间1S。
(k2=0)
上图为k2=0时的输出状态s2,输出恒为101011。即亮灯为G1,R2。保持时间2S。
(k3=0)
上图为k3=0时的输出状态s3,输出恒为110011。即亮灯为R1,G2。保持时间1S。
四、小结及心得体会
else
if counter<5 then
next_state<=s3;
else
next_state<=s0;
end if;
end if;
end if;
end if;
end if;
end case;
end process;
ouput:process(current_state)
begin ——显示程序
begin
u1: jiaotongdeng port map(
clk=>clki,
k0=>k0,
k1=>k1,
k2=>k2,
k3=>k3,
r1=>r1,r2=>r2,g1=>g1,g2=>g2,y1=>y1,y2=>y2
);
u2: div port map(clk=>clk1,clk_out=>clki);
end if;
end if;
end if;
when s3=>
if k0='0' then
next_state<=s0;
else
if k1='0' then
next_state<=s1;
eda交通控制灯课程设计
eda 交通控制灯课程设计一、课程目标知识目标:1. 学生能够理解并掌握交通控制灯(红绿灯)的基本原理和工作机制。
2. 学生能够描述EDA(电子设计自动化)工具在交通控制灯设计中的应用。
3. 学生能够解释交通控制灯系统中涉及的基础电子元件及其功能。
技能目标:1. 学生能够运用EDA软件完成交通控制灯电路图的绘制。
2. 学生能够通过编程实现对交通控制灯系统的简单控制逻辑。
3. 学生能够运用团队协作和问题解决技能,设计和优化交通控制灯系统。
情感态度价值观目标:1. 培养学生对电子工程领域的兴趣,激发创新意识和探索精神。
2. 增强学生的环保意识和交通安全意识,认识到交通控制灯在现代社会中的重要性。
3. 培养学生的团队协作意识,学会尊重他人意见,共同解决问题。
课程性质:本课程结合了电子技术与实际应用,注重理论与实践相结合,以项目为导向,提升学生的综合技能。
学生特点:假设学生为初中年级,具有一定的电子元件知识基础,对新技术的学习充满好奇,具备基本的计算机操作能力。
教学要求:课程需注重实践性,通过互动式教学和团队协作,使学生在动手实践中理解和掌握知识,提高问题解决能力。
同时,强调安全意识和责任感,培养符合社会主义核心价值观的技能人才。
二、教学内容1. 交通控制灯基础知识:- 红绿灯工作原理介绍- 交通控制灯系统的组成与功能- 交通控制灯在交通安全中的作用2. EDA工具的应用:- EDA软件的认识与基本操作- 交通控制灯电路图的绘制方法- 电路仿真与调试技巧3. 交通控制灯电路设计与制作:- 基本电子元件的选择与应用- 交通控制灯控制逻辑的编写与实现- 电路板设计与焊接技巧4. 项目实践与优化:- 团队协作设计与制作交通控制灯系统- 控制逻辑优化与功能拓展- 作品展示与评价教学内容安排与进度:第一课时:交通控制灯基础知识学习第二课时:EDA软件的认识与基本操作第三课时:交通控制灯电路图绘制与仿真第四课时:电路设计与制作第五课时:项目实践与优化第六课时:作品展示与评价教材章节关联:教学内容与教材中“电子技术应用”章节相关,涉及电子元件、电路设计、EDA工具应用等方面的知识。
EDA实验交通灯设计报告
EDA原理及应用实验报告题目:交通灯控制器专业:电子信息工程班级:姓名:学号:一、设计题目:交通灯控制器二、设计目标:1、设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。
2、红、绿、黄发光二极管作信号灯。
3、主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。
4、主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。
5、在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。
三、设计原理:(含系统总的原理图)由两个分频器模块,三个计数器模块及它的选择器,一个扫描数码管模块,和一个红绿灯控制模块连接而成。
RTL状态图四、设计内容:(含状态转换图、软件流程图、说明文字等,每单独模块的图标和VHDL程序;最后为总体程序框图)分频器1LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DVF ISPORT(CLK:IN STD_LOGIC;--D:IN STD_LOGIC_VECTOR(3 DOWNTO 0);FOUT:OUT STD_LOGIC);END;ARCHITECTURE one OF DVF ISSIGNAL FULL:STD_LOGIC;BEGINP_REG:PROCESS(CLK)V ARIABLE CNT8:INTEGER RANGE 48000000 DOWNTO 0;BEGINIF CLK'EVENT AND CLK='1' THENIF CNT8=24000000 THENCNT8:=0;FULL<='1';ELSE CNT8:=CNT8+1;FULL<='0';END IF;END IF;END PROCESS P_REG;P_DIV:PROCESS(FULL)V ARIABLE CNT2:STD_LOGIC;BEGINIF FULL'EVENT AND FULL='1' THENCNT2:=NOT CNT2;IF CNT2='1' THEN FOUT<='1';ELSE FOUT<='0';END IF;END IF;END PROCESS P_DIV;END;说明:采用的是48M时钟输入,作为后面的时钟信号。
EDA课程设计-交通灯-图文
EDA课程设计-交通灯-图文交通信号灯控制电路设计一、概述城市道路交叉口是城市道路网络的基本节点,也是网络交通流的瓶颈。
目前,大部分无控制交叉口都存在高峰小时车流混乱、车速缓慢、延误情况严重、事故多发、通行能力和服务水平低下等问题。
特别是随着城市车流量的快速增长,城市无控制道路交叉口的交通压力越来越大。
因此,做好基于EDA技术平台的交叉口信号控制设计是缓解交通阻塞、提高城市道路交叉口车辆通行效率的有效方法。
交通信号控制的目的是为城市道路交叉口(或交通网络)提供安全可靠和有效的交通流,通常最为常用的原则是车辆在交叉口的通过量最大或车辆在交叉口的延误最小。
交通信号灯控制电路是显示主干道和支干道交替放行时间并用试验箱左上角的彩灯来红黄绿支红代替信号灯的一种实际电路。
设计一个基于FPGA的红绿灯交通信号控制器。
假设某个十干黄绿道字路口是由一条主干道和一条次干道汇合而成,在每个方向设置红绿黄三种信号灯,红灯亮禁止通行,绿灯亮允许通行。
黄灯亮允许行驶中车辆有时间停靠到禁止线以外。
第-1-页共18页二、方案设计与论证在硬件时钟电路的基础上,采用分频器,输出一个1S的时钟信号,在时钟信号的控制下,实现主干道和支干道红绿灯交替显示。
红绿灯交通灯控制器层次设计:EDA技术的基本设计方法有电路级设计方法和系统级设计方法。
电路级设计方法已经不能适应新的形势,本系统采用的是系统级层次设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片FPGA芯片实现,首先用VHDL语言编写各个功能模块程序,最后通过综合器和适配器生成最终的目标器件,然后用顶层原理图将各功能模块连接起来。
下面给出各模块的VHDL设计过程和仿真结果。
1、系统时序发生电路clk_gen的VHDL设计在红绿灯交通信号控制系统中,大多数的情况是通过自动控制的方式指挥交通的。
因此,为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作。
eda设计项目_交通灯设计
eda设计项目_交通灯设计eda设计项目_交通灯设计EDA与VHDL设计实验报告交通灯控制器方案一一、设计任务要求交通灯控制器:用于十字路口的交通灯控制器。
实验要求:1.东西方向各有一组红,黄,绿灯用于指挥交通,红,黄,绿的持续时间分别为25s,5s,20s。
2.当有紧急情况(如消防车)时,两个方向均为红灯亮,计时停止,当特殊情况结束后,控制器恢复原来状态,正常工作。
3.组数码管,以倒计时方式显示两个方向允许通行或禁止通行的时间。
二、设计思路及总体结构框图设计思路:1.硬件:由设计任务要求可知,总体输入电路有:(1)在开始计时之前的等待状态,复位键reset接低电位,接通电源后,首先要将它接高电位,表示计时开始。
(2)当按一下(on_off)键,表示紧急情况发生,两个方向均为红灯亮,计时停止,当再次按下(on_off)键时,控制器恢复原来状态,正常工作。
输出电路:(1)由于东西和南北方向都要显示时间,因此需要4个数码管,这样在设计中就需要四条输出线choose4,用来选通指定一个LED七段显示数码管。
(2)显示器的每一位都采用LED七段显示数码管进行显示,每一个LED七段显示数码管都要有七条输出线控制,一共使用4个七段数码管,故输出电路使用四个七位输出信号:showtime1,showtime2,showtime3,showtime4。
(3)东西和南北方向都有交通灯亮的情况,故输出电路中要有两个状态控制信号state1,state2分别控制东西和南北的灯,每个方向上有4个灯(增加了左、右转弯显示控制功能),所以state1,state2的类型应该是4位数组型的。
东西方向交通灯外部电路图如下:State1 State2 Showtime1 Showtime2 Showtime3 Showtime4 Choose4 clk 4/ stas reset 南北方向交通灯on_off 4/ 7/ 7/ 7/ 7/ 4/ 2.软件:(1)在VHDL设计描述中,采用自顶向下的设计思路,该思路,首先要描述顶层的接口,上面的描述已经规定了交通灯控制的输入输出信号:输入信号:复位开关信号reset;紧急情况控制信号on_off;外部时钟信号clk。
EDA课程设计之交通灯设计报告
EDA综合设计与实践一、设计目的和要求1.熟练掌握QuartusII软件的使用方法和系统总体设计。
2.学会设计较复杂的数字系统,用Verilog HDL描述语言编写设计代码,并综合仿真验证设计,用FPGA试验箱验证设计。
3.学习FPGA试验箱的使用,各种电路图的引脚接法及其功能。
4.本实验要求学生以FPGA器件为目标器件,设计典型的数字系统。
本设计选题为交通灯控制系统设计。
二、设计方案:方案一:(1)明确系统的功能图1-1所示为位于主干道和支干道的十字路口交通灯系统,支干道两边是安装传感器S,要求优先保证主干道的畅通。
平时处于主干道绿灯、支干道红灯的状态。
当支干道有车时,传感器发出信号S=1,主干道绿灯先转换成黄灯再转换成红灯,支干道由红灯转换为绿灯,支干道绿灯亮不超过30s,主干道每次通行不少于60s(在此期间,不管S是否有信号,都不改状态)。
(2)画状态转换图说明:1)Tl:主干道绿灯亮的最短时间间隔,不少于60s;2)Ts:支干道绿灯亮的最长时间间隔不多于30s。
3)T y:主干道或支干道黄灯亮的时间间隔为5s4)HR、HY、HG分别表示主干道红黄绿灯;5)FR、FY、FG分别表示支干道红黄绿灯。
注:H表示Header,F表示Follower,R表示Red,Y表示Yellow,G表示Green交通灯控制单元控制过程分四个阶段:分别用S0,S1,S2,S3表示:S0:主干道绿灯亮,支干道红灯亮,此时若支干道有车等待,且主干道已亮足时间Tl,则控制器发出状态转换信号,输出从S0转换到S1。
S1:主干道黄灯亮,支干道红灯亮,进入此状态,黄灯亮足规定时间间隔Ty时,控制器发出状态转换信号St,输出从此状态S1到S2。
S2:支干道绿灯亮,主干道红灯亮,若此时支干道继续有车,则继续保持此状态,但支干道绿灯亮时间不超过Ts时间间隔,否则控制单元发出状态转换信号St,使输出转换到S3状态。
S3:支干道黄灯亮,主干道红灯亮,此时状态与S1状态持续时间间隔相同,均为Ty,时间到时,控制器发出St信号,输出从状态S3回到S0状态。
EDA交通灯设计(全)
目录一.方案分析与对比 (2)1.1方案分析 (2)1.2方案对比 (2)二.整体设计论述 (3)三.单元模块设计与仿真 (6)3.1时钟分频模块 (6)3.2交通灯控制及计时模块 (7)3.3扫描显示译码模块 (9)3.4顶层文件的编写 (10)四.硬件实验方案及实验结果 (13)4.1硬件实验方案 (13)4.2实验结果 (15)五.收获和体会 (15)六.参考文献 (13)附录(程序代码) (17)一.方案分析与对比§1.1方案分析通过分析可以知道,所要设计的交通信号灯控制电路要能够适用于由一条主干道和一条支干道的汇合点形成的十字交叉路口。
能够做到主、支干道的红绿灯闪亮的时间不完全相同,在绿灯跳变红灯的过程中能够用黄灯进行过渡,使得行驶过程中的车辆有足够的时间停下来。
还要求在主、支干道各设立一组计时显示器,能够显示相应的红、黄、绿倒计时。
可以利用VHDL语言合理设计系统功能,使红黄绿灯的转换有一个准确的时间间隔和转换顺序。
§1.2方案对比实现路口交通灯系统的控制方法很多,可以用标准逻辑器件、可编程序控制器和单片机等方案来实现。
若用单片机方案来实现的话,模型可以由电源电路、单片机主控电路、无线收发控制电路和显示电路四部分组成。
在电源电路中,需要用到+5V的直流稳压电源,无线收发控制电路和显示电路应由编码芯片和数据发射模块两部分组成,主控电路的主要元件为AT89C51。
硬件设计完成后还要利用计算机软件经行软件部分的设计才能够实现相应的功能。
虽然利用单片机系统设计的交通灯控制器相对来说较稳定,能够完成较多功能的实现,但这些控制方法的功能修改及调试都需要硬件电路的支持,在一定程度上增加了功能修改及系统设计与调试的困难。
相反,使用基于FPGA的设计方法具有周期短,设计灵活,易于修改等明显的的优点。
而且,随着FPGA器件、设计语言和电子设计自动化工具的发展和改进,越来越多的电子系统采用FPGA来设计。
eda交通灯控制器设计
EDA交通灯控制器设计1. 简介交通灯控制器是城市交通系统中常见的设备之一,用于控制交叉路口的交通信号灯。
其中,EDA(Electronic Design Automation)技术在交通灯控制器的设计和开发中起到了重要的作用。
本文将介绍如何使用EDA技术设计一个高效可靠的交通灯控制器。
2. EDA技术在交通灯控制器设计中的应用EDA技术是通过计算机辅助设计软件来简化和自动化电子系统设计的过程。
在交通灯控制器设计中,EDA技术可以帮助工程师完成诸如原理图设计、电路仿真、PCB布局、逻辑综合等任务,大大提高了设计的效率和准确性。
2.1 原理图设计在交通灯控制器的设计中,首先需要进行原理图设计。
EDA软件可以提供丰富的元件库和易于使用的画图工具,使得工程师能够快速地绘制出交通灯控制器的原理图。
通过原理图设计,可以清晰地表示出交通灯控制器的各个部分之间的连接和信号流动关系。
2.2 电路仿真完成原理图设计之后,可以利用EDA软件进行电路仿真。
通过建立适当的电路模型和设置合适的仿真参数,可以验证交通灯控制器的设计是否符合预期。
电路仿真可以帮助工程师检测潜在的问题和优化设计,在实际制造之前发现并解决可能存在的故障。
2.3 PCB布局PCB(Printed Circuit Board)布局是将原理图设计转化为实际电路板的过程。
EDA软件可以根据原理图自动生成PCB布局,将各个元件的位置和连接关系准确地布置在电路板上。
通过使用EDA技术进行PCB布局,可以确保交通灯控制器的电路连接正确可靠,并且满足电磁兼容性和散热要求。
2.4 逻辑综合与优化在交通灯控制器的设计中,逻辑综合是将高级描述语言代码转化为低级逻辑网表的过程。
EDA软件可以根据设计人员提供的代码进行逻辑综合,并进行逻辑优化。
通过逻辑综合与优化,可以减少电路的延迟、功耗、面积等方面的问题,提高交通灯控制器的性能和效率。
3. EDA交通灯控制器设计流程3.1 设计需求分析在开始设计交通灯控制器之前,需要进行设计需求分析。
EDA课程设计交通灯
实验报告设计题目:交通信号控制器班级:学号:姓名:指导老师:设计时间:2023年4月交通信号控制器的VHDL设计一、设计任务:模拟十字路口交通信号灯的工作过程,运用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。
规定:(1)交通灯从绿变红时,有4秒黄灯亮的间隔时间;(2)交通灯红变绿是直接进行的,没有间隔时间;(3)主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒;(4)在任意时间,显示每个状态到该状态结束所需的时间。
支干道主干道图1 路口交通管理示意图表1 交通信号灯的4种状态二、设计目的:设计交通灯控制系统重要是为了实现城市十字交叉路口红绿灯的控制。
通过对QuartusII软件使用方法与技巧的学习,掌握VHDL程序设计的实现,熟悉可编程逻辑器件的使用。
同时加深对交通灯控制系统的了解与应用。
三、设计方案:图2 交通信号灯控制器的原理框图信号灯输出图3 交通信号灯控制器程序原理框图四、程序清单和说明:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TRAFFIC ISPORT (CLK: IN STD_LOGIC;LED7S1: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--数码管高位显示数字LED7S2: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--数码管低位显示数字LIGHT: OUT STD_LOGIC_VECTOR(5 DOWNTO 0));--各交通灯显示END ENTITY;ARCHITECTURE ONE OF TRAFFIC ISTYPE STATES IS( STA, STB, STC, STE);--定义状态变量SIGNAL ST0:STATES;SIGNAL ST1:STATES;SIGNAL FULL: STD_LOGIC;SIGNAL FOUT: STD_LOGIC;时钟输出信号(秒频)SIGNAL TIME: STD_LOGIC_VECTOR(6 DOWNTO 0);时间计数值SIGNAL TIME_LEFT: STD_LOGIC_VECTOR(6 DOWNTO 0);显示时间剩余值SIGNAL T_HIGH:STD_LOGIC_VECTOR(1 DOWNTO 0);高位显示SIGNAL T_LOW:STD_LOGIC_VECTOR(6 DOWNTO 0);低位显示BEGINPROCESS(CLK) --秒脉冲产生进程(分频作用)V ARIABLE CNT8: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINIF CLK'EVENT AND CLK='1' THENIF CNT8="11111111" THENCNT8:="00000000"; --当CNT8计数计满时,给计数器CNT8预置数FULL<='1'; --同时使溢出标志信号FULL输出为高电平ELSE CNT8:=CNT8+1; --否则继续作加1计数FULL<='0'; --且输出溢出标志信号FULL为低电平END IF;END IF;END PROCESS;PROCESS(FULL)V ARIABLE CNT2: STD_LOGIC;BEGINIF FULL'EVENT AND FULL='1'THENCNT2:=NOT CNT2;IF CNT2='1' THEN FOUT<='1'; ELSE FOUT<='0';END IF;END IF;END PROCESS;--FOUT输出是时钟信号PROCESS(FOUT) --计数模块。
eda交通灯设计
EDA交通灯课程设计实验报告学院:通信与信息工程学院专业:电子信息工程班级:0120902目录交通灯控制系统的设计 (2)1.设计要求 (2)1.1 实现基本要求及扩展 (2)1.2 附加要求 (2)2 设计思路 (2)3 状态机变化图 (3)3.1 状态机变化图 (3)4 设计步骤及程序 (4)4.1 主体程序代码 (4)4.2 分频程序代码 (6)4.3 计数器程序代码 (6)4.4 二选一数据选择器程序代码 (7)when others=> seg<=b;dig<="11101110"; (7)end case; (7)end process; (7)end; (7)4.5 控制系统电路图 (7)5 硬件实现及调试结果 (8)5.1 硬件测试结构示意 (8)5.2 软件仿真结果 (8)6. 心得体会 (9)交通灯控制系统的设计1.设计要求1.1 实现基本要求及扩展1.能显示十字路口东西、南北两个方向的红、黄、绿灯的指示状态,用两组红、黄、绿三色灯作为两个方向的红、黄、绿灯;每次通行时间为15S,2.能实现正常的倒计时功能,用两组数码管作为东西、南北向的倒计时显示。
其中,黄灯:3S。
3.当出现一方出现红灯,另一方出现绿灯时,出现红灯的之路左转弯灯亮。
4.能实现特殊状态的功能。
按下Sw0键后,能实现以下特殊功能:(1)四个数码管的显示都为0,(2)东西、南北路口均显示红灯状态;5.用VHDL语言设计上述功能的交通灯控制器,并用含有四个状态的状态机;1.2 附加要求1.时钟输入:clkin=1KHz;2.采用分频器分成:1Hz,然后提供给系统。
2 设计思路交通灯控制器的电路控制原理框图如图1所示,主要包括分频器模块、计数器模块、主控制器模块和二选一数据选择器模块。
计数器模块以秒为单位倒计时,当计数值依次加一,直至“1111”,再进行下次的计数循环。
分频器模块将1000HZ的频率转化为1HZ。
EDA技术交通灯课程设计
EDA技术交通灯课程设计设计一个交通灯控制器要求:A方向为主干道,B方向为支干道。
分设红(R)、黄(Y)、绿(G)和左拐(L)四盏灯。
1表示灯亮,0表示灯灭。
四灯的点亮顺序为:绿灯→黄灯→左拐灯→黄灯→红灯,A方向四个时间为55秒(红)、40秒(绿)、5(黄)秒和15(左拐灯)秒;B方向的四个时间为65秒(红)、30秒(绿)、5秒(黄)和15(左拐灯)秒。
时间要改变只要改变计数器的预知数即可。
*/信号定义与说明:CLK:同步时钟EN :使能信号,为1,则控制器开始工作LAMPA[3:0]:控制A方向的4盏灯的亮灭;其中LAMPA(0)到LAMPA(3)分别控制A方向的左拐灯、绿灯、黄灯和红灯。
LAMPB[3:0]:控制B向的4盏灯的亮灭;其中LAMPB0)到LAMPB3)分别控制B向的左拐灯、绿灯、黄灯和红灯。
ACOUNT[7:0]:用于A方向交通灯的时间显示,宽8位,可驱动2个数码管。
BCOUNT[7:0]:用于B向交通灯的时间显示,宽8位,可驱动2个数码管。
1、交通灯VHDL 语言程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity traffic isport( clk,en:in std_logic;lampa,lampb:out std_logic_vector(3 downto 0);acount,bcount:out std_logic_vector(7 downto 0));end entity;architecture exemplar of traffic issignal numa,numb:std_logic_vector(7 downto 0);signal tempa,tempb:std_logic;signal counta,countb:std_logic_vector(2 downto 0);signal ared,bred,agreen,bgreen,ayellow,byellow,aleft,bleft:std_logic_vector(7 downto 0); (上电)计数常数赋值等待时钟信号等待使能位EN =1 Tempa=0? 计数值-1=0?计数值更新状态更新 输出更新Tempa=1是否否计数值-1 Tempa=0 是赋初始状态是否beginacount <= numa;bcount <= numb;x1: process(en)beginif en = '0' thenared <= "01010100";ayellow <= "00000100";agreen <= "00111001";aleft <= "00010100";bred <= "01100100";byellow <= "00000100";bgreen <= "00101001";bleft <= "00010100";end if;end process;x2:process(clk,en)beginif clk ='1' and clk'event thenif en ='1' thenif tempa ='0' thentempa <= '1';case (counta) iswhen "000" => numa <= agreen;lampa <= "0010";counta <= "001";when "001" => numa <= ayellow;lampa <= "0100";counta <= "010";when "010" => numa <= aleft;lampa <= "0001";counta <= "011";when "011" => numa <= ayellow;lampa <= "0100";counta <= "100";when "100" => numa <= ared;lampa <= "1000";counta <= "000";when others => lampa <= "1000";end case;elseif (numa > 1) thenif numa(3 downto 0) = 0 thennuma(3 downto 0) <= "1001";numa(7 downto 4) <= numa(7 downto 4) - 1;elsenuma(3 downto 0) <= numa(3 downto 0) - 1;end if;elseif numa = 1 thentempa <= '0';numa <= numa - 1;end if;end if;end if;elselampa <= "1000";counta <= "000";tempa <= '0';end if;end if;end process x2;x3:process(clk,en)beginif clk ='1' and clk'event thenif en ='1' thenif tempb ='0' thentempb <= '1';case countb iswhen "000" => numb <= bred;lampb <= "1000";countb <= "001";when "001" => numb <= bgreen;lampb <= "0010";countb <= "010";when "010" => numb <= byellow;lampb <= "0100";countb <= "011";when "011" => numb <= bleft;lampb <= "0001";countb <= "100";when "100" => numb <= byellow;lampb <= "0100";countb <= "000";when others => lampb <= "1000";end case;elseif (numb > 1) thenif numb(3 downto 0) = 0 thennumb(3 downto 0) <= "1001";numb(7 downto 4) <= numb(7 downto 4) - 1;elsenumb(3 downto 0) <= numb(3 downto 0) - 1;end if;elseif numb = 1 thentempb <= '0';numb <= numb - 1;end if;end if;end if;elselampb <= "1000";countb <= "000";tempb <= '0';end if;end if;end process x3;end architecture;library ieee;use ieee.std_logic_1164.all;entity bin27seg isport(data_in:in std_logic_vector(3 downto 0);data_out:out std_logic_vector(6 downto 0));end entity;architecture bin27seg_a of bin27seg isbeginprocess(data_in)begindata_out<=(others=>'1');case data_in iswhen "0000"=>data_out<="0111111";when "0001"=>data_out<="0000110";when "0010"=>data_out<="1011011";when "0011"=>data_out<="1001111";when "0100"=>data_out<="1100110";when "0101"=>data_out<="1101101";when "0110"=>data_out<="1111100";when "0111"=>data_out<="0000111";when "1000"=>data_out<="1111111";when "1001"=>data_out<="1100111";when "1010"=>data_out<="1110111";when "1011"=>data_out<="1111100";when "1100"=>data_out<="1011000";when "1101"=>data_out<="1011110";when "1110"=>data_out<="1111001";when "1111"=>data_out<="1110001";when others=>null;end case;end process;end bin27seg_a;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity tc isport(en,clk:in std_logic;lampa,lampb:out std_logic_vector(3 downto 0);Age,Ashi,Bge,Bshi:out std_logic_vector(6 downto 0)); end entity;architecture a of tc iscomponent traffic isport( clk,en:in std_logic;lampa,lampb:out std_logic_vector(3 downto 0);acount,bcount:out std_logic_vector(7 downto 0));end component;component bin27seg isport(data_in:in std_logic_vector(3 downto 0);data_out:out std_logic_vector(6 downto 0));end component;signal x,y:std_logic_vector(7 downto 0);beginU1:traffic port map(clk,en,lampa,lampb,x,y);U2:bin27seg port map(x(3 downto 0),Age);U3:bin27seg port map(x(7 downto 4),Ashi);U4:bin27seg port map(y(3 downto 0),Bge);U5:bin27seg port map(y(7 downto 4),Bshi);end a;2、交通灯控制器波形木兰萦香2013.01.08。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA交通灯课程设计实验报告学院:通信与信息工程学院 专业:电子信息工程班级:0120902目 录交通灯控制系统的设计 11.设计要求 11.1 实现基本要求及扩展 11.2 附加要求 12 设计思路 13 状态机变化图 23.1 状态机变化图 24 设计步骤及程序 34.1 主体程序代码 34.2 分频程序代码 54.3 计数器程序代码 64.4 二选一数据选择器程序代码 7when others=> seg<=b;dig<="11101110"; 8end case; 8end process; 8end; 84.5 控制系统电路图 85 硬件实现及调试结果 85.1 硬件测试结构示意 85.2 软件仿真结果 96. 心得体会 9交通灯控制系统的设计1.设计要求1.1 实现基本要求及扩展1.能显示十字路口东西、南北两个方向的红、黄、绿灯的指示状态,用两组红、黄、绿三色灯作为两个方向的红、黄、绿灯;每次通行时间为15S,2.能实现正常的倒计时功能,用两组数码管作为东西、南北向的倒计时显示。
其中,黄灯:3S。
3.当出现一方出现红灯,另一方出现绿灯时,出现红灯的之路左转弯灯亮。
4.能实现特殊状态的功能。
按下Sw0键后,能实现以下特殊功能:(1)四个数码管的显示都为0,(2)东西、南北路口均显示红灯状态;5.用VHDL语言设计上述功能的交通灯控制器,并用含有四个状态的状态机;1.2 附加要求1.时钟输入:clkin=1KHz;2.采用分频器分成:1Hz,然后提供给系统。
2 设计思路交通灯控制器的电路控制原理框图如图1所示,主要包括分频器模块、计数器模块、主控制器模块和二选一数据选择器模块。
计数器模块以秒为单位倒计时,当计数值依次加一,直至“1111”,再进行下次的计数循环。
分频器模块将1000HZ的频率转化为1HZ。
数据选择器模块完成数码管个位和十位的seg选择,从而完成两位数字的显示。
核心部分是主控制模块。
具体控制情况见表1。
图1 电路控制原理框图状态干道1干道2时间/s 10100001红灯与左转灯亮绿灯亮1200100010红灯亮黄灯亮301001100绿灯亮红灯与左转灯亮1200001010黄灯亮红灯亮3表1 交通灯控制表3 状态机变化图3.1 状态机变化图根据交通灯的流程图,可以得到如图2所示的控制状态转换图。
从图2的状态转换可以看出,交通灯电路应该能够具有以下几个功能:计数功能、状态控制功能(实现交通信号灯的状态控制和计时器控制)、译码功能及二选一数据选择器(实现4位数码管的显示功能)。
对于实现上述功能的交通信号灯控制器电路,需要设计以下各个电路单元。
图2控制状态转换图4 设计步骤及程序4.1 主体程序代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zhu isport(QI:in std_logic_vector(3 downto 0);clk,reset:in std_logic;segshi,segge:out std_logic_vector(7 downto 0);led:out std_logic_vector(7 downto 0));end;architecture zhuti of zhu issignal state,led1:std_logic_vector(7 downto 0);signal seg1:std_logic_vector(7 downto 0);beginshiwei:process(clk,QI,reset)variable seg2:std_logic_vector(7 downto 0);beginif reset='0' then seg2:="00111111";elseif QI="0000" then seg2:="00000110";end if;if QI="0011" then seg2:="00111111";end if;end if;segshi<=seg2;end process;gewei:process(clk,QI,reset)beginif reset='0' then seg1<="00111111";elseif (QI="0010" or QI="1100" or QI="1111") then seg1<="00111111";end if;--0if (QI="0001" or QI="1011" or QI="1110") then seg1<="00000110";end if;--1if (QI="0000" or QI="1010" or QI="1101") then seg1<="01011011";end if;--2if QI="1001" then seg1<="01001111";end if;--3if QI="1000" then seg1<="01100110";end if;--4if QI="0111" then seg1<="01101101";end if;--5if QI="0110" then seg1<="01111101";end if;--6if QI="0101" then seg1<="00000111";end if;--7if QI="0100" then seg1<="01111111";end if;--8if QI="0011" then seg1<="01101111";end if;--9end if;segge<=seg1;end process;ledy:process(clk,reset)beginif reset='0' then state<="10100001";elsif clk'event and clk='1' thencase state iswhen "10100001"=> led1<=state;if QI="1011" then state<="00100010";end if;when "00100010"=> led1<=state;if QI="1110" then state<="01001100";end if;when "01001100"=> led1<=state;if QI="1011" then state<="00001010";end if;when "00001010"=> led1<=state;if QI="1110" then state<="10100001";end if;WHEN OTHERS=>NULL;end case;end if;led<=led1;end process;end;4.2 分频程序代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity fen isport(clkin:in std_logic;clkout:out std_logic);end fen;architecture a of fen issignal outq:std_logic:='0';signal countq:std_logic_vector(9 downto 0):="0000000000";beginprocess(clkin)beginif clkin'event and clkin='1'thenif countq/=499 thencountq<=countq+1;elseoutq<=not outq;countq<=(others=>'0');end if;end if;end process;clkout<=outq;end a;4.3 计数器程序代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity tim isport (clk:in std_logic;QO:out std_logic_vector(3 downto 0));end ;architecture jishuy of tim issignal Q1:std_logic_vector(3 downto 0);beginprocess(clk) beginif clk'event and clk='1'then Q1<=Q1+1;end if;end process;QO<=Q1;end jishuy;4.4 二选一数据选择器程序代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity xuan isport(a,b:in std_logic_vector(7 downto 0);clk:in std_logic;dig,seg:out std_logic_vector(7 downto 0));end;architecture fhi of xuan isbeginprocess(clk)Begincase clk iswhen '0'=> seg<=a;dig<="11011101";when others=> seg<=b;dig<="11101110";end case;end process;end;4.5 控制系统电路图根据以上代码,进行编译,后得到如图3的电路原理图,我们可以明显的看出,由分频器,数据选择器,计数器,主控器四个部分组成的电路原理图。