AD-交通灯控制
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/ State1交通灯 stasreset State2南北方向 on_off 4/ 交通灯7/ Showtime17/ Showtime27/ Showtime37/ Showtime4Choose44/- 2 -2.软件:(1)在VHDL设计描述中,采用自顶向下的设计思路,该思路,首先要描述顶层的接口,上面的描述已经规定了交通灯控制的输入输出信号:输入信号:复位开关信号reset;紧急情况控制信号on_off;外部时钟信号clk。
EDA课程设计报告交通信号灯控制

石家庄经济学院信息工程学院电子信息工程专业EDA技术课程设计报告题目:交通信号灯控制姓名学号班级指导教师2012年 1 月 12 日要求:1.指导教师按照课程设计大纲要求完成学生课程设计指导工作。
2.课程设计任务书由指导教师照大纲要求填写,内容要全面。
3.课程设计报告由参加本学生填写。
课程设计结束时交指导教师。
4.指导教师要根据每一位学生课程设计任务完成情况,认真审核设计报告,并在课程设计结束时,给出客观、准确的评语和成绩。
5.课程设计任务书和报告要语言流畅,图表正确规范。
课程设计任务书班级姓名学号课程设计题目交通信号灯控制课程设计起止日期 2011年12月26日至 2012年1月13日实习地点实验楼308课程设计内容与要求1、及格:设计一个交通信号控制器,在十字路口每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。
每次放行30秒;2、中:绿灯亮25秒后闪烁3秒,黄灯亮2秒,然后转红灯,红灯亮30秒后转绿灯,依次循环;3、良:30秒倒计时显示;4、优:可设定通行时间。
指导教师年月日课程设计报告一、设计原理与技术方法:(一)电路工作原理分析与原理图 1、工作原理(1)交通灯控制模块由0--59s (共60秒)的计数器以及红绿灯控制器组成。
通过60s 计数器控制红绿灯的亮灭时间。
如下图,为交通灯亮灭时间设计:图1-1 交通灯状态转换示意图 南北方向绿灯 绿灯黄灯 红灯 24秒3秒 2秒30秒 东西方向红灯 绿灯 绿灯黄30秒24秒3秒2秒表1-1 交通灯状态转换示意图(2)倒计时控制模块由30秒倒计时计数器和转换器以及驱动七段数码管显示器组成。
(3)紧急状态当hold =‘0’时,交通正常工作。
绿灯亮25秒后闪烁3秒,黄灯亮2秒,然后转红灯,红灯亮30秒后转绿灯,依次循环。
当hold = ‘1’时,为紧急状态,南北、东西向均红灯亮。
且30秒倒计时停止,并保留计数值。
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技术课程设计报告目录课程设计的要求及目的 (2)前言 (2)一设计内容与目的 (2)1.1设计内容 (3)1.2设计目的 (3)二方案设计 (3)2.1 设计思路 (3)2.2 设计总体框图 (4)2.3 状态表 (5)2.4 电路原理图 (5)2.5静态显示电路 (5)三功能电路的设计 (5)3.1细化的设计总体框图 (5)3.2 灯控制器电路设计 (6)3.3计数器设计 (8)3.4显示控制部分设计 (12)四系统仿真图 (13)五设计心得会 (14)六参考文献 (15)交通信号灯控制器设计课程设计的要求及目的:1.了解电子设计的具体流程和方法。
2. 掌握电子设计的基本要求,能够运用所学的知识解决生活中的一些问题。
3. 初步掌握VHDL语言编程,并设计出一个有意义的小型系统。
4. 掌握MAX+plus Ⅱ软件的应用,并且了解相关硬件的组成和功能。
5. 用EDA(Electronic Design Automation)或者原理图完成一个课题的设计,并达到相应的功能要求。
前言伴随着社会的发展以及人类生活水平的提高,汽车的数量在不断增加,交通事业得以蓬勃发展,而随之引起的安全问题已经不容忽视。
EDA技术的发展和应用领域也在不断的扩大与深入,机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域的重要性日益突出。
众所周知,随着生活的进步,我们身边的交通也日益繁忙,在众多的十字交叉路口,为了确保车辆安全,迅速地通行,就必须在每个入口设置红绿灯。
本系统中设置了红,绿,黄三色共三种信号灯。
红灯亮禁止一切该方向的行人和车辆通行,绿灯亮允许行人和车辆通行,黄灯亮则提示行驶中的车辆注意不要抢道,并让它们有时间停靠到禁行线之外或者加快通过,同时提醒行人加快行进或者等待下一次绿灯。
人行道灯亮时,允许行人通过。
为了确保十字路口的行人和车辆顺利,畅通的通过,往往采用电子控制的交通信号来进行指挥。
毕业设计-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 交通灯控制器

实验十一交通灯控制器一、实验准备:1、该实验不使用七个模块组中的各个功能单元,所以三个拨码开关处于“111”时,即MODEL_SEL1-3拨下处于“ON”状态。
使用实验仪上的固定连接。
2、拨码开关MODEL_SEL5-8全置于“ON ”状态,即MODEL_SEL5-8拨下处于“ON ”时通过USB BLASTER 接口下载。
当全部拨下处于“OFF”时可使用开发平台上LAB_JTAG_PS_AS 接口下载或者核心开发板上JTAG接口下载。
二、实验目的:1、熟悉QuartusII软件的相关操作,掌握数字电路设计的基本流程。
2、介绍QuartusII的软件,掌握基本的设计思路,软件环境参数配置,仿真,管脚分配,下载等基本操作。
3、了解VHDL或原理图设计方法与定制IP模块的思想。
三、实验内容:1、设计交通灯信号控制系统,用于主干道和支路公路的交叉路口。
要求如下:(1) 优先保证主干道的畅通。
因此平时处于“主干道路绿灯,支道红灯”状态,只有在支道有车辆穿行主干道时,才将交通切向“主干道路红灯,支道绿灯”状态,一旦支道无车辆通过时,交通灯又回到“主干道路绿灯,支道红灯”状态。
(2)主干道和支道每次通行时间不得短于30s,而在两个状态交换过程中出现的“主黄,支红”和“主红,支黄”状态的持续时间都为4s。
设置3个LED灯分别代表红灯、黄灯和绿灯。
2、用QuartusII软件进行编译、仿真、下载到实验平台进行验证。
四、实验原理:交通灯的控制电路主要通过一个基准时钟(如1HZ)进行计时,同时通过模式控制电路来判别主干道与支干道状态不同引发的不同的计时、转换方式,从而在不同的状态1、建议使用状态机的方法实现。
2、根据交通灯信号控制的要求,可把它分解为计时器和控制器两个部分,原理框图如下:前三个LED灯分别为绿黄红,之后中间两个置一,灯不亮,最后三个为绿黄红。
五、程序代码:分频文本:交通灯文本:六、引脚分配情况:七、状态图八、编译图。
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交通灯信号控制器设计
课程设计说明书题目交通灯信号控制器的设计目录一、设计内容及其要求: (2)二、设计主要内容: (2)2.1 设计的总体方案 (3)2.2交通灯思路分析 (3)三、设计程序 (4)四.波形仿真及其编程下载 (14)4.1仿真波形 (14)4.2 波形分析 (14)4.3编程下载 (15)四、引脚分配 (15)五、心得及体会 (16)参考文献: (17)交通灯的信号控制器的设计说明书一、设计内容及其要求:试设计一个交通信号等控制器,用于主干道及支道公路的交叉路口,要求是优先保证主干道的畅通。
因此,平时处于“主干道绿灯,支道红灯”状态,只有在支道有车辆要穿行主干道时,才将交通等切向“主干道红灯,支道绿灯”,一旦支道无车辆通过路口,交通灯又回到“主干道绿灯,支道红灯”的状态。
此外,主干道和支道每次通行的时间不得短于30秒,而在两个状态交换过程出现的“主黄,支红”和“主红,支黄”状态,持续时间都为4秒。
主干道和支道的红、黄、绿灯驱动信号接LED,时间都需通过数码管显示。
系统提供50MHZ频率的时钟源。
完成该系统的硬件和软件的设计,并制作出实物装置,调试好后并能实际运用(指导教师提供制作所需的器件),最后就课程设计本身提交一篇课程设计说明书。
二、设计主要内容:2.1 设计的总体方案根据设计要求和系统所具有功能,并参考相关的文献资料设计画出如下所示的十字路口交通灯控制器系统框图,及为设计的总体方案,框图如下图2.1所示:图2.1 系统的框图2.2交通灯思路分析因为有主干道和支道,所以可以定义为5种状态,分别是1:主道绿灯,支道红灯且没有车辆行驶;2:主道绿灯,支道红灯或者支道有车辆驶入;3:主道红灯,支道绿灯;4:主道红灯,支道黄灯;5:主道黄灯,支道红灯。
并设置主道红灯亮34秒,支道绿灯亮30秒,黄灯亮4秒的设计要求。
如下图:图2.2 三种灯的循环顺序三、设计程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;Entity redgreen isPort(clock_in:in std_logic;hold_state:in std_logic;reset_state:in std_logic;hold_state1:in std_logic;reset_state1:in std_logic;led_red,led_green,led_yellow,led_red1,led_green1,led_yellow1:out std_logic;select_display:out std_logic_vector(0 to 6); led_selout:out std_logic_vector(0 to 3));end;Architecture redgreen1 of redgreen isconstant loop_hz:integer:=20000000;--constant loop_hz:integer:=2;constant loop_hz1:integer:=500;signal count_time:integer range 0 to loop_hz; signal count_time1:integer range 0 to loop_hz1; signal clock_buffer:std_logic;signal clock_buffer1:std_logic;signal clock_out:std_logic;signal clock_out1:std_logic;signal count_num:integer range 0 to 68;signal count_num1:integer range 0 to 68;signal display_num:integer range 0 to 68;signal display_num1:integer range 0 to 68; signal display_shi:integer range 0 to 9;signal display_ge:integer range 0 to 9;signal display_shi1:integer range 0 to 9; signal display_ge1:integer range 0 to 9;signal b:integer range 0 to 9;signal a:std_logic_vector(1 downto 0);constant loop_time:integer:=68;constant red_time:integer:=34;constant green_time:integer:=30;constant yellow_time:integer:=4;beginprocess(clock_in) --分频进程beginif clock_in'event and clock_in='1' then if count_time=loop_hz thencount_time<=0;clock_buffer<=not clock_buffer; elsecount_time<=count_time+1;end if;end if;clock_out<=clock_buffer;end process;process(clock_in) --分频进程beginif clock_in'event and clock_in='1' thenif count_time1=loop_hz1 thencount_time1<=0; a<=a+1;clock_buffer1<=not clock_buffer1;elsecount_time1<=count_time1+1;end if;end if;clock_out1<=clock_buffer1;end process;process(reset_state,clock_out,count_num)beginif reset_state='1'thencount_num<=0;elsif clock_out'event and clock_out='1' then if hold_state='1' thencount_num<=count_num;elsif count_num=loop_time-1 thencount_num<=0;elsecount_num<=count_num+1;end if;end if;end process;process(reset_state1,clock_out,count_num1) beginif reset_state='1'thencount_num1<=0;elsif clock_out'event and clock_out='1' then if hold_state1='1' thencount_num1<=count_num1;elsif count_num1=loop_time-1 thencount_num1<=0;elsecount_num1<=count_num1+1;end if;end if;end process;process(clock_out,count_num,a) --交通灯显示beginif clock_out'event and clock_out='0' then if hold_state='1' thenled_red<='1';led_green<='0';led_yellow<='0';elsif count_num<=33 thendisplay_num<=red_time-count_num;led_red<='1';led_green<='0';led_yellow<='0';elsif count_num<=63 thendisplay_num<=green_time+red_time-count_num;led_red<='0';led_green<='1';led_yellow<='0';elsif count_num<=67 thendisplay_num<=loop_time-count_num;led_red<='0';led_green<='0';led_yellow<='1';end if;end if;end process;process(clock_out,count_num1) --交通灯显示beginif clock_out'event and clock_out='0' thenif hold_state1='1' thenled_red1<='1';led_green1<='0';led_yellow1<='0';elsif count_num1<=29 thendisplay_num1<=green_time-count_num1;led_red1<='0';led_green1<='1';led_yellow1<='0';elsif count_num1<=33 thendisplay_num1<=yellow_time+green_time-count_num1; led_red1<='0';led_green1<='0';led_yellow1<='1';elsif count_num1<=67 thendisplay_num1<=loop_time-count_num1;led_red1<='1';led_green1<='0';led_yellow1<='0';end if;end if;end process;process(display_num) --分位进程beginif display_num<10 thendisplay_shi<=0;display_ge<=display_num;display_shi1<=0;display_ge1<=display_num;elsif display_num<20 thendisplay_shi<=1;display_shi1<=1;display_ge<=display_num-10; display_ge1<=display_num-10;elsif display_num<30 thendisplay_shi<=2;display_shi1<=2;display_ge<=display_num-20;display_ge1<=display_num-20;elsif display_num<40 thendisplay_shi<=3;display_shi1<=3;display_ge<=display_num-30;display_ge1<=display_num-30;end if;end process;process(b) --数码管显示begincase b iswhen 0=>select_display<="0000001"; when 1=>select_display<="1001111"; when 2=>select_display<="0010010"; when 3=>select_display<="0000110"; when 4=>select_display<="1001100"; when 5=>select_display<="0100100"; when 6=>select_display<="0100000"; when 7=>select_display<="0001111"; when 8=>select_display<="0000000"; when 9=>select_display<="0000100"; when others=>select_display<=null;end case;end process;process(a)begincase a iswhen "00" => led_selout<="0001";b<=display_shi;when "01" => led_selout<="0010";b<=display_ge;when "10" => led_selout<="0100";b<=display_shi1;when "11" => led_selout<="1000";b<=display_ge1;when others => null;end case;end process;end;四.波形仿真及其编程下载4.1仿真波形4.2 波形分析由上述波形可知,刚开始,主道亮红灯,支道亮绿灯;当支道绿灯倒计34秒后,支道黄灯亮,主道红灯亮;而支道黄灯倒计时4秒后,支道红灯亮,主道绿灯亮;当主道绿灯倒计时30秒后,主道黄灯亮,支道红灯亮;当主道黄灯倒计时4秒后,主道红灯亮,支道绿灯亮。
基于Arduino的十字路口交通灯控制设计
基于Arduino的十字路口交通灯控制设计1. 引言本文档介绍了基于Arduino的十字路通灯控制设计方案。
交通信号灯是城市交通管理中不可或缺的一部分,通过合理地控制交通灯的信号,可以提高交通效率和安全性。
本设计方案基于Arduino 开发板,利用其强大的功能和易编程性,实现了十字路通灯的智能控制。
2. 设备和材料- Arduino开发板- 交通灯模块- 连接线- 蜂鸣器(可选)- 电源3. 硬件连接根据具体的硬件设备,将Arduino开发板与交通灯模块、蜂鸣器等连接起来。
具体的硬件连接可以参考相关设备的使用手册或说明书。
4. 程序设计4.1. Arduino开发环境首先,安装Arduino开发环境并连接Arduino开发板。
打开Arduino开发环境,选择适配于你的开发板的端口。
4.2. 编写代码使用Arduino开发环境编写代码,实现交通灯的控制逻辑。
以下是一个简单的代码示例:int redPin = 2;int yellowPin = 3;int greenPin = 4;void setup() {pinMode(redPin, OUTPUT);pinMode(yellowPin, OUTPUT);pinMode(greenPin, OUTPUT);}void loop() {// 红灯亮10秒digitalWrite(redPin, HIGH); digitalWrite(yellowPin, LOW); digitalWrite(greenPin, LOW); delay();// 绿灯亮10秒digitalWrite(redPin, LOW); digitalWrite(yellowPin, LOW); digitalWrite(greenPin, HIGH); delay();// 黄灯亮2秒digitalWrite(redPin, LOW); digitalWrite(yellowPin, HIGH); digitalWrite(greenPin, LOW); delay(2000);}以上代码使用了三个输出引脚分别控制红灯、黄灯和绿灯。
EDA交通灯控制电路的设计
EDA交通灯控制电路的设计交通灯控制电路是城市交通管理系统中的重要组成部分,主要用于控制交通信号灯的亮灭和切换,以确保交通的有序进行。
本文将对EDA交通灯控制电路的设计进行详细介绍。
首先,我们需要了解交通灯的基本工作原理。
交通灯一般由红灯、黄灯和绿灯组成,红灯表示停车,黄灯表示准备停车或行驶警告,绿灯表示行驶。
交通灯的工作需要按照一定的时间间隔和顺序进行切换。
接下来,我们将介绍EDA交通灯控制电路的设计步骤。
第一步是确定控制模块。
在设计交通灯控制电路时,我们可以使用数字逻辑芯片或微控制器作为控制模块。
数字逻辑芯片适用于简单的交通灯控制电路,而微控制器可以实现更复杂的功能和灵活的控制。
第二步是确定交通灯的切换顺序和时间间隔。
交通灯的切换顺序和时间间隔需要根据实际道路情况和交通流量进行调整。
一般来说,红灯的时间较长,绿灯的时间较短,以确保交通的流畅和安全。
第三步是确定交通灯控制电路的输入信号。
交通灯的输入信号通常是来自于传感器或计时器。
传感器可以检测车辆、行人等情况,计时器可以按照设定的时间间隔控制灯的切换。
第四步是确定交通灯控制电路的输出信号。
交通灯的输出信号通常是控制灯的亮灭。
通过电路设计,我们可以控制每个交通灯的亮灭,以实现交通灯的切换。
第五步是进行电路设计和布局。
根据确定的输入和输出信号,我们可以开始进行电路设计和布局。
在设计过程中,需要考虑电源供给、输入输出电平、电路保护等因素。
第六步是进行电路仿真和测试。
在完成电路设计和布局后,我们可以使用EDA软件进行电路仿真和测试。
通过仿真和测试,可以确保电路的正常工作和性能符合设计要求。
第七步是进行电路制作和调试。
在电路仿真和测试通过后,我们可以进行电路的制作和调试工作。
在制作和调试过程中,需要注意电路元件的连接、焊接和固定,以确保电路的稳定和可靠性。
最后,我们需要进行交通灯控制电路的性能和安全评估。
通过对电路的性能和安全进行评估,可以检查和改进电路设计,以提高交通灯控制系统的可靠性和安全性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《电子系统设计EDA工具》课程设计报告
班级:电信09-1班
学号: **********
*名:***
指导教师:朱旭光、刘超
一、设计要求
利用at89c52单片机【1】设计交通灯控制程序,并要求设计出有急救车通过时的特殊情况,并用Proteus软件进行仿真,之后用Altium Designer软件画图制板。
1.学习并掌握at89c52单片机编程方法。
2.利用Proteus软件进行功能仿真。
3.将仿真成功的电路用Altium Designer进行绘制原理图,并生成pcb文件,自己进行布局、布线,完成印制电路板的绘制。
二、设计目的
1.掌握Proteus仿真软件及Altium Designer画图软件的使用。
2.掌握51单片机的编程方法,能够用c语言【2】或汇编语言完成所要求的设计任务。
三、设计的具体实现
1.系统概述
本设计是交通灯设计,并加有急救车通过的紧急处理。
其中交通灯部分比较复杂,但仔细分析后发现其实关键就是不同的灯按照规定的顺序时间一次点亮,用普通延时程序即可完成,但考虑到应用于交通控制系统,我才用了定时器延时,定时更加准确。
关于紧急处理部分,我采用外部中断进行控制。
这样当有急救车通过时就可以采用外部中断进入紧急处理程序,方便实用。
2.单元电路设计
上图为单片机最小系统部分,包括ISP下载,阻容复位,时钟晶振,电源指示灯等部分,51单片机复位时间为两个机器周期以上的高电平,顾采用上图所示的上电自动复位和手动复位的接法。
时钟晶振部分选择12MHz晶振,30pf电容作为时钟,能够产生频率稳定的系统时钟。
又因为51单片机P0口不同于其他端口,P0口无上拉电阻,固需要外接上拉电阻。
上图为用8255【3】扩展IO口组成,按照其典型电路连接即可,驱动led发光,因为led发光二极管导通时电流约为10mA,固需要串接限流电阻(通过计算可知电阻值在1k~10k均可)。
3.软硬件设计
3.1硬件设计
上图为Altium Designer绘制的原理图文件,其中部分元件参数与仿真电路中的元件参数不同,因为仿真和实际之间还是有一定的差距。
上图为Proteus仿真电路图,图示状态指示为紧急状态(即有急救车要通过)
上图分别为2D、3D的pcb文件。
3.2软件设计
初始化程序:
#define PA XBYTE[0xFCFF]
#define COM XBYTE[0xFFFF]//宏定义部分IP=0X01;
EA=1;
ET0=1;
TMOD=0x01;
EX0=1;
IT0=0;//低电平触发
COM=0x80; //写8255控制字
延时程序设计:
void delay(uchar t)
{
for(;t>0;t--)
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
while(TF0==0);
TF0=0;
}
TR0=0;
}
中断程序(急救车通过)设计:
void exept0(void) interrupt 0
{
P1=0;
PA=0x09;
while(1);
}
四、结论与展望
初步完成了设计任务,掌握了各个软件的使用,并有了更进一步的灵活运用,本次所做实例只是初步的演示程序,以后如果有时间有精力会尽可能的把它更加完善。
五、心得体会及建议
通过本次课程设计,掌握了很多身为电信专业学生应该掌握的东西,跟进一步学习了相关知识,对所学专业有了进一步的了解。
感谢老师们的辛勤付出,我们真的收获很大。
希望以后能做更多更实用更具创新的设计。
六、参考文献
【1】·郭天祥·新概念C51编程指南名·哈尔滨工程出版社·2009
【2】·谭浩强·C程序设计第三版·清华大学出版社·2007
【3】·梅丽凤·单片机接口技术·清华大学出版社·2006。