EDA课程设计(交通灯控制器)
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实验课程大作业报告:设计制作一个用于十字路口的交通灯控制器

交通灯控制器设计一.系统功能设计要求设计制作一个用于十字路口的交通灯控制器,要求如下:(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交通灯控制器课程设计

交通灯控制器课程设计该交通信号控制器控制十字路甲、乙两条道路的红、黄和绿三色灯,指挥车辆和行人安全通行。
功能要求如下: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;--- - . -word 资料- 仿真图如下:Ya,ra,ga 表示主干道黄红绿灯;yb,rb,gb 表示乡村小路黄红绿灯。
毕业设计-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.设计任务要求:--------------------------------------32.背景分析-----------------------------------------------3 2.1分析:---------------------------------------------32.2系统总体组成框图: ---------------------------43.设计方案:--------------------------------------------5 3.1分频器的设计:---------------------------------5 3.2控制器的设计: ----------------------------------6 3.3计数器的设计: ----------------------------------7 3.4分位译码电路设计:---------------------------8 3.5数码管驱动的设计——绿灯和红灯驱动:93.6数码管驱动的设计——黄灯驱动:------- 104.顶层文件的设计:--------------------------------- 125.设计总结:------------------------------------------ 13摘要:根据数字逻辑电路与系统设计进行实践,利用QuartusⅡ软件设计一个基于EDA技术的由东西车道和南北车道的汇合点形成的十字交叉路口的交通灯控制器,通过分频器模块、控制器模块、计数器模块、分位译码电路模块、驱动模块的实现,经过整体组装、测试及程序来实现交通灯的控制功能。
关键词:QuartusⅡ,交通灯控制器,模块,程序1.设计任务要求:1、功能:实现交通灯控制逻辑,控制红绿灯的亮和灭,并显示红绿灯的倒计时,东西车道和南北车道两条交叉道路上的车辆交替运行,每次通行时间都设为25秒;要求黄灯先亮5秒,才能变换运行车道2、输入信号:时钟信号clk为1kHz3、输出信号:红、绿、黄灯控制信号(高电平时亮),两位倒计时LED数码管(共阴极)显示码(静态显示方式)4、要求:系统由分频器(将1kHz时钟变为1Hz)、计数器(实现25秒和5秒的倒计时)、状态机(控制红绿灯的变换)、显示码译码器(将时间的BCD码转换成LED显示码)。
交通灯控制器 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课程设计 交通灯控制器
v .. . .. 序号《EDA技术》课程设计报告课题:交通灯控制器院系自动化学院专业电气工程及其自动化班级学号姓名指导教师起止日期2015年12月14日-12月25号2015 年12 月目录一﹑设计任务 (3)二、题目分析与整体构思 (3)三﹑硬件电路设计 (4)3.1原理图设计 (4)3.2 PCB图设计 (6)3.3控制器设计 (7)四、程序设计 (9)4.1主程序设计 (9)五、实验结果 (13)5.1 程序仿真图 (13)六﹑心得体会 (14)七、附录 (15)八﹑参考文献 (21)前言伴随着社会的发展以及人类生活水平的提高,汽车的数量在D的DEA技术的发展和应用领域的扩大与深入,EDA技术在电子信息,通信,自动,控制及计算机应用等领域的重要性日益突出。
随着技术市场与人才市场对DEA的不断的增加,交通的问题日益突出,单单依靠人力来指挥交通已经不可行了,所以,设计交通灯来完成这个需求就显的越加迫切了.为了确保十字路口的行人和车辆顺利、畅通地通过,往往采用电子控制的交通信号来进行指挥。
因此,做好基于EDA 技术平台的交叉口信号控制设计是缓解交通阻塞、提高城市道路交叉口车辆通行效率的有效方法。
交通信号控制的目的是为城市道路交叉口(或交通网络)提供安全可靠和有效的交通流,通常最为常用的原则是车辆在交叉口的通过量最大或车辆在交叉口的延误最小。
以下就是运用数字电子设计出的交通灯:其中红灯亮,表示该条路禁止通行;黄灯亮表示停车;绿灯亮表示允许通行。
一﹑设计任务设计一个十字路口的交通信号灯控制器,控制A、B两条交叉道路上的车辆通行,具体要求如下:(1)每条道路设一组信号灯,每组信号灯由红、黄、绿3盏灯组成,绿灯表示允许通行红灯表示禁止通行,黄灯表示该车道上已过停车线的车辆继续通行,未过停车线的车辆停止通行。
(2)设置一组数码管,以倒计时的方式显示允许通行或禁止通行的时间,其中绿灯、黄灯、红灯的持续时间分别是30s、3s和30s。
eda交通控制灯课程设计
eda 交通控制灯课程设计一、课程目标知识目标:1. 学生能够理解并掌握交通控制灯(红绿灯)的基本原理和工作机制。
2. 学生能够描述EDA(电子设计自动化)工具在交通控制灯设计中的应用。
3. 学生能够解释交通控制灯系统中涉及的基础电子元件及其功能。
技能目标:1. 学生能够运用EDA软件完成交通控制灯电路图的绘制。
2. 学生能够通过编程实现对交通控制灯系统的简单控制逻辑。
3. 学生能够运用团队协作和问题解决技能,设计和优化交通控制灯系统。
情感态度价值观目标:1. 培养学生对电子工程领域的兴趣,激发创新意识和探索精神。
2. 增强学生的环保意识和交通安全意识,认识到交通控制灯在现代社会中的重要性。
3. 培养学生的团队协作意识,学会尊重他人意见,共同解决问题。
课程性质:本课程结合了电子技术与实际应用,注重理论与实践相结合,以项目为导向,提升学生的综合技能。
学生特点:假设学生为初中年级,具有一定的电子元件知识基础,对新技术的学习充满好奇,具备基本的计算机操作能力。
教学要求:课程需注重实践性,通过互动式教学和团队协作,使学生在动手实践中理解和掌握知识,提高问题解决能力。
同时,强调安全意识和责任感,培养符合社会主义核心价值观的技能人才。
二、教学内容1. 交通控制灯基础知识:- 红绿灯工作原理介绍- 交通控制灯系统的组成与功能- 交通控制灯在交通安全中的作用2. EDA工具的应用:- EDA软件的认识与基本操作- 交通控制灯电路图的绘制方法- 电路仿真与调试技巧3. 交通控制灯电路设计与制作:- 基本电子元件的选择与应用- 交通控制灯控制逻辑的编写与实现- 电路板设计与焊接技巧4. 项目实践与优化:- 团队协作设计与制作交通控制灯系统- 控制逻辑优化与功能拓展- 作品展示与评价教学内容安排与进度:第一课时:交通控制灯基础知识学习第二课时:EDA软件的认识与基本操作第三课时:交通控制灯电路图绘制与仿真第四课时:电路设计与制作第五课时:项目实践与优化第六课时:作品展示与评价教材章节关联:教学内容与教材中“电子技术应用”章节相关,涉及电子元件、电路设计、EDA工具应用等方面的知识。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计年月日大课程设计任务书课程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.分析系统的逻辑功能:交通灯控制系统的原理框图如图一所示。
它主要由控制器、定时器、译码器和秒脉冲信号发生器等部分组成。
秒脉冲发生器是该系统中定时器和控制器的标准时钟信号源,译码器输出两组信号灯的控制信号,经驱动电路后驱动信号灯工作,控制器是系统的主要部分,由它控制定时器和译码器的工作。
图中:TL: 表示甲车道或乙车道绿灯亮的时间间隔为45秒,即车辆正常通行的时间间隔。
定时时间到,TL=1,否则,TL=0。
TY:表示黄灯亮的时间间隔为5秒。
定时时间到,TY=1,否则,TY=0。
ST:表示定时器到了规定的时间后,由控制器发出状态转换信号。
由它控制定时器开始下个工作状态的定时。
(1)图甲车道绿灯亮,乙车道红灯亮。
表示甲车道上的车辆允许通行,乙车道禁止通行。
绿灯亮足规定的时间隔TL时,控制器发出状态信号ST,转到下一工作状态。
(2)甲车道黄灯亮,乙车道红灯亮。
表示甲车道上未过停车线的车辆停止通行,已过停车线的车辆继续通行,乙车道禁止通行。
黄灯亮足规定时间间隔TY时,控制器发出状态转换信号ST,转到下一工作状态。
辆允许通行绿灯亮足规定的时间间隔TL时,控制器发出状态转换信号ST,转到下一工作状态。
(4)甲车道红灯亮,乙车道黄灯亮。
表示甲车道禁止通行,乙车道上未过停车线的车辆停止通行,已过停车线的车辆继续通行。
黄灯亮足规定的时间间隔TY时,控制器发出状态转换信号ST,系统又转换到第(1)种工作状态。
交通灯以上4种工作状态的转换是由控制器进行控制的。
设控制器的四种状态编码为00、01、11、10,并分别用S0、S1、S3、S2表示,则控制器的工作状态及功能如图二所示,控制器应送出甲、乙车道红、黄、绿灯的控制信号。
为简便起见,把灯的代号和灯的驱动信号合二为一,并作如下规定:图二的控制器工作状态及功能控制状态信号灯状态车道运行状态S0(00)甲绿,乙红甲车道通行,乙车道禁止通行S1(01)甲黄,乙红甲车道缓行,乙车道禁止通行S3(11)甲红,乙绿甲车道禁止通行,乙车道通行S2(10)甲红,乙黄甲车道禁止通行,乙车道缓行符号含义:AG=1:甲车道绿灯亮;BG=1:乙车道绿灯亮;AY=1:甲车道黄灯亮;BY=1:乙车道黄灯亮;AR=1:甲车道红灯亮;由此得到交通灯控制器的流程图,如图二所示。
设控制器的初始状态为S0(用状态框表示S0),当S0的持续时间小于45秒时,TL=0(用判断框表示TL),控制器保持S0不变。
只有当S0的持续时间等于45秒时,TL=1,控制器发出制态转换信号ST(用条件输出框表示ST),并转换到下一个工作状态。
二、设计步骤和调试过程1、总体设计电路2、模块设计和相应模块程序library ieee;use ieee.std_logic_1164.all;entity traffic1 isport(clk,sensor1, sensor2, reset : in std_logic;red1, yellow1, green1, red2, yellow2, green2 : out std_logic);end traffic1;type state_t is (st0,st1,st2,st3,st4,st5,st6,st7);signal state, nextstate : state_t;beginupdate_stae :process (reset, clk)beginif (reset='1') thenstate <= st0 ;elsif clk 'event and clk='1'thenstate <= nextstate ;end if ;end process;transitions :process (state, sensor1, sensor2)variablecnt1,cnt2,cnt3,cnt4,cnt5,cnt6,cnt7,cnt8 :integer range 0 to 255;beginred1 <='0'; yellow1 <='0'; green1 <= '0';red2 <='0'; yellow2 <='0'; green2 <= '0';case state isgreen1 <= '1';red2 <='1';if sensor2 = sensor1 thennextstate <= st1;elsif (sensor1 = '0'and sensor2 = '1') then nextstate<= st2;elsenextstate <= st0;end if;when st1 =>green1 <= '1';red2 <= '1';nextstate <= st2;when st2 =>green1 <= '1';red2 <= '1';nextstate <= st3;when st3 =>yellow1 <= '1';red2 <= '1';nextstate <=st4;red1 <= '1';green2 <= '1';if sensor2 = sensor1 thennextstate <= st5;elsif (sensor1 = '1'and sensor2 = '0') then nextstate <= st6;elsenextstate <= st4;end if;when st5 =>red1 <= '1';green2 <='1';nextstate <= st6;when st6 =>red1 <= '1';green2 <= '1';nextstate <= st7;when st7 =>red1 <= '1';yellow2 <= '1';nextstate <= st0;end process;end a;3、仿真及仿真结果分析仿真图三、结论及心得体会做了一周的课程设计,使我感慨颇多,有关于VHDL方面的,更多的收获是多方面的。
VHDL程序设计也不熟炼,学的东西好像它是它,我是我似的,理论联系不了实际。
以前的汇编语言没学好,一开始的程序这块儿就要令我抓狂了。
后来请教我们班的同学,一起学习。
我觉得我对VHDL的一些知识在这个动手的过程中真的是从无到有增长的。
一段时间里,我应该不会再如此迷惘。
参考资料[1] 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.9大庆石油学院课程设计成绩评价表指导教师:2010年 3 月13 日。