交通灯控制器课程设计报告
交通灯控制器的课程设计

课程设计课题:交通灯控制器的设计一、设计目的:学习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。
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表示亮,则交通灯有如下四种输出 状态:
状态
交通灯课程设计报告

5、教学内容
《交通灯课程设计报告》
5.1创意交通灯模型制作
-指导学生运用各种材料制作创意交通灯模型,提高动手操作能力。
-鼓励学生尝试使用环保材料,培养环保意识。
5.2交通灯智能控制技术
-介绍智能交通灯系统的基本原理,如传感器技术、自动控制技术等。
-探讨现有交通灯系统的不足,提出优化方案。
-鼓励学生思考如何通过技术创新来提升交通灯系统的智能性和效率。
2.5课后延伸活动
-安排课后研究任务,让学生调查不同地区的交通灯特点和功能。
-布置创意作业,鼓励学生设计未来智能交通灯系统的蓝图。
3、教学内容
《交通灯课程设计报告》
3.1交通灯电路模拟
-引导学生了解交通灯的基本电路原理,使用简单的电子元件进行电路搭建。
交通灯课程设计报告
一、教学内容
《交通灯课程设计报告》
本节课选自小学四年级信息技术课程中“计算机与生活”章节,教学内容主要包括:
1.认识交通灯:介绍交通灯的组成部分、功能及其在生活中的应用。
2.交通灯编程设计:利用Scratch编程软件,设计一个简单的交通灯控制系统。
3.交通灯控制系统原理:了解交通灯控制系统的基本原理,如红绿灯变换规律、行人过马路提示等。
5.5课后拓展研究
-鼓励学生利用网络、图书馆等资源,进行交通灯相关领域的拓展研究。
-布置研究性学习任务,让学生深入探讨交通灯技术的发展历程及其对未来交通的影响。
4.3交叉学科融合
-探索交通灯设计中的跨学科知识,如物理学、工程学、计算机科学等。
-鼓励学生将不同学科的知识综合运用到交通灯设计项目中。
4.4交通流量分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中南林业科技大学课程设计报告设计名称:交通灯控制器姓名:学号:专业班级:院(系):一、课程设计题目:交通灯控制器时间:2015年6月29日至7月13日地点:指导老师:二、课程设计目的交通灯控制信号的应用非常广泛。
本电路设计一个交通灯控制器,需要达到的目的如下:一个周期64秒,平均分配,前32秒红灯亮,后32秒绿灯亮。
在红灯亮的期间的后8秒与红灯在一起的黄灯闪烁(注意:红灯同时亮)。
为了显示效果明显,设计闪烁频率为1。
在绿灯亮的期间的后8秒与绿灯在一起的黄灯闪烁(注意:绿灯同时亮),为了显示效果明显,设计闪烁频率为1。
在黄灯闪烁期间,数码管同时倒计时显示,在此期间以外,数码管不亮.三、 课程设计方案为了完成交通灯控制电路的设计,方案考虑如下:一个脉冲信号发生器,一个二进制加法计数器,一个十进制减法计数器,红灯与绿灯以及黄灯是否亮是由二进制加法计数器的输出端状态来决定的,因此,设计一个组合逻辑电路,它的输入信号就是二进制加法计数器的输出信号,它的输出就是发光二极管的控制信号,因此,需要一个组合逻辑电路,六个发光二极管(二个红色发光二极管,二个绿色发光二极管,二个黄色发光二极管)电路,一个数码管显示电路。
结构图如下: 四、 课程设计原理脉冲信号发生器由定时器555构成。
二进制加法计数器由七位二进制加法计数器4024构成。
555脉冲振荡器 4024 计数器 组合逻辑电路 发光二极管电路 193 计数器 4511 驱动器 数码管十进制减法计数器由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电阻向电容充电,由此可以利用电容器的电压与充电时间的函数关系计算出电容充电时间;函数关系式可由中学物理知识或大学电路分析课程中给出:在充电过程中,R =R1+R2因此 )1(311RC tCC CC e V V --= 分别计算出t1和t2,则充电时间为T1 = t2 - t1放电时间的计算:从前面对芯片555的了解可知,在“7”脚内部所接的泄流三极管饱和导通时,电容器放电,放电电压从2VCC/3放至VCC/3,此时是电容通过R1电阻向电容充电,由此可以利用电容器的电压与放电时间的函数关系计算出电容放电时间;函数关系式可由中学物理知识或大学电路分析课程中给出:在放电过程中,R =R1因此 RC tCC CC e V V 132-= 分别计算出t1和t2,则放电时间为T1 = t2 - t1由以上计算出的充电时间和放电时间之和就是周期,周期的倒数就是频率。
最后得到的结果:振荡器的频率由电阻R1,R2和电容C 决定。
脉冲波的占空比由电阻R1和R2决定,结果为可见,当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)黄灯亮。
另一路的灯亮状态分析与上一路的分析完全相同。
综上所述,用如下真值表表示:从以上可知711Q L =,721Q L =,需要低电平有效时,71Q L =721Q L =,722Q L =,需要低电平有效时,72Q L =考虑到黄灯需要闪烁,可以让L3信号和Q1信号(频率为1HZ 的脉冲波)加到一个二输入的与非门的两个输入端,输出信号为L4, 当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。
因计数器处于计数状态或预置数状态,不能处于复位状态,因此让MR=0.从前面讨论可知,多谐振荡器振荡频率为2HZ。
以此确定多谐振荡器电路的电阻和电容。
4511的使用与74LS48基本相同,但是有二点需要注意:1)功能脚“5”的使用的区别,74LS48是高电平有效,而4511是低电平有效。
2)74LS48是内带限流电阻的,而4511是不带限流电阻的,因此,在使用4511时,4511的输出端与数码管的输入端之间是要串接限流电阻的。
组成数码管的七段实际上就是七个发光二极管,当这七个发光二极管中不同的二极管亮时,就显示0—9中不同的数字。
数码管的符号数码管的输出引脚有两种形式,一种是上下排列,一种是两边排列,各引脚名称如下面两图所示。
数码管的符号 数码管的使用需要注意的是: 一是数码管有共阴数码管和共阳数码管之分,所谓共阴数码管就是公共端COM 接地,所谓共阳数码管就是公共端COM 接电源。