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. 编程与仿真:学习编程实现对交通灯控制系统的仿真与调试。
- 知识点:基础编程知识、仿真软件使用。
- 教材章节:第五章 嵌入式系统设计,第一节 嵌入式编程基础。
- 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的电路原理图,我们可以明显的看出,由分频器,数据选择器,计数器,主控器四个部分组成的电路原理图。