交通灯控制器课程设计报告
交通灯控制器的课程设计
课程设计课题:交通灯控制器的设计一、设计目的:学习QuartusII的使用方法,熟悉可编程逻辑器件的使用。
通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制。
在现代化的大城市中, 十字交叉路口越来越多,在每个交叉路口都需要使用红绿灯进行交通指挥和管理,红、黄、绿灯的转换要有一个准确的时间间隔和转换顺序,这就需要有一个安全、自动的系统对红、黄、绿灯的转换进行管理, 本系统就是基于此目的而开发的。
二、设计任务:1.满足如下时序要求:南北方向红灯亮时,东西方向绿灯亮,反之亦然。
2.每一方向的红(绿)黄灯共维持30秒。
3.当某一方向绿灯亮时,置显示器为30秒,然后以每秒减1计数方式工作,直至减到数为3秒时,红绿灯熄灭,黄灯开始间隙闪耀3秒,减到为0,红绿灯交换,一次工作循环结束,进入下一步另一方向的工作循环。
4.红绿黄灯均采用发光二极管。
5.设计由晶振电路产生1Hz标准秒信号的单元电路。
6.要求对整体电路进行仿真,观察并记录下仿真波形。
三、设计原理:交通灯有四个状态:G1 Y1 R1 G2 Y2 R2S1. 亮灭灭灭灭亮S2. 灭闪灭灭灭亮S3. 灭灭亮亮灭灭S4. 灭灭亮灭闪灭然后重复状态S1.●分频器分频器实现的是将高频时钟信号转换成底频的时钟信号,用于触发控制器、计数器和扫描显示电路。
该分频器将时钟信号分频成1HZ和4HZ的时钟信号。
●控制器控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段数码管的分位译码电路。
此外,当检测到为夜间模式时,手动控制点亮黄灯的二极管。
●计数器这里需要的计数器的计数范围为30-0。
计到0后,下一个时钟沿回复到30,开始下一轮计数。
此外,当检测到夜间模式时,计数器暂停计数,而系统复位信号使计数器异步清零。
四、电路设计1、分频单元电路设计2、30减计数单元电路设计3、红黄绿灯控制单元电路设计4、译码显示单元电路设计●设计流程五、实验程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jiaotong isport(clk,clr:in std_logic;clk1,clk2,clk3:buffer std_logic; ---分频信号pout:out std_logic_vector(6 downto 1);---东西南北的红绿黄灯状态表示C1:out std_logic_vector(3 downto 0);---BCD码高四位表示C0:out std_logic_vector(3 downto 0));---BCD码低四位表示end jiaotong;architecture one of jiaotong issignal g1,y1,r1,g2,y2,r2:STD_LOGIC;---1表示东西方向,2表示南北方向,g,y,r分别表示绿灯,黄灯,红灯signal div:integer range 0 to 20000000; ---分频1signal divn:integer range 0 to 4000000; ---分频2,用于控制黄灯闪烁type st is(s1,s2,s3,s4);---分别表示红绿黄灯的四种组合状态signal state:st;beginC:process(clk)beginif clk'event and clk='1' then---对20HZ进行分频,1HZif(div<19999999)thendiv<=div+1;clk1<='0';else div<=0; clk1<='1';end if;if(divn<2499999)then ---用于黄灯闪烁divn<=divn+1;clk2<='0';else divn<=0; clk2<='1';end if;end if;end process;process (clk1) isvariable t:integer :=31; ---初始赋值beginif clr='1' then ---夜间时为黄灯闪烁,且为手动控制pout(6)<='0'; pout(5)<=clk2 and '1'; pout(4)<='0';pout(3)<='0'; pout(2)<=clk2 and '1'; pout(1)<='0';else if(clk1'event and clk1='1') thent:=t-1;case state is ---四种组合状态转换when s1 =>G1<='1'; Y1<='0'; R1<='0'; G2<='0';Y2<='0';R2<='1'; if(t=3) then state<=s2;else state<=s1;end if;when s2 =>G1<='0';Y1<='1';R1<='0';G2<='0';Y2<='0';R2<='1';if(t=0) then state<=s3;t:=30;else state<=s2;end if;when s3 =>G1<='0';Y1<='0';R1<='1';G2<='1';Y2<='0'; R2<='0';if(t=3) then state<=s4;else state<=s3;end if;when s4 =>G1<='0';Y1<='0';R1<='1';G2<='0';Y2<='1';R2<='0';if(t=0) then state<=s1;t:=30;else state<=s4;end if;when others =>NULL;end case;case t is ---十进制数与BCD码一一对应赋值,输出时便于七段显示译码器显示when 0 => C1<="0000";C0<="0000";when 1 => C1<="0000";C0<="0001";when 2 => C1<="0000";C0<="0010";when 3 => C1<="0000";C0<="0011";when 4 => C1<="0000";C0<="0100";when 5 => C1<="0000";C0<="0101";when 6 => C1<="0000";C0<="0110";when 7 => C1<="0000";C0<="0111";when 8 => C1<="0000";C0<="1000";when 9 => C1<="0000";C0<="1001";when 10=> C1<="0001";C0<="0000";when 11=> C1<="0001";C0<="0001";when 12=> C1<="0001";C0<="0010";when 13=> C1<="0001";C0<="0011";when 14=> C1<="0001";C0<="0100";when 15=> C1<="0001";C0<="0101";when 16 =>C1<="0001";C0<="0110";when 17 =>C1<="0001";C0<="0111";when 18 =>C1<="0001";C0<="1000";when 19 =>C1<="0001";C0<="1001";when 20 =>C1<="0010";C0<="0000";when 21 =>C1<="0010";C0<="0001";when 22 =>C1<="0010";C0<="0010";when 23 =>C1<="0010";C0<="0011";when 24 =>C1<="0010";C0<="0100";when 25 =>C1<="0010";C0<="0101";when 26 =>C1<="0010";C0<="0110";when 27 =>C1<="0010";C0<="0111";when 28 =>C1<="0010";C0<="1000";when 29 =>C1<="0010";C0<="1001";when 30 =>C1<="0011";C0<="0000";when others =>NULL;end case;end if;pout(6)<=G1; pout(5)<=clk2 and Y1;pout(4)<=R1; ---东西南北六盏灯对应pout(3)<=G2; pout(2)<=clk2 and Y2;pout(1)<=R2; end if;end process ;end one;六、测试方法与测试结果1、测试仪器:QUARTUSⅡ2、测试方法:FPGA下载验证与仿真验证3、测试结果:满足设计要求以20HZ为基准仿真:仿真结果:C1:显示30减计数的个位C0:显示30减计数的十位POUT(6):东西方向绿灯控制端POUT(5):东西方向黄灯控制端POUT(4):东西方向红灯控制端POUT(3):南北方向绿灯控制端POUT(2):南北方向黄灯控制端POUT(1):南北方向红灯控制端白天●夜间黄灯闪烁(手动控制)●设计满足了1.30秒倒数显示2.两个方向灯的交替3.黄灯在最后3秒闪烁七、讨论该电路基本上满足了设计要求,电路简单,实现容易,节省器件。
交通信号灯控制器课程设计报告
交通信号灯控制器课程设计报交通信号灯控制器课程报告一.设计要求1、设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行, 绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。
2、主、支干道交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25 秒计时、显示电路。
3、在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡。
提示:选择1HZ时钟脉冲作为系统时钟。
45秒、25秒、5秒定时信号用倒计时,计控制。
根据交通灯的亮的规则,在初始状态下四个方向的都为红灯亮启,进入正常工作状态后,当主干道上绿灯亮时,支干道上红灯亮,持续45S后,主干道和支干道上的黄灯都亮启,持续5S后,主干道上红灯亮启,支干道上绿灯亮启持续25S,之后主干道和支干道上的黄灯都亮启5s, 一个循环完成。
循环往复的执行这个过程。
设计中用两组红黄绿LED模拟两个方向上的交通灯,用4个7段数码管分别显示两个方向上的交通灯剩余时间,控制时钟由试验箱上频率信号1、2、时起始信号由主控电路给出,每当计满所需时间,计数器清零,由主控电路启、闭三色信号灯或启动另一计时电路。
二.设计思路本设计针对一条主干道和一条支干道汇合成的十字路口,进行南北和东西直行情况下交通灯提供。
根据状态机的设计规范,本次设计了四个状态之间的循环转化,其真值表及状态转化图如下所示三.程序说明1 •各输入输出变量说明:elk:计数时钟qclk:扫描显示时钟rst:复位信号,当rst为1时,控制器和计数器回到初始状态en:使能信号,当en为1时控制器开始工作,en为0时hold:特殊情况控制信号,hold为1时,主、支干道方向无条件显示为红灯seg:用于数码管的译码输出dig:用于选择显示的数码管(片选)numl:用于主干道方向灯的时间显示num2:用于支干道方向灯的时间显示light 1:控制主干道方向四盏灯的亮灭,其中,lightl[O卜lightl[2]分别控制主干道方向的绿灯、黄灯和红灯Hght2;控制支干道方向四盏灯的亮灭,其中,Hght2[0]-light2[2]分别控制支干道方向的绿灯、黄灯和红灯2 •输入输出及中间变量设置:module traffic(en,clk9qclk,rst,hold,numl,num2Jightl Jig ht2,seg,dig;input en,clk,qclk,rst9hold;output [5:0]dig;output[7:0] numl9num2;output[6:0]seg;output[2:0]lightl,light2;reg timl,tim2;reg [3:0]disp_dat;reg[6:0]seg;reg[7:0]numl,num2;reg [7:0] red 1 ,red2,green 1 ,green2,y ello wl ,y ello w2 reg[5:0]dig;reg [l:0]count;reg [ 1: OJstate 1 ,state2;reg [2: OJlight 1 Jight2;always @(en)if(!en) begingreenl<=8*b01000101;redl<=8fb00100101; yellow 1 <=8' bOOOOO 101; green2<=8*b00100101; red2<=8f b01000101; yellow2<=8,b00000101; end4 •主干道方向点亮顺序:always @ (posedge elk) //主干道 begin if(rst) beginlightl<=3f b001; numl<=greenl; end else if(hold) begin3 •初始状态设flightl<=3fbl00; numl<=greenl; end else if(en)begin if(!timl) begin case(statel)2fb00:begin numl<=greenl; statel<=2f b01; end2f b01: begin num 1 <=yellowl; statel<=2f bll; end 2'bll:b£gin numl<=redl; statel<=2f bl0; end2' b 10: begin num 1 <=yellow 1;statel<=2f b00; end default:lightl<=3,bl00; endcase endelse 〃主干道倒数计时 begin if(numl>0)if(numl[3:0]==0) begin numl[3:0]<=4,bl001; numl[7:4]<=numl[7:4]-l;lightl<=3,b001; lightlv=3'b010; lightl<=3f bl00;lightl<=3f b0X0;endelse numl[3:0]<=numl[3:0]-l;if(numl==l)timl<=0;endendelsebegin lightl<=3,b010; numl=2T b00; timl<=0; endend5 •支干道方向点亮顺序:always @ (posedge elk) //支干道beginif(rst)beginlight2v=3'bl00;num2<=red2;endelse if(hold)beginlight2v=3'bl00; num2<=red2; endelse if(en)beginif(!tim2)begintim2<=l;case(statel)2!b00:begin num2<=red2; state2<=2 f b01; end 2f b01: beginnum2<=yellow2; state2<=2f bll; end 2f bll: begin num2<=green2;state2<=2 *blO; end2' b 10: begin num2<=yellow2; state2<=2' bOO; end light2<=3f bl00; light2<=3,b010; light2<=3f b001; light2<=3f b010;default:light2<=3,bl00;endcaseendelse 〃支干道倒数计时beginif(num2>0)if(num2 [3:0]==0)beginnum2[3:0]<=4,bl001;num2 [7:4] <=num2 [7:4]-l; end else num2[3:0]<=num2[3:0] -1; if(num2==l)tim2<=0;end endelsebeginlight2<=3f b010; state2v=2'b00; tim2<=0;endend6 •数码管译码及显示:always @(posedge qclk) 〃定义上升沿触发进程begincount <= count +l T bl;end always @ (count) begincase(count)〃选择扫描显示数据2'dO : disp_dat <= numl[3:0]; 〃第一个数码管2'dl : disp_dat <= numl[7:4]; 〃第二个数码管2'd2 : disp_dat <= num2[3:0]; 〃第三个数码管2'd3 : disp_dat <= num2[7:4]; 〃第四default: disp_dat <= 0; endcaseendalways @ (count) begin case(count)数码管显示位2f d0 : dig<= 6P011111;//选择第一个数码 管显示 2f dl : dig<= 6P101111;//选择第二个数码 管显示 2P2 : dig <= 6P110111;//选择第三个数码 管显示2P3 : dig<= 6P111011;//选择第四个数码管显示default: dig<= 6^111111;endcase endalw 町s @ (disp_dat) begincase (disp_dat)〃七段译码个数码管〃选择4f b0000 : seg<= 7^0111111;〃显示” (T4'b0001 : seg <= 7^0000110; //显示T”4'b0010 : seg<= 7^1011011;〃显示”2”4f b0011 : seg<= 7^1001111;〃显示'3'4'b0100 : seg <=7^1100110; 〃显示”4”4^0101 : seg<= 7^1101101;〃显示”5”4^0110 : seg<= 7^1111101;〃显示”6”4'b0111 : seg<= 7^0000111;〃显示”7”4'bl000 : seg <= 7^1111111;4'bl001 seg <=g 曲*CW ulaion Kg LeC«l Hoti<Sxwiai Jlc XU*Sirrdat^rSatlioxiO Situldli (Brer w 釘| ◎ Ccrrc45boftRew!•... | 色 Ek.w* >•・ V«vef«r»sS>«ol*l i ・e ・od« TiaincI E *:.w7^1101111; // 显示”9”default:7P0111111;//不显示endcaseend endmodule三.仿真波形图IT - D;/t fic2/traffic - traffic 一 (Siaiolat ion Report - Sivulst ion曹 Z>Lo RdiQ vier "ojce, £s5i«rr-an« I«ol5 J>r 如生”seg<=1041kYiooiLin 1】10】1】 1】IO 】LomulOllll J10H1COO(01ICC010D 」I1UI0JumocjijuuvwuuuumifinwiRnjuinmfuuuiiifinnwuuuinjinmnjuu ififimuuuuuinnnjvuuuiJiG BOil Mil=3to 订“co 贩no»3 nca2 QClk r»t rst]38 <j>?TMoslcs Trr^Bar271邛 StatIcteivd 1205 m272MQ licl.il Q ltxhiz9:fl四.实物图。
课程设计报告——交通信号灯控制器
目录一、设计背景 (2)二、任务和要求 (2)三、总体设计方案 (3)1.状态设置 (3)2.系统框图 (3)a.系统总框图 (3)b.系统状态转换框图 (4)四、单元电路设计 (4)1.倒计时电路(定时电路) (4)2.状态控制器(主控电路) (5)3.交通灯显示电路、 (5)4.数码管显示 (6)5.置数变换电路 (6)6.流量控制电路 (7)五、总电路原理图 (8)六、总电路图 (9)七、原件清单 (10)八、电路连接与调试 (10)九、设计总结 (10)十、参考文献 (11)一、 设计背景在现代城市中,人口和汽车日益增长,市区交通也日益拥挤,人们的安全问题也日益重要。
因此,红绿交通信号灯成为交管部门管理交通的重要工具之一。
交通信号灯常用与交叉路口,用来控制车的流量,提高交叉口车辆的通行能力,减少交通事故。
有了交通灯人们的安全出行有了很大的保障。
二、任务和要求红绿灯交通信号系统外观示意图如图1所示。
1.在十字路口的两个方向上各设一组红黄绿灯,显示顺序为其中一方向是绿灯、黄灯、红灯;另一方向是红灯、绿灯、黄灯。
2.设置一组数码管,以倒计时的方式显示允许通行或禁止通行时间,其中一个方向上(主干道)绿灯亮的时间是45s ,另一个方向上(支干到)绿灯亮的时间是25s ,黄灯亮的的时间都是5s 。
3.要求加装一流量控制电路,使电路拥有流量控制功能,既:当一条路上无车,另一条路上有车时,这条路上的绿灯长亮,另一条路上红灯长亮。
三、总体设计方案1.状态设置状态1(00):主车道的绿灯亮,车道,人行道通行;南北方向车道的红灯亮,车道,人行道禁止通行。
状态2(01):主车道的黄灯亮,车道,人行道缓行;南北方向车道的红灯亮,车道,人行道禁止通行;状态3(10):支车道的红灯亮,车道,人行道禁止通行;南北方向车道的绿灯亮,车道,人行道通行;状态4(11):支车道的红灯亮,车道,人行道禁止通行;南北方向车的黄灯亮,车道,人行道缓行;2.系统框图a.系统总框图流量控制电路b.系统状态转换框图图2 工作流程图四、单元电路设计1.倒计时电路(定时电路)倒计时器由两位4位十进制可逆同步计数器(双时钟)74LS192、一个非门和一或门构成。
交通灯控制器课程设计报告
河南科技大学课程设计报告课程名称 __单片机原理课程设计_题目名称 _ 交通灯控制器设计学生学院 ___ 信息工程学院_____专业班级 ___ 自动化114 __学号学生姓名 __ _ ___ ___指导教师 __ _ _______2014 年 6 月 5 日课程设计任务书(指导教师填写)课程设计名称单片机原理学生姓名专业班级自动化114 设计题目交通灯控制器设计一、课程设计目的1.培养学生文献检索的能力,如何利用Internet检索需要的文献资料。
2.培养学生综合分析问题、发现问题和解决问题的能力。
3.培养学生综合运用知识的能力和工程设计的能力。
4.培养学生理论联系实际的能力。
5.提高学生课程设计报告撰写水平。
二、设计内容、技术条件和要求1设计内容交通灯控制器设计主要功能是用单片机控制LED灯模拟指示。
模拟东西南北方向的十字路口交通灯信号控制情况。
以89C51单片机为核心芯片,采用中断方式实现控制。
(1)数码管选用2位共阴极显示的数码管,共4个;(2)东西通行时间为80s,南北通行时间为60s,缓冲时间为3s;2 设计要求•设计单片机最小系统(包括复位按钮、晶振电路等);•绘制实现本设计内容的硬件电路(原理图),系统的组成框图。
•相应的控制状态表;•编写本课程设计内容的软件设计(包含程序流程图和对程序注释)。
•硬件实验部分可选用实验箱测试或Proteus仿真软件实现。
3 总体设计思想(供参考)•利用定时器T0产生每10ms一次的中断,每100次中断为1s;•对两个方向分别显示红、绿、黄灯的剩余时间即可;•用MAX7219芯片实现共阴极显示驱动;•A方向的红灯时间=方向的绿灯时间+黄灯缓冲时间。
4 设计参考交通灯控制器设计有电源电路、单片机主控电路、显示电路、信号灯电路等组成,如图1所示:5 知识点准备:•+5V电源原理及设计;•MAX7219工作原理;•单片机复位电路工作原理及设计(元件选择的依据);•单片机晶振电路工作原理及设计(元件选择的依据);•数码管显示特性、驱动设计及应用;•LM1602液晶显示屏特性、驱动设计及应用;•89C51单片机引脚资源、引脚分配等;单片机汇编语言及程序设计(中断、延时子程序的设计)。
交通灯控制器 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。
数字逻辑课程设计报告--交通灯控制器
数字逻辑课程设计报告——交通灯控制器学院名称:学生姓名:专业名称:班级:实习时间:2013年6月3日—— 2013年6月14日一、实验目的:1.掌握时序逻辑电路的设计方法,灵活运用理论知识。
2.提高自己的数字系统设计能力和实际动手能力。
3.了解如何将数字电路设计应用到自动控制系统中,从而提高解决实际问题的能力。
二、实验任务与要求1.红绿灯交通信号系统外观示意图2.总体任务及要求⑴ 在十字路口的两个方向上各设一组红黄绿灯,显示顺序为其中一个方向是绿灯、黄灯、红灯;另一个方向是红灯、绿灯、黄灯。
⑵ 设置一组数码管,以倒计时的方式显示允许通行或禁止通行时间,其中一个方向上红灯亮的时间是30s ,另一个方向上绿灯亮的时间是20s ,黄灯亮的时间都是5s 。
⑶ 用两组数码管,实现双向倒计时显示。
3.总时序工作流程图三、总体方案的设计1、主控电路在设计要求中要实现四种状态的自动转换,首先要把这四种状态以数字的形态表示出来,可以通过两位二进制数表示所需状态(00—Gr, 01—Yr, 11—Rg, 10—Ry),循环状态:(00—01—11—10—00)。
可以设计一个模为4的计数器,其输出(代表不同状态)既可以循环转换,而且能够控制其他部分电路,所以可以利用74LS74(双上升沿D触发器)设计模4计数器作为主控部分电路。
主控电路2、脉冲输出部分脉冲输出部分为555时基芯片构成的多次谐波震荡器,电路原理图如右:其中器件参数分别为R1=4.7kΩ,R2=150kΩ,C1=4.7μF,C2=0.01μF。
产生的时钟脉冲为周期T=1s的方波。
电容C1充电时,暂稳态持续时间为tw1=0.7(R1+R2)C=0.7×(150k+4.7k) ×4.7μ≈0.5s电容C1放电时,暂稳态持续时间为tw2=0.7R2C=0.7×150k×4.7μ≈0.5s因此,电路输出矩形脉冲的周期为T= tw1+tw2≈1s输出占空比为q= tw1/T≈50%脉冲输出3、红绿灯显示电路红绿灯显示是表示电路所处状态,受到主控电路控制,即主控电路的输出(A和B)决定了主干道和支干道的红绿灯的情况。
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;下载可编辑.专业.整理. 仿真图如下:Ya,ra,ga 表示主干道黄红绿灯;yb,rb,gb 表示乡村小路黄红绿灯。
交通灯控制器课程设计
目录
1 设计任务及要求 2 总体设计方案 3 控制电路设计
3.1 控制电路工作原理 3.2控制电路设计过程
4 倒计时电路设计
4.1具有同步置数功能的十进制减法计数器设计 4.2主干道和支干道倒计时电路设计
5 译码显示电路设计
5.1动态显示工作原理 5.2动态显示及译码电路设计
共阴极数码管:将每个数码管的公共端(阴极)分别接三-八译码器的输出, 三-八译码器的输入为位选信号;将多个数码管的相同段接在一起,作为段码 输入端。
七段译码
报告要求
CONTENTS
01 封面
02 目录:四号 宋体
03
正文:小四 宋体 1.5 倍行距
04 参考文献 :五号 宋体
一号 宋体
四号 宋体
由具有同步置数功能的十进制减法计数器实现。
将2片级联实现2位十进制减法计数器。
当主干道或者支干道减法计数器值为01时,产生同步置数信 号,将下一状态计数初值置入。
状态
S0
00
S1
01
S2
10
S3
11
主干道预置数
D7D6 D5D4
D3D2 D1D0
0000
0101
0101
0000
0000
0101
0110
○ 黄灯每秒闪亮一次。
总体方案
时钟
红绿 灯
控制器
交通灯控 制器的功 能框图
倒计时 计数器
数码 显示扫描
管
、译码
设主干道绿灯、黄灯、红灯分别为G1、Y1、R1;支 干道绿灯、黄灯、红灯分别为G2、Y2、R2,并且 均用0表示灭,1表示亮,则交通灯有如下四种输出 状态:
状态
电子技术课程设计报告--交通灯控制系统
交通信号灯控制系统设计报告一.实验目的1.掌握综合应用数电理论知识和中规模集成电路设计方法2.掌握调试及电路主要技术指标的测试方法。
3 了解交通灯管理的基本工作原理。
二、交通灯控制器任务及要求1、能显示十字路口东西、南北两个方向的红、黄、绿的指示状态用两组红、黄、绿三色灯作为两个方向的红、黄、绿灯。
2、能实现正常的到计时功能用两组数码管作为东西和南北方向的到计时显示,主干道每次放行(绿灯)60秒,支干道每次放行(绿灯)45秒,在每次由绿灯变成红灯的转换过程中,要亮黄灯5秒作为过渡。
3、能实现特殊状态的功能(选做)(1〉按sl键后,能实现特殊状态功能:(2)显示到计时的两组数码管闪烁;(3)计数器停止计数并保持在原来的状态:(4)东西、南北、路口均显示红灯状态:(5)特殊状态解除后能继续计数。
4、能实现总体清零功能:按下该键后,系统实现总清零,计数器由初始状态计数,对应状态的指示灯亮。
5、完成电路全部设计后,通过实验箱验证设计课题的正确性。
三.比较和优选设计方案1.方案1:利用单片机来设计1)显示界面该系统要求完成倒计时、状态灯等功能。
完全采用数码管显示。
这种方案虽只显示有限的符号和数码字苻,但是完全胜任题目要求。
2)输入:题目要求系统能手动设灯亮时间、紧急情况处理。
直接在IO口线上接上按键开关。
因为设计时精简和优化了电路,所以剩余的口资源还比较多,我们使用四个按键,分别是K1、K2、K3、K4。
由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用。
3)输出:控制发光二极管,来表示红绿灯的亮灭,及山烁。
系统由单片机系统、键盘、LED 显示、交通灯演示系统组成。
方案2:利用中规模集成芯片来实现。
其中信号灯的亮灭有三种可选方案:1)利用74LS161:2)利用存储器:3)利用扭环循环控制。
方案选择:由于这次实验是电工电子实验。
利用方案1不太满足要求。
方案2中利用扭环循环控制信号灯的亮灭,不容易实现特殊功能状态;利用存储器需要对芯片编码,有时会出现编码混乱的情况,这样会造成电路检测的不便。
交通灯控制器+数字电路课程设计报告
交通灯控制器+数字电路课程设计报告交通灯控制器是交通管理系统中的重要组成部分,其主要作用是控制道路上的交通信号灯。
随着数字电路技术的发展,交通灯控制器也逐渐向数字化、智能化方向发展。
本文将详细介绍一种基于数字电路的交通灯控制器设计,以及该设计方案的实现和效果。
一、设计方案1.硬件设计硬件设计方案主要包括数字电路的选择、交通灯的控制模块、传感器等。
本方案选用FPGA芯片作为控制芯片,该芯片具有先进的数字信号处理能力和可编程性,便于开发和定制。
交通灯的控制模块包括红灯、黄灯、绿灯三个信号灯的控制器,以及车辆、行人传感器等。
其中车辆传感器主要用来检测车流量,行人传感器主要用来检测行人通行情况。
2.软件设计软件设计方案主要包括程序的设计和调试,以及人机界面的设计和开发。
程序设计方案采用Verilog HDL语言进行实现,采用时序逻辑设计的思路来编写程序,实现红绿灯的控制和状态转移。
人机界面采用C语言进行编写,通过串口通信与控制芯片进行数据传输和控制。
二、实现过程在设计方案确定后,我们进一步开始实现。
首先是电路的焊接和测试,在确定电路正常无误后,再完成程序的编写和调试。
最后是人机接口的开发和完善。
具体实现流程如下:1.电路焊接首先进行电路布线和焊接,将FPGA芯片、光耦隔离器、电位器等元器件焊接到电路板上,以及信号灯、传感器等元器件的接入。
2.程序编写利用Verilog HDL语言编写程序,主要包括红绿灯状态的转移逻辑和相应的信号输出控制。
程序设计过程中,需要注意时序和状态的转移。
3.调试测试完成程序编写后,需要进行相应的调试测试。
通过仿真测试,检查程序逻辑是否正确,排除潜在问题。
在硬件实验平台上进行测试,确定系统能够正常工作。
4.人机界面开发利用C语言编写人机界面,实现与交通灯控制器的交互控制。
实现车辆、行人传感器的数据采集和显示,以及人手动控制交通灯的功能。
三、实现效果通过测试和实验验证,本文的交通灯控制器设计方案具有以下优势:1.使用FPGA芯片作为控制芯片,具有较强的可编程性和数字信号处理能力。
交通灯控制器设计报告
(封面)XXXXXXX学院交通灯控制器设计报告题目:院(系):专业班级:学生姓名:指导老师:时间:年月日设计内容及要求(题目)任务1:交通灯控制器的设计设计内容与要求①设计一个十字路口交通信号灯的控制电路。
要求红、绿灯按一定的规律亮和灭,并在亮灯期间进行倒计时,且将运行时间用数码管显示出来。
②绿灯亮时,为该车道允许通行信号,红灯亮时,为该车道禁止通行信号。
要求主干道每次通行时间为Tx秒,支干道每次通行时间为Ty秒。
每次变换运行车道前绿灯闪烁,持续时间为5秒。
即车道要由X转换为Y时,X在通行时间只剩下5秒钟时,绿灯闪烁显示,Y仍为红灯。
③可以对X,Y车道上交通灯运行的时间进行重新设置,20≦Tx≦99 ,10≦Ty≦39④对器件进行在系统编程和实验验证。
⑤写出设计性实验报告,并打印各层次的源文件和仿真波形,然后作简要说明。
可以看得出其实四个状态可以简化,在后期实施的时候为了简化故将四个状态转换成了两个状态,即为干路和支路的两个不同的状态修改后的状态结构框图如下(未加附加功能):State1:干路绿灯开始常亮,支路红灯开始常亮,等到了干路计时还剩下五秒的时候,干路绿灯交替闪亮,支路红灯不变。
State2: 2.干路转换为红灯常亮,支路变为为绿灯常亮,等到了支路计时还剩下五秒的时候,支路绿灯交替闪亮,干路红灯不变。
在分析系统的组成结构,可以知道系统大概有三个部分组成,其中不难得出,包括:1.显示部分:分为指示灯显示和数码管显示(其中这两者应该是同步的,同一控制器,秒脉冲控制)。
2.计数部分:计数器递减计数要求是以秒脉冲计数,当达到指定时间要有重置部分将时间重置,重新计数。
3.控制部分:提供秒脉冲时钟信号,控制数码管和指示灯的变化以及设置时间等功能。
三部分之间的关系可以表达为:重置计数器重新开始计数控制时间达到预定值经上面分析,大致可以得到整个交通灯的结构框图:系统框图经过分析可知,该设计需要时钟信号,所以需要秒脉冲信号 1.信号发生器要显示亮灯时间需要 2.计数器3.数码显示器对于主路和支路需要显示红绿灯,故需要4.信号显示灯5.状态译码器其中各部分功能如下:交通指示灯:显示主支路通行情况;数码管显示:显示通行剩余时间,从绿灯亮起开始计算,转换灯的颜色后重新计数;状态译码器:经控制器控制,输出交通指示灯和数码管显示当前状态;控制器:控制状态译码器的输出状态和控制递减计数器的计数和重置;重置装置:接收控制器的命令,在相应的时段使递减计数器重置,重新从预设值递减;减法计数器:控制数码显示管的数值计时显示;分频器:将脉冲信号提供的源信号进行分频,得到秒脉冲信号;脉冲源信号:为整个电路提供初始脉冲源信号;设置时间: 由控制器输入设置,改变主支路上的绿灯的时间。
(完整word版)交通灯控制器课程设计
河南科技学院新科学院电子课程设计报告题目:交通灯控制器设计专业班级:电气工程及其自动化094姓名:胡金友时间:2011.6.8 ~2011.6.18指导教师:孔晓红苗青林完成日期:2011年6月15日交通灯控制器设计任务书1设计目的与要求设计一个交通灯控制器,要认真并准确地理解有关要求,独立完成系统设计,在双干线的路口上,交通信号灯的变化按照下面假定进行计时:(1)放行线,绿灯亮放行25秒,黄灯亮警告5秒,然后红灯亮禁止。
(2)禁止线,红灯亮禁止30秒,然后绿灯亮放行。
使两条路线交替的成为放行线和禁止线,便可实现交通控制。
(3)特殊情况下能实现手动操作。
2.设计内容(1)画出电路原理图,正确使用逻辑关系;(2)确定元器件及元件参数;(3)进行电路模拟仿真;(4)SCH文件生成与打印输出;(5)PCB文件生成与打印输出。
3.编写设计报告写出设计的全过程,附上有关资料和图纸,有总结体会。
4.答辩在规定时间内,完成叙述并回答问题。
目录1设计任务 (2)1.1交通灯控制器设计任务书 (2)1.2引言 (3)2设计方案 (3)2.1总体设计方案说明 (4)2.2模块结构与电路图 (5)3整体电路 (10)4设计总结 (11)5参考文献 (11)交通灯控制器设计摘要:为确保车辆安全,行人安全有序地通过城市交通叉路口,本设计介绍一种线路简单、成本低、体积小、可靠性高的全电子指挥信号灯控制器。
利用74LS190、74LS139、NE555等芯片简易的实现交通指挥信号灯的全自动化控制。
关键词:交通灯、计时器、控制器、秒脉冲1引言生活中跟大家关系最为密切的交通是道路,因为每个人都要走路,所以交通灯就尤其重要.交通灯是控制陆地交通的枢纽,如果没有交通灯的出现,那么现在社会人类恐怕连路都不好走了.特别是上下班高峰时候,交通就是非常拥挤,这个时候交通灯就起了关键作用.它起了分流交通作用,不会造成交通堵塞.它按照上下班高峰期、顺畅期等交通流量的不同而设置各车道的通行时间,那样以后车辆就会各就各位,不会有什么抢道和车辆碰撞啦,还有车与人争过街的事情发生啦,交通就会井然有序了,人们走路就安心多了,汽车就会更快的到达。
交通灯控制器课程设计
交通灯控制器 课程设计一、课程目标知识目标:1. 理解交通灯控制器的基本原理,掌握其电路组成及功能。
2. 学习并掌握交通灯控制器中的基础电子元件及其工作原理。
3. 了解交通灯控制器的实际应用,理解其在交通安全中的作用。
技能目标:1. 能够运用所学知识设计简单的交通灯控制器电路。
2. 学会使用相关工具和仪器进行电路搭建和调试。
3. 提高分析问题和解决问题的能力,通过实践操作培养动手能力。
情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发他们探索科学的精神。
2. 增强学生的团队合作意识,培养沟通与协作能力。
3. 培养学生的安全意识,让他们明白遵守交通规则的重要性。
课程性质:本课程为电子技术实践课程,结合理论教学,注重培养学生的动手实践能力和创新思维。
学生特点:考虑到学生所在年级,已有一定的基础知识,具备初步的分析和解决问题的能力,对电子技术有一定的好奇心。
教学要求:在教学过程中,注重理论与实践相结合,鼓励学生积极参与讨论和实践活动,培养他们的自主学习能力和创新意识。
通过课程学习,使学生能够达到上述设定的具体学习成果。
二、教学内容1. 交通灯控制器原理- 红绿灯工作原理及切换逻辑- 时序控制器的基本概念- 电路图解读及元件功能分析2. 基础电子元件- 电阻、电容、二极管、三极管等元件的特性与应用- 传感器及其在交通灯控制器中的作用3. 交通灯控制器电路设计- 电路图的绘制与解读- 元件的选型与连接- 电路搭建及调试方法4. 实践操作- 搭建简单交通灯控制器电路- 编写控制程序,实现交通灯自动切换- 故障排查与电路优化5. 交通灯控制器应用案例- 实际交通场景中的交通灯控制器应用- 交通安全与节能减排的意义教学内容安排与进度:第一课时:交通灯控制器原理,红绿灯工作原理及切换逻辑第二课时:基础电子元件,电路图解读及元件功能分析第三课时:交通灯控制器电路设计,电路图的绘制与解读第四课时:实践操作,搭建简单交通灯控制器电路第五课时:编写控制程序,实现交通灯自动切换,故障排查与电路优化第六课时:交通灯控制器应用案例,讨论交通安全与节能减排的意义教材章节关联:本教学内容与教材中关于数字电路、电子元件、电路设计等相关章节紧密关联,通过本课程的学习,使学生能够将理论知识与实践相结合,提高综合运用能力。
交通灯课程设计报告
交通灯课程设计报告交通灯课程设计报告一、引言交通灯作为道路上重要的交通控制设施之一,对于保障道路交通的安全和顺畅起着重要的作用。
本课程设计旨在通过设计一个交通灯控制系统,深入理解交通灯的原理和设计思路,提高交通灯控制系统的效能和稳定性。
二、设计目的交通灯的主要目的是控制道路上的交通流量,确保各方交通的有序进行,避免交通事故的发生。
传统的交通灯系统采用固定时间的定时控制,而随着道路交通的不断变化,这种控制方式已经越来越难以适应实际需求。
因此,本设计旨在实现一个智能化的交通灯控制系统,通过分析交通流量、优化信号灯时长,并结合实时数据对交通灯进行调整,从而提高道路交通的效率和安全性。
三、设计原理本交通灯控制系统采用基于传感器和控制器的设计原理。
通过在道路上布置传感器,能够实时感应到车辆和人流量的变化,将这些数据传输给控制器进行处理。
控制器根据实时的交通流量情况,结合预设的交通灯时长和优先级设置,通过控制信号灯的亮灭来实现交通的有序进行。
四、设计步骤1. 环境搭建:搭建交通灯控制系统所需的硬件和软件环境,包括传感器、控制器和相关的编程和算法。
2. 传感器布置:在道路上合理布置传感器,确保能够准确感应到车辆和人流量的变化。
3. 数据采集:传感器感应到的数据通过传输线路传输给控制器,控制器进行实时的数据采集和处理。
4. 数据分析:控制器对传感器采集到的数据进行分析和处理,根据实时的交通流量情况进行交通灯时长和优先级的调整。
5. 信号灯控制:控制器通过控制信号灯的亮灭来实现交通的有序进行,确保交通流量的安全和高效。
五、设计效果通过本交通灯控制系统的设计实现,能够有效地优化交通流量,提高道路的通行效率和安全性。
相比传统的固定时间控制系统,本设计能够根据实时的交通状况进行智能化调控,避免道路拥堵和交通事故的发生。
并且通过合理的交通灯时长和优先级设置,可以更好地满足不同道路和路口的交通需求。
六、总结本课程设计通过对交通灯控制系统的智能化升级和优化,能够提高交通流量的效率和安全性。
交通灯控制器设计报告
交通灯控制器设计报告一.设计目的.(1)初步学习,运用VHDL(Verilog)语言编写模块程序。
(2)巩固课堂所学的组合逻辑电路,时序逻辑电路及其有关的应用,如计数器,分频器等。
(3)提高实践及运用意识。
二.设计任务及要求.利用EDA/SOPC实验开发平台提供的八位七段管码显示模块以及EP2C35核心板,实现交通灯信号控制器。
设交通灯信号控制器用于主干道公路的交叉路口,要求是优先保证主干道的畅通,因此,平时处于“主干道绿灯,支道红灯”状态。
(1)当处于“主干道绿灯,支道红灯”状态:①主干道有车要求通行,支道也有车要求通行时,若主干道通行时间大于等于30秒则切换到“主黄,支红”,4秒后自动切换到“主红,支绿”。
②主干道无车要求通行,支道有车要求通行时,立即切换到“主黄,支红”,4秒后自动切换到“主红,支绿”。
其它情况保持“主绿,支红”状态。
(2)当处于“主干道红灯,支道绿灯”状态:①支道有车要求通行时,保持“主红,支绿”状态,但最多保持30秒然后自动切换到“主红,支黄”状态,4秒后自动切换到“主绿,支红”状态。
②支道无车要求通行时,立即切换到“主红,支黄”状态,4秒后自动切换到“主绿,支红”状态。
(3)利用八位七段管码显示模块其中的2位实现时间显示。
(4)扩展要求:自主设计(如改变时间显示方式,丰富控制逻辑等)三.设计原理及方案.1.总体设计框图2.原理概述:(1)由于主干道,支干道的交通灯均在绿,黄,红三种状态之间有顺序的转换,组合共有四种。
所以,利用状态机按照设定的条件实现“主绿,支红” 、“主黄,支红” 、“主红,支绿”、“主红,支黄”4种状态之间的切换。
(2)因为红黄绿灯之间转换有时间限制,所以要有计数器,可用七段数码管显示模块,由于时间是两位数,所以只需要八位七段管码显示模块其中的2位实现时间显示。
(3)由于实验室提供的基准频率为50MHZ,所以得用分频器得到所需要的频率。
四.电路设计及实现.(1)各模块设计程序及模块图:1定时器定时器由系统秒脉冲和同步计数器构成。
交通信号灯控制器课程设计报告
交通信号灯控制器课程设计报告交通信号灯控制器课程报告一.设计要求1、设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。
2、主、支干道交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。
3、在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡。
提示:1、选择1HZ时钟脉冲作为系统时钟。
2、45秒、25秒、5秒定时信号用倒计时,计时起始信号由主控电路给出,每当计满所需时间,计数器清零,由主控电路启、闭三色信号灯或启动另一计时电路。
二.设计思路本设计针对一条主干道和一条支干道汇合成的十字路口,进行南北和东西直行情况下交通灯控制。
根据交通灯的亮的规则,在初始状态下四个方向的都为红灯亮启,进入正常工作状态后,当主干道上绿灯亮时,支干道上红灯亮,持续45S后,主干道和支干道上的黄灯都亮启,持续5S后,主干道上红灯亮启,支干道上绿灯亮启持续25S,之后主干道和支干道上的黄灯都亮启5s,一个循环完成。
循环往复的执行这个过程。
设计中用两组红黄绿LED模拟两个方向上的交通灯,用4个7段数码管分别显示两个方向上的交通灯剩余时间,控制时钟由试验箱上频率信号提供。
根据状态机的设计规范,本次设计了四个状态之间的循环转化,其真值表及状态转化图如下所示目前状态下一状态输出Light1 Light2S0=00 S1=01 001 100 S1=01 S2=10 010 010 S2=10 S3=11 100 001 S3=11 S0=00 010 010S0S3 S1S2三.程序说明1.各输入输出变量说明:clk:计数时钟qclk:扫描显示时钟rst:复位信号,当rst为1时,控制器和计数器回到初始状态en:使能信号,当en为1时控制器开始工作,en为0时hold:特殊情况控制信号,hold为1时,主、支干道方向无条件显示为红灯seg:用于数码管的译码输出dig:用于选择显示的数码管(片选)num1:用于主干道方向灯的时间显示num2:用于支干道方向灯的时间显示light1:控制主干道方向四盏灯的亮灭,其中,light1[0]~light1[2]分别控制主干道方向的绿灯、黄灯和红灯light2:控制支干道方向四盏灯的亮灭,其中,light2[0]~light2[2]分别控制支干道方向的绿灯、黄灯和红灯2.输入输出及中间变量设置:moduletraffic(en,clk,qclk,rst,hold,num1,num2,light1,lig ht2,seg,dig;input en,clk,qclk,rst,hold;output [5:0]dig;output[7:0] num1,num2;output[6:0]seg;output[2:0]light1,light2;reg tim1,tim2;reg[3:0]disp_dat;reg[6:0]seg;reg[7:0]num1,num2;reg[7:0]red1,red2,green1,green2,yellow1,yellow2 ;reg[5:0]dig;reg [1:0]count;reg[1:0]state1,state2;reg[2:0]light1,light2;3.初始状态设置:always @(en)if(!en)begingreen1<=8'b01000101;red1<=8'b00100101;yellow1<=8'b00000101; green2<=8'b00100101;red2<=8'b01000101;yellow2<=8'b00000101;end4.主干道方向点亮顺序:always@(posedge clk) //主干道beginif(rst)beginlight1<=3'b001;num1<=green1;endelse if(hold)beginlight1<=3'b100;num1<=green1;endelse if(en)beginif(!tim1)begintim1<=1;case(state1)2'b00:begin num1<=green1; light1<=3'b001; state1<=2'b01; end2'b01:begin num1<=yellow1; light1<=3'b010; state1<=2'b11; end2'b11:begin num1<=red1; light1<=3'b100; state1<=2'b10; end2'b10:begin num1<=yellow1; light1<=3'b010; state1<=2'b00; enddefault:light1<=3'b100;endcaseendelse //主干道倒数计时beginif(num1>0)if(num1[3:0]==0)beginnum1[3:0]<=4'b1001;num1[7:4]<=num1[7:4]-1;endelse num1[3:0]<=num1[3:0]-1;if(num1==1)tim1<=0;endendelsebeginlight1<=3'b010;num1=2'b00;tim1<=0;endend5.支干道方向点亮顺序:always@(posedge clk) //支干道beginif(rst)beginlight2<=3'b100;num2<=red2;endelse if(hold)beginlight2<=3'b100;num2<=red2;endelse if(en)beginif(!tim2)begintim2<=1;case(state1)2'b00:begin num2<=red2; light2<=3'b100; state2<=2'b01; end2'b01:begin num2<=yellow2; light2<=3'b010; state2<=2'b11; end2'b11:begin num2<=green2; light2<=3'b001; state2<=2'b10;end2'b10:begin num2<=yellow2; light2<=3'b010; state2<=2'b00;enddefault:light2<=3'b100;endcaseendelse //支干道倒数计时beginif(num2>0)if(num2[3:0]==0)beginnum2[3:0]<=4'b1001;num2[7:4]<=num2[7:4]-1;endelse num2[3:0]<=num2[3:0]-1;if(num2==1)tim2<=0;endendelsebeginlight2<=3'b010;state2<=2'b00;tim2<=0;endend6.数码管译码及显示:always @(posedge qclk) //定义上升沿触发进程begincount <= count +1'b1;endalways @( count)begincase(count) //选择扫描显示数据2'd0 : disp_dat <= num1[3:0]; //第一个数码管2'd1 : disp_dat <= num1[7:4]; //第二个数码管2'd2 : disp_dat <= num2[3:0]; //第三个数码管2'd3 : disp_dat <= num2[7:4]; //第四个数码管default : disp_dat <= 0;endcaseendalways @(count)begin case(count) //选择数码管显示位2'd0 : dig<= 6'b011111;//选择第一个数码管显示2'd1 : dig<= 6'b101111;//选择第二个数码管显示2'd2 : dig <= 6'b110111;//选择第三个数码管显示2'd3 : dig<= 6'b111011;//选择第四个数码管显示default : dig<= 6'b111111;endcaseendalways @(disp_dat)begincase (disp_dat) //七段译码4'b0000 : seg<= 7'b0111111; //显示"0"4'b0001 : seg <= 7'b0000110; //显示"1"4'b0010 : seg<= 7'b1011011; //显示"2"4'b0011 : seg<= 7'b1001111; //显示"3"4'b0100 : seg <= 7'b1100110; //显示"4"4'b0101 : seg<= 7'b1101101; //显示"5"4'b0110 : seg<= 7'b1111101; //显示"6"4'b0111 : seg<= 7'b0000111; //显示"7"4'b1000 : seg <= 7'b1111111; //显示"8"4'b1001 : seg <=7'b1101111; //显示"9"default: seg<= 7'b0111111;//不显示endcaseendendmodule三.仿真波形图四.实物图。
数字系统课程设计-交通灯控制器实验报告
numb=5;
s2=0;
\
end
else
begin
if(numb[3:0] == 0 && numb[7:4]) //逢十时
begin
numb[3:0] = 9;
numb[7:4] = numb[7:4] - 1;
end
…
else
if(numb && numb[3:0])
begin
numb[3:0] = numb[3:0] - 1;
LAMPA=1;//保持在主干道绿灯
end
else if(numa==1&&c==1&&s1)//主干道最短通车时间没到,并且乡村道路有车
begin //主干道变黄灯倒计时变成5秒
s1=0;
[
LAMPA =2;
numa = 8'b00000110;//为了配合时钟设置为6秒
end
else
begin
if(numa[3:0] == 0 && numa[7:4]) //逢十时
主干道与乡村公路十字交叉路口在现代化的农村星罗棋布,为确保车辆安全、迅速地通过,在交叉路口的每个入口处设置了红、绿、黄三色信号灯。红灯禁止通行;绿灯允许通行;黄灯亮则给行驶中的车辆有时间行驶到禁行线之外。主干道和乡村公路都安装了传感器,检测车辆通行情况,用于主干道的优先权控制。
(1)当乡村公路无车时,始终保持乡村公路红灯亮,主干道绿灯亮。
reg[3:0] TAH,TAL,TBH,TBL;
reg[2:0] LAMPA,LAMPB;
always @(posedge CLK or posedge rst ) //该进程控制主道方向的四种灯
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.中南林业科技大学课程设计报告设计名称:交通灯控制器姓名:学号:专业班级:院(系):一、课程设计题目:交通灯控制器时间:2015年6月29日至7月13日地点:指导老师:二、课程设计目的交通灯控制信号的应用非常广泛。
本电路设计一个交通灯控制器,需要达到的目的如下:一个周期64秒,平均分配,前32秒红灯亮,后32秒绿灯亮。
在红灯亮的期间的后8秒与红灯在一起的黄灯闪烁(注意:红灯同时亮)。
为了显示效果明显,设计闪烁频率为1。
在绿灯亮的期间的后8秒与绿灯在一起的黄灯闪烁(注意:绿灯同时亮),为了显示效果明显,设计闪烁频率为1。
在黄灯闪烁期间,数码管同时倒计时显示,在此期间以外,数码管不亮.三、课程设计方案为了完成交通灯控制电路的设计,方案考虑如下:一个脉冲信号发生器,一个二进制加法计数器,一个十进制减法计数器,红灯与绿灯以及黄灯是否亮是由二进制加法计数器的输出端状态来决定的,因此,设计一个组合逻辑电路,它的输入信号就是二进制加法计数器的输出信号,它的输出就是发光二极管的控制信号,因此,需要一个组合逻辑电路,六个发光二极管(二个红色发光二极管,二个绿色发光二极管,二个黄色发光二极管)电路,一个数码管显示电路。
结构图如下:四、课程设计原理脉冲信号发生器由定时器555构成。
二进制加法计数器由七位二进制加法计数器4024构成。
十进制减法计数器由74LS193可逆可预置十进制计数器构成。
组合逻辑电路根据其输入输出的逻辑关系后再确定电路芯片。
驱动器选用4511。
从以上讨论可知,需要对所采用的芯片有比较详细的了解。
下面对以上几种芯片的基本知识和基本特性进行介绍。
1、555定时器555定时器是一块常用的集成电路,电路符号如左图所示,8为电源端VCC,1为公共端GND。
所加电源电压围:4.5V<VCC<18V,最大输出电流达200mA。
部电路原理图如右图所示,部有三个相同的分压电阻,每个电阻上的电压都为1/3VCC。
两个比较器C1和C2,C1的比较电压为2/3 VCC,C2的比较电压为1/3 VCC,当比较器“+”端电压大于比较器“-”端电压时,比较器输出高电平(其状态用1表示),当比较器“+”端电压低于比较器“-”端电压时,比较器输出低电平(其状态用0表示)。
G1,G2两个与非门构成基本RS触发器,G3为输出缓冲反相器,起整形和提高带负载能力的作用。
T为泄放三极管,为外接电容提供充放电回路。
利用555定时器设计电路时,主要是考虑如何让2和6的电位发生变化(外接信号或利用电容器的充放电过程实现)而让定时器的输出状态发生变化,而设计成各种具有不同功能的电路。
实际555器件如小图所示,有小圆点对应的脚为1脚,依逆时针方向依次为2,3,4,5,6,7,8号脚。
2、555应用:多谐振荡器(产生连续矩形波信号),电路原理如图所示(4脚为高电平时,电路振荡,4脚为低电平时,电路不振荡)。
开始时,部泄放三极管由于其基极输入为低电平,是截止的,电源通过R2和R1对电容器C充电,2,6脚电位开始上升,当上升到2VCC/3时,电路状态发生翻转,部泄放三极管由于其基极输入为高电平,所以饱和导通,电容器通过R1放电,2,6脚电位又开始下降,直至降到VCC/3,电路状态再次发生翻转,部泄放三极管截止,电源再次对电容器充电。
这样周而复始,输出连续的矩形波信号,由3脚输出。
一般取C1为103电容。
理论推导:理论推导的依据是电容器的充电时间和放电时间的讨论。
充电时间的计算:从前面对芯片555的了解可知,在“7”脚部所接的泄流三极管截止时,电容器充电,充电电压从VCC/3充至2VCC/3,此时是电源通过R2+R1电阻向电容充电,由此可以利用电容器的电压与充电时间的函数关系计算出电容充电时间;函数关系式可由中学物理知识或大学电路分析课程中给出:)1(RC tCC C e V u --=在充电过程中,R =R1+R2因此 )1(311RC tCC CC e V V --= )1(322RC tCC CC e V V --= 分别计算出t1和t2,则充电时间为T1 = t2 - t1放电时间的计算:从前面对芯片555的了解可知,在“7”脚部所接的泄流三极管饱和导通时,电容器放电,放电电压从2VCC/3放至VCC/3,此时是电容通过R1电阻向电容充电,由此可以利用电容器的电压与放电时间的函数关系计算出电容放电时间;函数关系式可由中学物理知识或大学电路分析课程中给出:RC tCC C e V u -=在放电过程中,R =R1因此 RC tCC CC e V V 132-=RC tCC CC e V V 231-= 分别计算出t1和t2,则放电时间为T1 = t2 - t1由以上计算出的充电时间和放电时间之和就是周期,周期的倒数就是频率。
最后得到的结果:振荡器的频率由电阻R1,R2和电容C 决定。
CR R f )2(43.121+= 脉冲波的占空比由电阻R1和R2决定,结果为21212R R R R ++=γ 可见,当R2越小时,占空比接近50%。
本电路555多谐振荡器的频率的确定,因为信号灯的状态时间是以秒来计量的,因此计数器的计数状态应以秒为单位来计数最为方便,即指定计数器的最低位定为Q2(不一定是计数器的最低位,本项目的计数器的最低位用作其它用途),因状态Q7Q6Q5Q4Q3Q2共有64个状态,每个状态对应时间为1秒(频率为1),即1秒钟状态变化1次,而每一个状态对应Q1端一个脉冲,因此,Q1端是1 秒钟产生1个脉冲,所以555的振荡频率就应该为2(因为经过计数器计数后在计数器的最低位Q1进行了1/2分频)。
3、七位二进制计数器4024七位二进制计数器4024各脚功能如图所示,14脚为电源端,所接电源电压围:+3V--+15V ,7脚接地GND 。
2脚为复位端(清零端),高电平有效。
1脚为脉冲信号输入端,下降沿有效(即计数器在脉冲下降沿时刻计数)。
Q7Q6Q5Q4Q3Q2Q1是七个数据输出端,Q7为最高位,Q1为最低位。
当输入脉冲信号后,计数器输出端的状态变化:0000000—1111111。
本电路中的组合逻辑电路的输入信号为二进制计数器的输出信号Q7Q6Q5Q4Q3Q2,设计Q2信号频率为1,而输出应为六个表示路口交通灯信号的发光二极管(一方为红绿黄灯DR1,DG1,DY1;另一方为红绿黄灯DR2,DG2,DY2)的控制信号,分别用LR1,LG1,LY1和LR2,LG2,LY2表示,但注意到DR1和DG2状态相同,DG1和DR2状态相同,DY1和DY2状态相同,所以实际上只要三个输出信号即可,分别用L1,L2,L3表示。
本电路因为控制周期是64秒,所以只需要64个状态,因此只要用4024输出端的6个输出端就可以了,本人决定用状态Q7,Q6,Q5,Q4,Q3,Q2。
组合逻辑电路的输出信号L1,L2,L3与电路的输入信号Q7,Q6,Q5,Q4,Q3,Q2的关系的讨论:信号灯的定义,L1表示红灯,L2表示绿灯,L3表示黄灯。
对于其中一路信号灯来说,前32秒(对应的4024计数器输出状态Q7Q6Q5Q4Q3Q2为000000—011111)红灯1亮,绿灯1不亮。
而在这32秒时间,前24秒(对应的4024计数器输出状态Q7Q6Q5Q4Q3Q2为000000—010111)黄灯不亮。
后8秒(对应的4024计数器输出状态Q7Q6Q5Q4Q3Q2为010111—011111)黄灯亮。
另一路的灯亮状态分析与上一路的分析完全相同。
综上所述,用如下真值表表示:编号 Q7 Q6 Q5 Q4 Q3 Q2 L11 L12 L13 L21 L22 L23说明 0--15 0 0 x x x x 1 0 0 0 1 0红1绿2亮 16--230 1 0 x x x 1 0 0 0 1 0 红1绿2亮 24--310 1 1 x x x 1 0 1 0 1 1 红1绿2黄12亮 32--471 0 x x x x 0 1 0 1 0 0 红2绿1亮 48--551 1 0 x x x 0 1 0 1 0 0 红2绿1亮 56--63 1 1 1 x x x 0 1 1 1 0 1 红2绿1黄12亮从以上可知711Q L =,721Q L =,需要低电平有效时,71Q L =721Q L =,722Q L =,需要低电平有效时,72Q L =56562313Q Q Q Q L L ===考虑到黄灯需要闪烁,可以让L3信号和Q1信号(频率为1HZ 的脉冲波)加到一个二输入的与非门的两个输入端,输出信号为L4,134Q L L *=当L3为0时,14=L当L3为1时,14Q L =可见,需要L4低电平有效,这样,L3为0时,黄灯不亮,L3为1时,黄灯闪烁。
由以上讨论可知,需要二个二输入的与非门,三个非门,为节约器件,三个非门中的二个非门用与非门实现,另一个非门用三极管实现。
这样,需要四个二输入的与非门,正好可以用芯片74LS00,一个三极管构成的非门。
74LS00外形为DIP14,74LS00是一块四-二输入的数字集成芯片,有四个完全 一样的二输入的与非门,14脚接VCC (+5V ),7脚接地GND 。
它们中的四个二输入的与非门如图所示,其中A ,B 为与非门的两个输入端,Y 为输出端。
额定拉电流4mA ,额定灌电流8mA 。
额定输出高电平电压3.6V 。
下面讨论倒计时及显示电路。
可逆十进制计数器选用74LS193。
4、可预置二进制可逆计数器74LS193简介74LS193外形结构为DIP16,其中(8)脚接GND,(16)脚接+5V电源。
1) CU—加计数脉冲信号输入端。
2) CD—减计数脉冲信号输入端。
注意:用其中一个输入端时,另一个输入端接高电平。
3) Q3,Q2,Q1,Q0--计数器数据输出端,Q3为最高位,Q0为最低位。
4) P3,P2,P1,P0 ---计数器预置数输入端,当计数器处于预置数状态时,通过该输入端预置数,此时Q3Q2Q1Q0=P3P2P1P0。
5) MR—复位信号输入端,上升沿有效,即当MR从0跳到1时,计数器复位,此时Q3Q2Q1Q0=0000。
当MR=0时,计数器处于计数状态。
6) PL—预置数功能控制端,低电平有效,当PL=0时,计数器处于预置数状态,当PL=1时,计数器处于计数状态。
7) TCU—加计数进位信号输出端。
8) TCD—减计数借位信号输出端。
根据设计要求,预置数为8,P3=1,接高电平(电源),P2=P1=P0=0,接低电平(地GND)。
黄灯不亮,即L3=0时,计数器需要处于预置数状态,即PL=0,黄灯亮,即L3=1时,计数器需要处于计数状态,即PL=1。
可见,PL=L3.作为减法器使用,CU接高电平,CD接脉冲信号Q2。