EDA交通灯控制器课程设计
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. 学生通过小组合作,提高沟通协调能力和团队协作能力。
3. 学生掌握基本电路调试方法,具备解决实际问题的能力。
情感态度价值观目标:1. 学生培养对电子设计与应用的兴趣,激发创新意识。
2. 学生认识到交通灯在保障交通安全、提高道路通行效率方面的重要性,增强社会责任感。
3. 学生在学习过程中,培养严谨、细致、勇于探索的科学态度。
本课程针对初中年级学生,结合学科特点,注重理论与实践相结合,以提高学生的动手能力和创新能力。
在教学过程中,教师需关注学生的个体差异,激发学生的学习兴趣,鼓励学生积极参与讨论和实践,培养其团队协作能力。
通过本课程的学习,期望学生能够掌握交通灯的基本原理,提高电子设计与应用能力,并树立正确的价值观。
二、教学内容本章节教学内容主要包括以下三个方面:1. 交通灯基本原理:- 介绍交通灯的起源、发展及其在现代交通中的应用。
- 讲解交通灯的信号控制原理,包括红绿灯的切换机制和时序控制。
2. EDA软件应用:- 介绍EDA软件的基本功能和使用方法。
- 结合教材章节,教授如何使用EDA软件进行交通灯电路设计与仿真。
3. 实践操作与小组讨论:- 安排学生进行交通灯电路设计实践,指导学生完成电路搭建、调试与优化。
- 组织小组讨论,让学生分享设计心得,互相学习,提高团队协作能力。
教学大纲安排如下:第一课时:交通灯基本原理介绍,占总课时的1/4。
第二课时:EDA软件应用教学,占总课时的1/4。
第三课时:实践操作与小组讨论,占总课时的1/2。
教学内容与教材紧密关联,确保科学性和系统性。
在教学过程中,教师需关注学生对知识点的掌握情况,及时调整教学进度,确保教学效果。
毕业设计-EDA技术交通灯控制器(课程设计)
课程设计报告课程设计:交通灯控制器一:实验目的:实现高速公路与乡间小路的交叉路口红绿灯的控制二:功能要求:1.只有在小路上发现汽车时,高速公路上的交通灯才可能变为红灯。
2.当汽车行驶在小路上时、小路的交通灯保持为绿灯,但不能超过给定的延迟时间.〔注;这段时间定义为20S时间)。
3.高速公路灯转为绿灯后,即使小路上有汽车出现,而高速公路上并无汽车,也将在给定的时间内保持高速公路绿灯(注:这段时间定义为60S)。
三:设计思路:五:VHDL源程序:LIBRARY ieee;USE ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TrafficLight ISPORT (Clk : IN STD_LOGIC;S,Reset : IN STD_LOGIC;mg,my,mr,cg,cy,cr : OUT STD_LOGIC );END TrafficLight ;ARCHITECTURE rtl OF TrafficLight ISTYPE TrafficState IS (mgcr, mycr, mrcg, mrcy);SIGNAL current_state,next_state : TrafficState ;SIGNAL Count : STD_LOGIC_VECTOR(5 DOWNTO 0);SIGNAL Clrn : STD_LOGIC ;BEGINCounter : PROCESS(clk)BEGINIF Reset = '1' OR (Clrn = '1' AND NOT(Count = "000000")) THEN Count <= "000000";ELSIF clk'EVENT AND clk = '1' THENIF NOT(s='0' AND current_state = mgcr) THEN Count <= Count + 1;END IF;END IF;END PROCESS Counter;StateTransition : PROCESS(clk,Count, current_state)BEGINIF Reset = '1' THEN next_state <= mgcr;Clrn <= '0';ELSIF clk'EVENT AND clk = '1' THENCASE current_state ISWHEN mgcr => mr<='0';mg<='1';my<='0';cr<='1';cg<='0';cy<='0';IF Count >= "111011" AND S = '1' THEN next_state <= mycr;Clrn <= '1';ELSE Clrn <= '0';END IF;WHEN mycr => mr<='0';mg<='0';my<='1';cr<='1';cg<='0';cy<='0';IF Count >= "000100" THEN next_state <= mrcg;Clrn <= '1';ELSE Clrn <= '0';END IF;WHEN mrcg => mr<='1';mg<='0';my<='0';cr<='0';cg<='1';cy<='0';IF Count >= "010011" OR S = '0' THEN next_state <= mrcy;Clrn <= '1';ELSE Clrn <= '0';END IF;WHEN mrcy => mr<='1';mg<='0';my<='0';cr<='0';cg<='0';cy<='1';IF Count >= "000100" THEN next_state <= mgcr;Clrn <= '1';ELSE Clrn <= '0';END IF;WHEN OTHERS => NULL;END CASE;END IF;END PROCESS StateTransition;PROCESS(clk)BEGINIF clk'EVENT AND clk='1' THENcurrent_state <= next_state;END IF;END PROCESS;END rtl;仿真图如下:六:实验心得:通过本次课程设计,使用进一步熟悉了MAX-PLUSLL这种EDA软件工具。
EDA课程设计(交通灯控制器)
课程设计年月日大课程设计任务书课程EDA技术课程设计题目交通灯控制器专业姓名学号主要内容、基本要求、主要参考资料等主要内容:设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。
基本要求:1、红、绿、黄发光二极管作信号灯,用传感器或逻辑开关作检测车辆是否到来的信号,实验电路用逻辑开关代替。
2、主干道处于常允许通行的状态,支干道有车来时才允许通行。
主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。
3、主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路,选择1HZ时钟脉冲作为系统时钟。
4、在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。
主要参考资料:[1] 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.[2] 康华光主编.电子技术基础模拟部分. 北京:高教出版社,2006.[3] 阎石主编.数字电子技术基础. 北京:高教出版社,2003.完成期限2010.3.12指导教师专业负责人2010年3月8日一、总体设计思想1.基本原理计数模块、置数模块、主控制器模块和译码器模块。
置数模块将交通灯的点亮时间预置到置数电路中,计数模块以秒为单位倒计时,当计数值减为零时,主控电路改变输出状态,电路进入下一个状态的倒计时。
其中,核心部分是主控2.设计框图图一.交通灯控制系统的原理框图图二.交通灯控制器的流程图脉冲发生器 控制器 译码器甲车信号灯乙车信号灯定时器1.设计思路:在某一十字路口交叉地带,可设计东西走向的道路为甲车道,南北走向的道路为乙车道。
甲乙车道的交通灯需按交通法则来依次交替运行。
则可设计一个状态循环的逻辑电路。
2.分析系统的逻辑功能:交通灯控制系统的原理框图如图一所示。
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技术课程设计报告交通灯控制器一、设计功能:实现高速公路与乡间小路的交叉路口红绿灯的控制二、具体功能要求:1、只有在小路上发现汽车时,高速公路上的交通灯才可能变成红灯。
2、当汽车行驶在小路上时,小路的交通灯保持为绿灯,但不能超过给定的延迟时间。
(注:这段时间定义为20秒时间)3、高速公路灯转为绿灯后,即使小路上有汽车出现,而高速公路上并无汽车,也将在给定时间内保持高速公路绿灯。
(注:这段时间定义为60秒时间)4、原理框图如下:A B C D高速交通灯绿(60秒)黄(5秒)红(20秒)红(5秒)小道交通灯红红绿黄三、参考设计方案:图2 交通信号灯控制器的原理框图采用VHDL语言输入的方式实现交通信号灯控制器图3 交通信号灯控制器程序原理框图该程序由7个进程组成,进程P1和P2将CLK信号分频后产生1秒信号,进程P3、P4、P5构成两个带有预置数功能的十进制计数器,其中P4产生允许十位计数器计数的控制信号。
进程P6实现状态转换和产生状态转换的控制信号,进程P7产生次态信号和信号灯输出信号,以及每一个状态的时间值。
计数器驱动脉冲如图所示:四、编写相应源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED. ALL;ENTITY CONTRALZ ISPORT(CLK:IN STD_LOGIC;RA,GA,YA:OUT STD_LOGIC;TIMEAH,TIMEAL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END CONTRALZ;ARCHITECTURE BHV OF CONTRALZ ISTYPE RG IS (GREEN,RED,YELLOW2);BEGINPROCESS(CLK)VARIABLE A:STD_LOGIC;VARIABLE TH,TL:STD_LOGIC_VECTOR(3 DOWNTO 0);VARIABLE STATE:RG;BEGINIF CLK'EVENT AND CLK='1'THEN CASE STATE ISWHEN GREEN=>IF A='0'THEN TH:="0101";TL:="1001";A:='1';GA<='1';RA<='0';YA<='0';ELSE IFNOT(TH="0000"AND TL="0001")THEN IF TL="0000"THEN TL:="1001";TH:=TH-1;ELSE TL:=TL-1;END IF;ELSETH:="0000";TL:="0000";A:='0';STATE:=RED;END IF;END IF;WHEN RED=>IF A='0'THEN TH:="0001";TL:="1001";A:='1';RA<='1';YA<='0';GA<='0';ELSE IFNOT(TH="0000"AND TL="0001") THEN IF TL="0000"THEN TL:="1001";TH:=TH-1;ELSETL:=TL-1;END IF;ELSE TH:="0000";TL:="0000";A:='0';RA<='0';GA<='0';STATE:=YELLOW2;END IF;END IF;WHEN YELLOW2=>IF A='0'THEN TH:="0000";TL:="0101";A:='1';YA<='1';GA<='0';RA<='0';ELSE IF NOT(TH="0000"AND TL="0001")THEN IF TL="0000"THEN TL:="0101";TH:=TH-1;ELSE TL:=TL-1;END IF;ELSE TH:="0000";TL:="0000";GA<='0';RA<='0';YA<='0';A:='0';STATE:=RED;END IF;END IF;END CASE;END IF; TIMEAH<=TH;TIMEAL<=TL;END PROCESS;END BHV;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CONTRALX ISPORT(CLK:IN STD_LOGIC;RB,GB,YB,CHU:OUT STD_LOGIC;TIMEAH,TIMEAL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END CONTRALX;ARCHITECTURE BHV OF CONTRALX ISTYPE RGY IS(RED,YELLOW1,GREEN,YELLOW2);BEGIN PROCESS(CLK)VARIABLE A:STD_LOGIC;VARIABLE TH,TL:STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE STATE:RGY;BEGIN IF CLK'EVENT AND CLK='1'THEN CASE STATE ISWHEN YELLOW1=>IF A='0'THEN TH:="0000";TL:="0100";A:='1';YB<='1';GB<='0';RB<='0';CHU<='1';ELSE IF NOT(TH="0000"AND TL="0001")THEN IF TL="0000"THEN TL:="1001";TH:=TH-1;ELSE TL:=TL-1;END IF;ELSE TH:="0000";TL:="0000";A:='0';STATE:=GREEN;END IF;END IF;WHEN GREEN=>IF A='0'THEN TH:="0001";TL:="1001";A:='1';GB<='1';RB<='0';YB<='0';CHU<='1';ELSE IF NOT(TH="0000"AND TL="0001") THEN IF TL="0000"THEN TL:="1001";TH:=TH-1;ELSE TL:=TL-1;END IF;ELSE TH:="0000";TL:="0000";A:='0';STATE:=YELLOW2;END IF;END IF;WHEN RED=>IF A='0'THEN TH:="0101";TL:="0100";A:='1';RB<='1';YB<='0';CHU<='1';ELSE IF NOT(TH="0000"AND TL="0001")THEN IF TL="0000"THEN TL:="1001";TH:=TH-1;ELSE TL:=TL-1;END IF;ELSE TH:="0000";TL:="0000";A:='0';STATE:=YELLOW1;END IF;END IF;WHEN YELLOW2=>IF A='0'THEN TH:="0000";TL:="0100";A:='1';YB<='1';GB<='0';RB<='0';CHU<='1';ELSE IF NOT(TH="0000"AND TL="0001") THEN IF TL="0000"THEN TL:="1001";TH:=TH-1;ELSE TL:=TL-1;END IF;ELSE TH:="0000";TL:="0000";A:='0';CHU<='0';STATE:=RED;END IF;END IF;END CASE;END IF;TIMEAH<=TH;TIMEAL<=TL;END PROCESS;END BHV;五、对源程序进行编译及仿真1、对程序进行编译,结果如下图:2、用waveform对程序进行波形仿真,结果如下图:六、设计思路在听完课程设计指导课前,我们对交通灯的程序设计思路基本上可以称得上是一片茫然,在听完课后虽然有个大致的思路,但还是不知道具体要怎么实施,于是我们开始去图书馆寻找参考书。
交通灯控制器 EDA课程设计实验报告
目录1课程设计要求 (3)2 电路功能描述 (3)3 设计方案 (3)4设计原理图 (4)5 VHDL语言 (4)6仿真截图 (6)7心得体会 (11)8参考文献 (11)1. 课程设计要求1.1.红、黄、绿灯分别控制显示;1.2.每一个状态分别分配一个时间显示(两位十进制,倒计时);1.3.符合实际交通规律。
2.电路功能描述本设计是实现交通灯的控制,模拟实现了红、绿、黄灯指挥交通的功能。
本设计适用东西和南北方向的车流量大致相同的路口,红灯显示时间30S,绿灯显示时间25S,黄灯显示时间5S,同时用数码管指示当前的状态(红、绿、黄灯)的剩余时间。
当有紧急状况发生时,两个方向都禁止通行,并且显示红灯,当紧急状况解除后,重新计时并且指示时间。
3.设计方案根据设计要求,需要控制显示红、黄、绿三个灯的亮灭状态及显示的时间。
这个设计主要由两部分组成,红黄绿灯的显示模块,显示时间模块。
由实际的交通情况可知,东西方向的显示情况是一致的,南北方向的显示情况也是一致,故在设计的时候就只考虑两种状态,将东西方向合成一种,南北方向合成一种。
红黄绿灯的显示模块用两组共6个灯显示,时间显示模块用LED数码管显示。
此外,本交通灯控制器设置的红黄绿显示方式是参照一些城市的显示规律,红灯30S,绿灯25S,黄灯5S,同时用数码管指示当前状(红、绿、黄灯)的剩余时间。
另外还设有一个紧急状态,当特殊情况发生时,两个方向都禁止通行,指示红灯,紧急状态解除后,重新计时并指示时间。
时间采用倒计时的方式显示。
本设计采用VHDL语言编程,描述各个硬件模块实现的功能,使红、黄、绿灯的转换有一个准确的转换顺序和时间间隔,并进行仿真,通过仿真的结果,得出实验的结果。
在正常情况下的一个完整周期内,交通灯控制器系统一共有四种状态,分别是东西红、南北绿,东西红、南北黄,东西绿、南北红,东西黄、南北红。
其运行方式为东西红、南北绿→东西红、南北黄→东西绿、南北红→东西黄、南北绿,东西黄、南北绿结束后再回到东西红、南北绿的状态,整个周期持续60s。
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的交通灯控制器课程设计
EDA的交通灯控制设计一、设计背景和设计方案1)设计背景设计一个由一条支干道和一条主干道的汇合点形成的十字交叉路口的交通灯控制器,主要要求如下:1.主、支干道各设有一个绿、黄、红指示灯,两个显示数码管。
2.主干道处于常允许状态,两支干道有车来才允许通行。
3.当主、支干道有车时,两者交替通行,主干道每次放行45s,支干道每次放行25s,在每次由亮绿灯变成亮红灯转换过程中,要亮5s黄灯作为过渡,并进行减计时显示。
2)设计方案2.1背景分析(一)、交通灯的功能是实现一个交叉口的通车控制,交通灯显示有以下4种状态:1.主干道绿灯,支干道红灯;2.主干道绿灯,支干道黄灯;3.主干道红灯,支干道绿灯;4.主干道黄灯,支干道绿灯。
(二)、支干道没车时,主干道一直亮绿灯;主干道没车时,主干道和支干道交替亮绿灯;主干道和支干道都有车时同样交替亮红绿灯。
在红绿灯交替时亮5s黄灯。
2.2方案及思路(一)分模块设计1、红、绿、黄灯控制模块,模块名JTDKZ;2、倒计时传输、控制模块XSKZ;3、倒计时45s——CNT45s;4、倒计时25s——CNT25s;5、倒计时5s——CNT05s。
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,分别用于主、支干道显示。
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交通控制灯课程设计
eda 交通控制灯课程设计一、课程目标知识目标:1. 学生能够理解并掌握交通控制灯(红绿灯)的基本原理和工作机制。
2. 学生能够描述EDA(电子设计自动化)工具在交通控制灯设计中的应用。
3. 学生能够解释交通控制灯系统中涉及的基础电子元件及其功能。
技能目标:1. 学生能够运用EDA软件完成交通控制灯电路图的绘制。
2. 学生能够通过编程实现对交通控制灯系统的简单控制逻辑。
3. 学生能够运用团队协作和问题解决技能,设计和优化交通控制灯系统。
情感态度价值观目标:1. 培养学生对电子工程领域的兴趣,激发创新意识和探索精神。
2. 增强学生的环保意识和交通安全意识,认识到交通控制灯在现代社会中的重要性。
3. 培养学生的团队协作意识,学会尊重他人意见,共同解决问题。
课程性质:本课程结合了电子技术与实际应用,注重理论与实践相结合,以项目为导向,提升学生的综合技能。
学生特点:假设学生为初中年级,具有一定的电子元件知识基础,对新技术的学习充满好奇,具备基本的计算机操作能力。
教学要求:课程需注重实践性,通过互动式教学和团队协作,使学生在动手实践中理解和掌握知识,提高问题解决能力。
同时,强调安全意识和责任感,培养符合社会主义核心价值观的技能人才。
二、教学内容1. 交通控制灯基础知识:- 红绿灯工作原理介绍- 交通控制灯系统的组成与功能- 交通控制灯在交通安全中的作用2. EDA工具的应用:- EDA软件的认识与基本操作- 交通控制灯电路图的绘制方法- 电路仿真与调试技巧3. 交通控制灯电路设计与制作:- 基本电子元件的选择与应用- 交通控制灯控制逻辑的编写与实现- 电路板设计与焊接技巧4. 项目实践与优化:- 团队协作设计与制作交通控制灯系统- 控制逻辑优化与功能拓展- 作品展示与评价教学内容安排与进度:第一课时:交通控制灯基础知识学习第二课时:EDA软件的认识与基本操作第三课时:交通控制灯电路图绘制与仿真第四课时:电路设计与制作第五课时:项目实践与优化第六课时:作品展示与评价教材章节关联:教学内容与教材中“电子技术应用”章节相关,涉及电子元件、电路设计、EDA工具应用等方面的知识。
eda课程设计-交通灯控制器的设计
题目交通灯控制器的设计摘要交通灯信号控制器通常要实现自动控制和手动控制其红绿灯的变化,基于FPGA设计的交通灯信号控制器电路简单、可靠性好。
本设计可控制2个路口的红、黄、绿三盏灯.让其按特定的规律进行变化。
利用QuartusⅡ对设计结果进行仿真,发现系统工作性能良好。
据此设计而成的硬件电路,也实现了控制要求。
关键词:交通灯自动控制手动控制目录摘要 01.概述 (2)1.1课程设计目的 (2)1.2 课程设计题目及要求 (2)1.3 实验环境 (2)2. 系统总体设计 (2)2.2系统组成 (3)3. 系统层次化设计与软件仿真 (3)3.1 系统时序发生电路 (3)3.1.2系统时序发生电路clk_gen的仿真输出波形和元件符号 (5)3.2 红绿灯计数时间选择模块 (5)3.2.1 VHDL源代码: (6)3.2.2计数时间选择模块traffic_mux的仿真输出波形和元件符号 (7)3.3定时控制电路 (7)3.3.1 VHDL源代码: (7)3.3.2 定时控制电路count_down的仿真输出波形和元件符号 (9)3.4 红绿灯信号译码电路 (9)3.4.1 VHDL源代码 (10)3.4.2 信号译码电路 (12)3.5 红绿灯交通控制器顶层电路 (13)3.5.1 VHDL源代码: (14)3.5.2 交通控制器顶层电路Traffic_TOP的仿真输出波形和元件符号 (16)4. 系统硬件仿真 (17)5.结论与体会 (18)参考文献 (18)1.概述1.1课程设计目的此次课程设计是根据《VHDL程序设计》这门课程开设的综合设计课程,要求学生利用VHDL编程语言,基于EDA开发平台Quartus 错误!未找到引用源。
,设计相应的数字系统,通过对系统进行编程、仿真、调试与实现,体验设计的全过程,进一步加深对所学基础知识的理解,培养学生将理论知识应用于实践的能力、学生自学与创新能力和分析解决实际问题的能力。
EDA课程设计报告-- 交通灯控制器
郑州航空工业管理学院电子通信工程系EDA技术及应用课程设计报告题目:交通灯控制器姓名:学号:同组成员:指导老师:年月日目录一、设计任务书二、硬件系统设计1、电路原理图1.1 CPLD核心电路1.2 数码管显示电路1.3电源电路1.4 LED指示灯电路2、管脚分配3、设计方案三、Verilog HDL 代码设计四、系统调试1、逻辑功能模块RTL级描述2、仿真图五、总结1、对本次课程设计的总结六、参考文献一、设计任务书设计要求(1)主干道通行(绿灯):支干道有车24秒;支路红灯,数码管实时显示倒计时的秒,秒计时的频率为1Hz 。
(2)主干道缓冲(黄灯):6秒,(不显示计数),秒计时的频率为1Hz 。
(3)支路通行(绿灯):20秒,主干道红灯,数码管实时显示倒计时的秒,秒计时的频率为1Hz 。
(4)支路缓冲(黄灯):6秒,不显示,秒计时的频率为1Hz 。
数码管采用动态显示。
其他要求:(1)晶振为12 MHz(2)采用CPLD 器件,为ALTERA 的EPM7064SL-44(3)采用数码管显示二、硬件系统设计1、电路原理图:1.1 CPLD核心电路1.2 数码管显示电路1.3电源电路1.4 LED指示灯电路2、管脚分配管脚分配:CPLD型号: FAMILY:MAX7000AEDEVICE:EPM7064AELC44-10sys_clk : pin 43 // 12Mhz4个LED灯: led0 ~ led3 : pin 14 16 17 188个数码管:8个位线:com0~com3(dig0~dig3):pin 34, 33,31, 29, com4~com7 (dig4~dig7):pin 28 , 27,26 , 258个数据线:seg0~seg 3: pin 36, 37 ,39, 40seg4~seg 7: pin 41, 4 , 5, 64个按键:sw0~sw3: pin 19, 20, 21, 243、设计方案三、Verilog HDL 代码设计module ds(clk,led,dig,seg);//输入input clk;//输出output[3:0] dig;output[7:0] seg;output[4:0] led;//定义变量reg[24:0] count;reg[15:0] miao;reg[4:0] leden;reg[7:0] seg_r; reg[3:0] dig_r;reg[3:0] disp_dat;reg sec;reg num;reg[1:0] flag; //计数变量reg[1:0]f2; //计数变量assign dig=dig_r;assign seg=seg_r;assign led=leden;//秒产生信号always@(posedge clk)begincount=count+1'b1;if(count==25'd2*******)begincount=25'b0;sec=~sec;endend//数码管动态扫描always@(posedge clk)begincase(count[16:15])0:disp_dat=miao[3:0];1:disp_dat=miao[7:4];2:disp_dat=miao[11:8];3:disp_dat=miao[15:12];endcasecase(count[16:15]) //选择数码管显示位0:dig_r=4'b1110;1:dig_r=4'b1101;2:dig_r=4'b1011;3:dig_r=4'b0111;endcaseendalways@(posedge clk)begincase(disp_dat)4'h0:seg_r=8'hc0;4'h1:seg_r=8'hf9;4'h2:seg_r=8'ha4;4'h3:seg_r=8'hb0;4'h4:seg_r=8'h99;4'h5:seg_r=8'h92;4'h6:seg_r=8'h82;4'h7:seg_r=8'hf8;4'h8:seg_r=8'h80;4'h9:seg_r=8'h90;default:seg_r=8'hff;endcaseendalways@(negedge sec) //数码管倒计时及指示灯显示倒计时模块beginif(flag==0)beginmiao[3:0]=miao[3:0]-1;if(miao[3:0]==4'hf)beginmiao[7:0]=8'h18; 主干道绿灯倒计时leden=5'b01101; 主绿支红flag[1:0]=4'h1; 计数转向第二步endendelse if(flag[1:0]==4'h1)beginmiao[3:0]=miao[3:0]-1'b1;if(miao[3:0]==4'hf)beginmiao[7:4]=miao[7:4]-1'b1;if(miao[7:4]==4'hf)beginleden[4:2]=3'b110; 主干道黄灯flag[1:0]=4'h2;miao[7:0]=8'h06; 黄灯倒计时endelse miao[3:0]=4'h9;endendelse if(flag[1:0]==4'h2)beginmiao[3:0]=miao[3:0]-1'b1;if(miao[3:0]==4'hf)beginmiao[7:4]=miao[7:4]-1'b1;if(miao[7:4]==4'hf)beginleden[4:2]=3'b101; 主干道红灯flag[1:0]=4'h3;miao[7:0]=8'h20;endelse miao[3:0]=4'h9;endendelse if(flag[1:0]==4'h3)beginmiao[3:0]=miao[3:0]-1'b1;if(miao[3:0]==4'hf)beginmiao[7:4]=miao[7:4]-1'b1;if(miao[7:4]==4'hf)beginleden[4:2]=3'b011; 主干道绿灯返回flag==1flag[1:0]=4'h1;miao[7:0]=8'h18;endelse miao[3:0]=4'h9;endendelse flag[1:0]=4'h0;if(f2==0)beginmiao[11:8]=miao[11:8]-1;if(miao[11:8]==4'hf)beginmiao[15:8]=8'h24;//leden=6'b011110;f2[1:0]=4'h1;endendelse if(f2[1:0]==4'h1)beginmiao[11:8]=miao[11:8]-1'b1;if(miao[11:8]==4'hf)beginmiao[15:12]=miao[15:12]-1'b1;if(miao[15:12]==4'hf)beginleden[2:0]=3'b110;f2[1:0]=4'h2;miao[15:8]=8'h14;endelse miao[11:8]=4'h9;endendelse if(f2[1:0]==4'h2)beginmiao[11:8]=miao[11:8]-1'b1;if(miao[11:8]==4'hf)beginmiao[15:12]=miao[15:12]-1'b1;if(miao[15:12]==4'hf)beginleden[2:0]=3'b011;f2[1:0]=4'h3;miao[15:8]=8'h06;endelse miao[11:8]=4'h9;endendelse if(f2[1:0]==4'h3)beginmiao[11:8]=miao[11:8]-1'b1;if(miao[11:8]==4'hf)beginmiao[15:12]=miao[15:12]-1'b1;if(miao[15:12]==4'hf)beginleden[2:0]=3'b101;f2[1:0]=4'h1;miao[15:8]=8'h24;endelse miao[11:8]=4'h9;endendelse f2[1:0]=4'h0;endendmodule四、系统调试1、逻辑功能模块RTL级描述VCC clk INPUT dig[3..0]OUTPUT seg[7..0]OUTPUT led[4..0]OUTPUT clk dig[3..0]seg[7..0]led[4..0]dsinst仿真图五、总结在做本课程设计的过程中,从程序编写到硬件实现,我们遇到了许多问题。
EDA课程设计 十字路口交通灯控制器
目录1.设计原理 (1)1.1设计任务 (1)1.2方案构思 (1)1.2.1该交通灯控制器应具备的功能 (1)1.2.2实现方案 (1)2.程序设计 (3)3. 编译/仿真 (4)3.1编译过程 (4)3.1.1 建立顶层设计文件夹TRAFFIC_CTROL (4)3.1.2 TRAFFIC_CTROL.VHD模块设计 (4)3.1.3 TRAFFIC_CTROL.SCf波形文件设计 (4)3.2仿真结果 (4)4.心得体会 (6)参考文献 (7)附录A VHDL源程序代码 (8)附录B 仿真时序波形图 (10)交通灯控制器设计1.设计原理1.1设计任务设计一个十字路口的交通灯控制系统,用实验平台上的LED发光二极管显示车辆通过的方向(东西和南北各一组),用数码管显示该方向的剩余时间。
1.2方案构思1.2.1该交通灯控制器应具备的功能设东西和南北方向的车流量大致相同,因此红、黄、绿灯的时长也相同,定为红灯35sec,黄灯5sec,绿灯30sec,同时用数码管指示当前状态(红、黄、绿)剩余时间。
另外,设计一个紧急状态,当紧急状态出现时,两个方向都禁止通行,指示红灯。
紧急状态解除后,重新计数并指示时间。
1.2.2实现方案交通灯控制器是状态机的一个典型应用,除了计数器是状态机外,还有东西、南北方向的不同状态组合(红绿、红黄、绿红、黄红4个状态),如表1.1所示。
表1.1 交通灯的4种可能亮灯状态向的计数值,可以检测红、黄、绿灯组合的跳变。
这样使一个较复杂的状态机设计变成一个较简单的计数器设计。
本例假设东西方向和南北方向的黄灯时间均为5sec,在设计交通灯控制器时,可在简单计数器的基础上增加一些状态检测,即可通过检测两个方向的计数值判断交通灯应处于4种状态中的哪个状态。
本交通灯控制器外部接口如图1.1所示。
在表1.2中列出了需检测的状态跳变点,从中可以看出,有两种情况出现了东西和南北方向计数值均为1的情况,因此在检查跳变点时还应同时判断当前是处于状态2还是状态4,这样就可以决定次状态是状态3还是状态1。
EDA课程设计报告-交通灯控制器
.EDA课程设计报告交通灯控制器一、设计任务要求1、控制器按东西、南北两个方向控制两组交通灯(红、绿、黄)2、两组灯亮的顺序满足交通安全的规则要求.3、东西向绿灯每次亮30S ,接着黄灯亮2S ,红灯亮20S ;南北向绿灯每次亮28S ,接着黄灯亮2S ,红灯亮30S. 4、有两组数码管给出灯亮的时间倒计时显示。
二、设计思路及总体结构框图设计思路: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位数组型的。
外部电路图如下:clk 4/ stas reset on_off 4/ 7/ 7/ 7/ 7/ 4/State1State2Showtime1Showtime2Showtime3Showtime4Choose4东西方向交通灯南北方向交通灯2.软件:(1)在VHDL设计描述中,采用自顶向下的设计思路,该思路,首先要描述顶层的接口,上面的描述已经规定了交通灯控制的输入输出信号:输入信号:复位开关信号reset;紧急情况控制信号on_off;外部时钟信号clk。
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课程设计(交通灯控制器)
«KEDA技*锦程祓针
<8丈通爭投制希
ft t
专"铁
修生就名
豊认号
北导農轉交通灯控制器专业姓学号主要内容、基本要求、主要参考资料等 主要内容:
设计一个交通信号灯控制器,由一条主干道和一条
支干道汇合成十字路口,在每个入口处设置红、绿、黄 三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯 亮则给行驶中的车辆有时间停在禁行线外。
ST:表示定时器到了规定的时间后,由控制器发出状态转换信号。由它控 制定时器开始下个工作状态的定时。
(1)图甲车道绿灯亮,乙车道红灯亮。表示甲车道上的车辆允许通行,乙 车道禁止通行。绿灯亮足规定的时间隔TL时,控制器发出状态信号ST,转到 下一工作状态。
(2)甲车道黄灯亮,乙车道红灯亮。表示甲车道上未过停车线的车辆停止 通行,已过停车线的车辆继续通行,乙车道禁止通行。黄灯亮足规定时间间隔TY时,控制器发出状态转换信号ST,转到下一工作状态。
基本要求:
1、红、绿、黄发光二极管作信号灯,用传感器或逻 辑开关作检测车辆是否到来的信号,实验电路用逻辑开 关代替。
2、主干道处于常允许通行的状态,支干道有车来时 才允许通行。主干道亮绿灯时,支干道亮红灯;支干道 亮绿灯时,主干道亮红灯。
3、主、支干道均有车时,两者交替允许通行,主干 道每次放行45秒,支干道每次放行25秒,设立45秒、25
交通灯以上4种工作状态的转换是由控制器进行控制的。设控制器的四种 状态编码为00、01、11、10,并分别用SO、S1、S3、S2表示,则控制器的工 作状态及功能如图二所示,控制器应送出甲、乙车道红、黄、绿灯的控制信号。 为简便起见,把灯的代号和灯的驱动信号合二为一,并作如下规定:
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)。
交通灯控制器课程设计该交通信号控制器控制十字路甲、乙两条道路的红、黄和绿三色灯,指挥车辆和行人安全通行。
功能要求如下:1.只有在小路上发现汽车时,高速公路上的交通灯才可能变成红灯。
2.当汽车行驶在小路上时,小路的交通灯保持为绿灯,但不能超过给定的时间。
(20s)3.高速公路灯转为绿色后,即使小路上有汽车出现,而高速公路上并无汽车,也将在给定的时间内保持绿灯。
(60s)。
设计如下:——1hz分频器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity fen_pin1 isport(clk100hz:in std_logic;clk1hz:out std_logic);end fen_pin1;architecture bhv of fen_pin1 issignal qan:std_logic_vector(3 downto 0);signal qbn:std_logic_vector(3 downto 0);signal cin:std_logic;beginprocess(clk100hz)beginif(clk100hz'event and clk100hz='1')thenif qan="1001"then qan<="0000";cin<='1';else qan<=qan+1;cin<='0';end if;end if;end process;process(clk100hz,cin)beginif(clk100hz'event and clk100hz='1')thenif cin='1' thenif qbn="1001" then qbn<="0000";else qbn<=qbn+1;end if ;end if ;end if ;end process;process(qan,qbn)beginif (qan="1001"and qbn="1001")then clk1hz<='1'; else clk1hz<='0';end if;end process;end bhv;——2hz分频器library ieee;use ieee.std_logic_1164.all;entity fen_pin2 isport (clk100hz:in std_logic;clk2hz:out std_logic);end fen_pin2;architecture bhv of fen_pin2 isbeginprocess(clk100hz)variable cnt:integer range 0 to 24;variable tmp:std_logic;beginif(clk100hz'event and clk100hz='1')thenif cnt=24 thencnt:=0;tmp:=not tmp;elsecnt:=cnt+1;end if;end if;clk2hz<=tmp;end process;end bhv;——主干道控制library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity contralz isport(clk:in std_logic;ra,ga,ya:out std_logic;timeah,timeal:out std_logic_vector(3 downto 0)); end contralz;architecture bhv of contralz istype rg is(green,red,yellow2);beginprocess(clk)variable a:std_logic;variable th,tl:std_logic_vector(3 downto 0);variable state:rg;beginif clk'event and clk='1'thencase state iswhen green=>if a='0'thenth:="0101";tl:="1001";a:='1';ga<='1';ra<='0';ya<='0';elseif not(th="0000"and tl="0001")thenif tl="0000"thentl:="1001";th:=th-1;elsetl:=tl-1;elseth:="0000";tl:="0000";a:='0';state:=red;end if;end if;when red=>if a='0'thenth:="0001";tl:="1001";a:='1';ra<='1';ya<='0';ga<='0';elseif not(th="0000"and tl="0001")then if tl="0000"thentl:="1001";th:=th-1;elsetl:=tl-1;end if;elseth:="0000";tl:="0000";a:='0';ra<='0';ga<='0';state:=yellow2;end if;end if;when yellow2=>if a='0'thenth:="0000";tl:="1001";a:='1';ya<='1';ga<='0';ra<='0';elseif not(th="0000"and tl="0001")then if tl="0000"thentl:="1001";th:=th-1;tl:=tl-1;end if;elseth:="0000";tl:="0000";ga<='0';ra<='0';ya<='0';a:='0';state:=green;end if;end if;end case;end if;timeah<=th;timeal<=tl;end process;end bhv;——支路控制library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity contralx isport(clk:in std_logic;rb,gb,yb,chu:out std_logic;timeah,timeal:out std_logic_vector(3 downto 0)); end contralx;architecture bhv of contralx istype rgy is(red,yellow1,green,yellow2);beginprocess(clk)variable a:std_logic;variable th,tl:std_logic_vector(3 downto 0);variable state:rgy;beginif clk'event and clk='1'thencase state iswhen yellow1=>if a='0'thenth:="0000";tl:="0100";a:='1';yb<='1';gb<='0';chu<='1';elseif not(th="0000"and tl="0001")then if tl="0000"thentl:="1001";th:=th-1;elsetl:=tl-1;end if;elseth:="0000";tl:="0000";a:='0';state:=green;end if;end if;when green=>if a='0'thenth:="0001";tl:="1001";a:='1';gb<='1';rb<='0';yb<='0';chu<='1';elseif not(th="0000"and tl="0001")then if tl="0000"thentl:="1001";th:=th-1;elsetl:=tl-1;end if;elseth:="0000";tl:="0000";a:='0';state:=yellow2;end if;end if;when red=>if a='0'thenth:="0101";tl:="0100";a:='1';yb<='0';chu<='1';elseif not(th="0000"and tl="0001")then if tl="0000"thentl:="1001";th:=th-1;elsetl:=tl-1;end if;elseth:="0000";tl:="0000";a:='0';state:=yellow1;end if;end if;when yellow2=>if a='0'thenth:="0000";tl:="0100";a:='1';yb<='1';gb<='0';rb<='0';chu<='1';elseif not(th="0000"and tl="0001")then if tl="0000"thentl:="1001";th:=th-1;elsetl:=tl-1;end if;elseth:="0000";tl:="0000";a:='0';chu<='0';state:=red;end if;end if;end case;end if;timeah<=th;timeal<=tl;end process;end bhv;——反馈器library ieee;use ieee.std_logic_1164.all;entity smen isport( sm ,re,gr,ye:in std_logic;jinji:out std_logic);end smen;architecture se of smen isbeginprocess isbeginif(sm='1' and re='0' and gr='0' and ye='0') then jinji<='1'; elsejinji<='0';end if;end process;end se;——消抖电路library ieee;use ieee.std_logic_1164.all;entity xiaodou isport(jinji,clk1hz:in std_logic;b:out std_logic);end xiaodou;architecture bhv of xiaodou issignal temp1:std_logic;beginprocess(clk1hz,jinji)variable temp2:std_logic;beginif(clk1hz'event and clk1hz='0')thentemp1<=jinji;temp2:=not temp1;end if;b<=temp1 and temp2 and clk1hz;end process;end bhv;——状态转换library ieee;use ieee.std_logic_1164.all;entity no isport(a:in std_logic;en:out std_logic);end no;architecture no_arc of no isbeginprocess(a)variable tmp:std_logic;beginif(a'event and a='1')thentmp:=not tmp;end if;en<=tmp;end process;end no_arc;——mux4llibrary ieee;use ieee.std_logic_1164.all;entity mux41 isport(sel:in std_logic_vector(2 downto 0);d0,d1,d2,d3:in std_logic_vector(3 downto 0); q:out std_logic_vector(3 downto 0);so:out std_logic_vector(1 downto 0));end mux41;architecture bhv of mux41 isbeginprocess(sel)begincase sel iswhen"100"=>q<=d2;so<="00"; when"101"=>q<=d3;so<="01"; when"000"=>q<=d0;so<="10";when others=>q<=d1;so<="11";end case;end process;end bhv;——译码器library ieee;use ieee.std_logic_1164.all;entity dec7s isport(d:in std_logic_vector(3 downto 0);q0,q1,q2,q3,q4,q5,q6:out std_logic);end dec7s;architecture bhv of dec7s isbeginprocess(d)variable q:std_logic_vector(6 downto 0); begincase d iswhen"0000"=>q:="0111111"; when"0001"=>q:="0000110"; when"0010"=>q:="1011011"; when"0011"=>q:="1001111"; when"0100"=>q:="1100110"; when"0101"=>q:="1101101"; when"0110"=>q:="1111101"; when"0111"=>q:="0100111"; when"1000"=>q:="1111111"; when"1001"=>q:="1101111";when others=>q:="1111001";end case;q0<=q(0);q1<=q(1);q2<=q(2);q3<=q(3);q4<=q(4);q5<=q(5);q6<=q(6);end process;end bhv;。