基于FPGA的交通灯控制器设计2【实用文档】doc.doc
《基于FPGA的交通灯控制器设计2【实用文档】doc.doc》由会员分享,可在线阅读,更多相关《基于FPGA的交通灯控制器设计2【实用文档】doc.doc(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于FPGA的交通灯控制器设计2【实用文档】doc文档可直接使用可编辑,欢迎下载 数字系统课程设计基于FPG的交通控制灯设计姓名:学号:班级:摘要随着社会的发展,城市规模的不断扩大,城市交通成为制约城市发展的一大因素。人口和汽车日益增长,市区交通也日益拥挤,人们的安全问题当然也日益重要。因此,红绿交通信号灯成为交管部门管理交通的重要工具之一。有了交通灯,人们的安全出行也有了很大的保障。自从交通灯诞生以来,其内部的电路控制系统就不断的被改进,设计方法也开始多种多样,从而使交通灯显得更加智能化.尤其是近几年来,随着电子与计算机技术的飞速发展,电子电路分析和设计方法有了很大的改进,电子设计自动化也已
2、经成为现代电子系统中不可或缺的工具和手段,这些都为交通灯控制系统的设计提供了一定的技术基础。本课程设计运用erilog DL语言描述交通控制器,通过状态机计数法,实现设计所要求的交通灯控制及时间显示,并最后进行了软件实现,达到了系统要求的功能。设计原理.1设计要求设计一个交通控制器,用LED显示灯表示交通状态,并以7段数码显示器显示当前状态剩余秒数主干道绿灯亮时,支干道红灯亮;反之亦然,二者交替允许通行,主干道每次放行35s,支干道每次放行2.每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,黄灯的时间为5s.能进行特殊状态显示,特殊状态时东西、南北路口均显示红灯状态。用LD灯显示倒计时,并且能
3、实现总体清零功能,计数器由初始状态开始计数,对应状态的显示灯亮。能实现特殊状态的功能显示,1.2设计思路和原理本次设计是针对十字路口,进行南北和东西直行情况下交通灯控制。设定东西方向为主干道方向,根据交通灯的亮的规则,在初始状态下四个方向的都为红灯亮启,进入正常工作状态后,当主干道上绿灯亮时,支干道上红灯亮,持续35S后,主干道和支干道上的黄灯都亮启,持续5S后,主干道上红灯亮启,支干道上绿灯亮启持续2,之后主干道和支干道上的黄灯都亮启5s,一个循环完成.循环往复的直行这个过程.其过程如下图所示:图。交通灯点亮时间控制说明.实现方法本次采用文本编辑法,即利用erilog HDL语言描述交通控制
4、器,通过状态机计数法,实现设计所要求的交通灯控制及时间显示。设计中用两组红黄绿LED模拟两个方向上的交通灯,用个7段数码管分别显示两个方向上的交通灯剩余时间,控制时钟由试验箱上频率信号提供。 VerlgHL程序设计21整体设计根据上章设计原理,交通灯控制的关键是各个状态之间的转换和进行适当的时间延时,根据状态机的设计规范,本次设计了三个状态之间的循环转化,其真值表及状态转化图如下所示:图交通灯控制状态转化说明:该状态图为交通灯在正常情况下的状态转化图,进入控制后,状态00时主干道绿灯及支干道红灯亮起,进入状态01后两路黄灯亮起,状态11时主干道红灯及支干道绿灯亮起。进入0状态两路黄灯亮起.结束
5、一个循环,从0状态重新开始循环.为实现控制与显示的功能,需要设计交通灯点亮顺序控制程序,倒数计时程序,七段数码管显示程序,数码管显示扫描程序,其系统结构图如下所示:图3.交通灯控制系统结构图其中rst为复位信号,clk为时钟信号,old为特殊情况控制信号,输入hold时两个方向红灯无条件亮起.2.具体设计根据整体设计要求,编写各个功能部分Vriog HL程序,设置各输入输出变量说明如下clk:为计数时钟;qclk:为扫描显示时钟;e:使能信号,为1 的话,则控制器开始工作;rst:复位信号,为1的话,控制及技术回到初始状态;oid:特殊情况控制信号,为1的话,则两个方向无条件显示为红灯;lig
6、ht1:控制主干道方向四盏灯的亮灭;其中,ight10light2,分别控制主干道方向的绿灯、黄灯和红灯;ligh:控制支干道方向四盏灯的亮灭;其中,lih20 lght22,分别控制支干道方向的绿灯、黄灯和红灯;num1:用于主干道方向灯的时间显示,8 位,可驱动两个数码管;m2:用于支干道方向灯的时间显示,8位,可驱动两个数码管;couer:用于数码管的译码输出;s,st2:数码管扫描信号.输入输出及中间变量设置如下:mul taffic(n,ck,,rt,rt,hld,num1,num2,lgt,lht,counter,s,st);inpt en,cl,qlk,st,hold,rs1;o
7、ututt1,st2;out7:0 num1,num2;outpt6:0ouer;output:0 ight1,lih2;regim1,tm2,t1,st2;rg:0stte1,state2,se;re2:ligh1,lit2;rg3:0nu;re6:0conte;reg7:0 num1,num2;rg:0 ed1,d2,re1,gee2,yellow1,yellow;1. 二极管点亮控制该部分程序的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段数码管的译码电路。此外,当检测到特殊情况(old=1)发生时,无条件点亮红灯的二极管,当检测到复位信号,两个方向计数与控制回
8、复到00状态。因为主、支干道两个方向二极管点亮的顺序与延迟时间不同,顾编写两个独立的部分来控制,具体程序如下:)主干道方向always (posdge lk )egi(s) /复位与特殊情况控制 beinlit1=3b00;num1=gren1; end else if(hod) benlght=b100; num1=ge1; end eseif(en) begin使能有效开始控制计数 if(!tm1) / begin /主干道交通灯点亮控制 tm1=1; as(sate1) 2b0:egnnum1=reen1;ight=30;stat1=2b01;nd 2b0:beginm=yellw1;l
9、ght1=3b010;state1b11;ed 21:egin nm1red1;light3b100;state=2b;nd 21:begin mellow1;ght1=3b010;ste1=b00;en efault:igt=00; dcae n2)支干道方向always (osede k )begin if(t) /复位与特殊情况控制 bgin light=3b100; um2=red; end ls if(hold) begin lght=3b100; nu2=rd2; en se if(en) begin if(!im2) begin tim21; case(stt1) 2b0:beg
10、innum=ed2;light2=30;state22b01;end 2b01:bgin nu2=yllow1;lgh23b01;sta2=11;ed b11:binnum2=gree;ight=3b01;tate2=b1;nd 210:bg u2ellow;lght2b010;stt2=200;nd default:gt0) if(num1:0=) ennum13:0=4b1001; 17:4=um17:4-; end el m3:0n:1; f(nm1=1)tim1=0; d en lse egin light=3010; num1200; tim=0; nden3. 数码管的译码及扫描显
11、示该段程序主要完成4个7段数码管的译码显示及扫描,使系统能正常显示主、支干道两个方向上的剩余时间。译码的时钟频率要低,为Hz级。扫描的时钟频率要高,最低不得小于人眼分辨频率0H,具体程序如下所示:alay (psegqclk)begin /数码管扫描 i(rst1) bgin st1=0; st20; end lse beg case(st2,st1) 2b00:bgin numnu13:;st2,s1=2b1; nd 20:beg numnm:4;t,s1=2b10;end 2b1:beginnm=nu23:0;st2,st1211; end 2b11:n nu=num:4;2,st1=00
12、; end encase enendlwys(pedge clk)begin /数码管译码显示as(num)4b000: uer=7b011111;/04b0001:onter=7b00010; /14b010: ut=7b11011; /4b001: counter=10011; /34b010: cote=7100110; /44b011:uter=b1111; 5b010: con=b11101; /64b0111:cuter=7b0000111; /74100: cnter=111;/84b100:conte=b1111; /efal:out=7b01111; /0encaseende
13、ndmdule总体程序见程序清单所示仿真与硬件调试3.1 波形仿真在uatrs软件下创建工程,新建编辑设计文件,将程序输入,整体编译后,新建波形仿真文件。设置仿真时间,时钟周期,输入输出端口,进行波形仿真.具体仿真波形图及说明如下所示:仿真截止时间:10us;时钟:lku,qlk0us1正常工作时波形仿真图图. 正常工作时波形仿真图图形说明波形仿真主要完成了控制与计数以及数码管显示的波形图.e为低电品时,计数器置初值,高电平时开始正常控制与计数。控制发光二极管首次输出为“ligt=0,ight2=10”,表示主干道路绿灯亮,支杆道路红灯亮,计数器nu1和u2从“0010101”开始递减计数,计
14、数至“0000000”时,进入下一个状态,控制输出量为lght=010,ight2=010,表示主、支干道黄灯均亮起,计数器nu1和um2从“0000101”开始计数递减,计数至00000”时进入下一个状态,lgt=10,light2=001,表示主干道路红灯亮,支杆道路绿灯亮。Counte根据nm1,num2变化随时钟上升沿输出译码后的数据。由于屏幕显示大小有限,未仿真出一个完整周期。2. 特殊情况仿真波形图特殊情况仿真波形图形说明当hold输入高电平时,在时钟上升沿的控制下,light 1与light2被强制置位为100”,表示两路红灯均亮起3 复位情况仿真波形图 复位情况仿真波形图形说明
15、当rst输入高电平时,在时钟上升沿控制下,计数与控制都回到00状态,即ligh1=01,lig2=0,计数器u和nm2从“011011”开始递减计数。.2硬件调试完成时序仿真确认无误后,进行实验箱管脚设置,注意设置完成后一定要再进行一次全局仿真,使程序真正对应于硬件输出输出。具体连接说明如下所示输入变量:s、clk、cl、hold、e其中en,old,rst接”0-1”拨码开关,以稳定的输出可变化的电平。计数时钟ck接实验箱上1H时钟,扫描显示时钟qc接125K时钟。输出变量:light1:0、lgt2:0、coner6:0、st1、st2其中ig1 、ight20分别接绿色的发光二极管;li
16、ght1、liht2 分别接黄色的发光二极管;light12、lght22分别接红色的发光二极管.cunte0coune6,分别接七段数码管的a,s1、2分别接试验箱上”4-16”译码器的低两位。完成接线后将程序烧写到芯片上,开始功能调试。分辨改变使能信号,复位信号以及特殊情况信号,观察数码管以及发光二级管情况。程序清单moule raffic(,lk,qclk,r,rt1,old,nm1,um2,lit1,light2,cunter,,st);nput en,cl,clk,rst,d,rt;ouput st1,t2;ouput7: um,num2;otpu6:0ouner;otpu2:0li
17、gh1,light2;rg ti1,ti2,s1,st;reg:0stat1,tt2,s;reg2:0liht1,ligh2;reg3:nm;e6:couter;g7:0num1,num2;reg7: red1,rd2,gen1,rn2,yelo,ell2;aays (n )f(!en)egi /设置计数初值ree=801001;re1=8b10010;yelw1=8b00000101;gren2=8b001001;ed2=8b001010;yeo2=8b0010;edalwys (osedg ck )beginf(st) /复位与特殊情况控制 begin ight1=3b01; um1=gr
18、n; d elsei(hod) bin ih1300;nu1=geen1; dee i(n) ben/使能有效开始控制计数 f(!t1)/开始控制 ben /主干道交通灯点亮控制 tm=1; ase(tate) 200:egin num1=grn1;igt=3b001;sae12b1;end 2b01:begn num=yelow1;lih1=b010;ste1=211;nd b1:eginum1=red1;lght13b10;state1b0;nd 2b1:begnum1yelow1;ight1=3b01;sate1=2b00;end eflt:ght=b100; endase end eg
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实用文档 基于 FPGA 交通灯 控制器 设计 实用 文档 doc
限制150内