数字系统课程设计-交通灯控制器实验报告_第1页
数字系统课程设计-交通灯控制器实验报告_第2页
数字系统课程设计-交通灯控制器实验报告_第3页
数字系统课程设计-交通灯控制器实验报告_第4页
数字系统课程设计-交通灯控制器实验报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

./交通灯控制器——数字系统设计报告:学号:实验目的1.基本掌握自顶向下的电子系统设计方法2.学会使用PLD和硬件描述语言设计数字电路,掌握QuartusII等开发工具的使用方法3.培养学生自主学习、正确分析和解决问题的能力二.设计要求我所选择的课题是用VerilogHDL实现交通灯控制器。该课题的具体容及要求如下:主干道与乡村公路十字交叉路口在现代化的农村星罗棋布,为确保车辆安全、迅速地通过,在交叉路口的每个入口处设置了红、绿、黄三色信号灯。红灯禁止通行;绿灯允许通行;黄灯亮则给行驶中的车辆有时间行驶到禁行线之外。主干道和乡村公路都安装了传感器,检测车辆通行情况,用于主干道的优先权控制。〔1当乡村公路无车时,始终保持乡村公路红灯亮,主干道绿灯亮。〔2当乡村公路有车时,而主干道通车时间已经超过它的最短通车时间时,禁止主干道通行,让乡村公路通行。主干道最短通车时间为25s。〔3当乡村公路和主干道都有车时,按主干道通车25s,乡村公路通车16s交替进行。〔4不论主干道情况如何,乡村公路通车最长时间为16s。〔5在每次由绿灯亮变成红灯亮的转换过程中间,要亮5s时间的黄灯作为过渡。〔6用开关代替传感器作为检测车辆是否到来的信号。用红、绿、黄三种颜色的发光二极管作交通灯。〔7要求显示时间,倒计时。交通灯控制器框图如下:〔C表示乡村道路是否有车到来,1表示有,0表示无;SET用来控制系统的开始及停止;RST是复位信号,高电平有效,当RST=1时,恢复到初始设置;CLK是外加时钟信号;MR、MY、MG分别表示主干道的红灯、黄灯和绿灯;CR、CY、CG分别表示乡村道路的红灯、黄灯和绿灯,1表示亮,0表示灭系统流程图如下:〔MGCR:主干道绿灯,乡村道路红灯;MYCR:主干道黄灯,乡村道路红灯;MRCG:主干道红灯,乡村道路绿灯;MRCY:主干道红灯,乡村道路黄灯;T0=1表示主干道最短通车时间到,T1=1表示5秒黄灯时间到,T2=1表示乡村道路最长通车时间到。三.设计方案本交通灯控制系统设计利用VerilogHDL语言进行设计编程,利用CycloneEP1C6Q240C8芯片和一些外围器件组成硬件电路,利用QUARTUSII软件将编写好的程序进行编译、仿真,并将调试完成的程序下载到CycloneEP1C6Q240C8芯片上,观测电路板上的红绿信号灯以及数码管显示,看是否按设计要求正常工作.四、设计流程本系统采用自顶向下的设计,设计一个顶层文件和三个底层文件。各模块关系如下:交通灯控制器交通灯控制器〔jiaotongdeng系统工作模块<traffic1>八段译码模块<decode4_7>分频模块<blk1>设计文件如下:低层文件〔1系统工作模块〔traffic1如下:功能:该模块完成对输入信号CLK,rst,c的处理,实现交通灯控制的主要功能。源程序:moduletraffic1<CLK,rst,c,LAMPA,LAMPB,TAH,TAL,TBH,TBL>;output[3:0]TAH,TAL,TBH,TBL;//TAH,TAL分别表示主干道倒计时的高位和低位,TBH,TBL表示乡村道路倒计时的高位和低位output[2:0]LAMPA,LAMPB;//从高位到低位分别表示红,黄,绿inputCLK,rst,c;reg[7:0]numa,numb,s1,s2;//numa,numb分别表示主干道和乡村道路的倒计时;s1用来表示主干道最短通车时间是否已到,到了s1=1;s2用来表示乡村道路最长通车时间是否已到,到了s2=1reg[3:0]TAH,TAL,TBH,TBL;reg[2:0]LAMPA,LAMPB;always<posedgeCLKorposedgerst>//该进程控制主道方向的四种灯beginif<rst>//重置beginLAMPA=1;LAMPB=4;//重置情况视乡村道路无车,主干道一直通行numa=8'b00100000;//主干道计时20秒numb=8'b00100101;//乡村道路计时25秒endelsebeginif<LAMPA==1>//主干道绿灯亮beginif<numa==1&&c==0&&s1>//主干道最短通车时间已到,但乡村道路没车beginnuma=1;//倒计时停在1秒LAMPA=1;//保持在主干道绿灯endelseif<numa==1&&c==1&&s1>//主干道最短通车时间没到,并且乡村道路有车begin//主干道变黄灯倒计时变成5秒s1=0;LAMPA=2;numa=8'b00000110;//为了配合时钟设置为6秒endelsebeginif<numa[3:0]==0&&numa[7:4]>//逢十时 begin numa[3:0]=9;numa[7:4]=numa[7:4]-1; end else if<numa[7:0]&&numa[3:0]> begin numa[3:0]=numa[3:0]-1; end if<numa==0> begin//主干道变黄灯倒计时变成5秒LAMPA=2;numa=8'b00000110;//为了配合时钟设置为6秒endend endif<LAMPA==2>//假如主干道是黄灯beginif<numa[3:0]==0&&numa[7:4]>//开始主干道黄灯的倒计时 begin numa[3:0]=9;numa[7:4]=numa[7:4]-1; end else if<numa[7:0]&&numa[3:0]> begin numa[3:0]=numa[3:0]-1; endif<numa[7:0]==0>//黄灯倒计时时间到beginif<c>//乡村道路有车begin//主干道变红灯,倒计时变成16秒LAMPA=4;numa=8'b00010111;//为了配合时钟设置为17秒endelseif<!c>begins1=1;LAMPA=1;numa=8'b00000001;//主干道计时1秒endendendif<LAMPA==4&&c>//假如主干道是红灯并且乡村道路有车beginif<numa[3:0]==0&&numa[7:4]>//开始主干道红灯的倒计时 begin numa[3:0]=9;numa[7:4]=numa[7:4]-1; end elseif<numa[7:0]&&numa[3:0]> begin numa[3:0]=numa[3:0]-1; endif<numa==0>//红灯倒计时到begin//主干道变绿灯,倒计时变成20秒LAMPA=1;numa=8'b00100000;endendif<LAMPA==4&&!c&&numa>5>//假如主干道是红灯并且乡村道路无车并且倒计时时间大于5米秒,使主干道倒计时变成5秒begin//主干道仍是红灯,倒计时变成5秒numa=8'b00000110;endif<LAMPA==4&&!c&&numa<7>beginif<numa[3:0]==0&&numa[7:4]>//开始主干道5秒的倒计时 begin numa[3:0]=9;numa[7:4]=numa[7:4]-1; end elseif<numa[7:0]&&numa[3:0]> begin numa[3:0]=numa[3:0]-1; endif<numa==0>//5秒倒计时到begin//主干道变绿灯,倒计时变成20秒LAMPA=1;numa=8'b00100000;endendif<LAMPB==4>//乡村道路红灯亮begin//开始乡村道路红灯的倒计时if<c==0&&numb==1>numb=1;if<c==1&&numb==1&&s2==1>beginnumb=5;s2=0;endelsebeginif<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; endif<numb==0>//红灯时间到beginif<c>begin//乡村道路变绿灯,倒计时变11秒LAMPB=1;numb=8'b00010010;endelseif<!c>beginLAMPB=4;numb=8'b00000001;//乡村道路计时1s2=1;//s置为1;endendendendif<LAMPB==1&&c>//假如乡村道路是绿灯并且乡村道路有车并且倒计时大于五秒beginif<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; endif<numb==0>//绿灯倒计时时间到begin//乡村道路变黄灯,倒计时变成5秒LAMPB=2;numb=8'b00000110;endendif<LAMPB==1&&!c>//假如乡村道路是绿灯并且乡村道路无车begin//绿灯变黄灯,倒计时变成5秒LAMPB=2;numb=8'b00000110;endif<LAMPB==2>//假如乡村道路是黄灯beginif<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; endif<numb==0>//黄灯倒计时时间到begin//乡村道路变红灯,倒计时变成25秒LAMPB=4;numb=8'b00100101;endendendTAH=numa[7:4];TAL=numa[3:0];TBH=numb[7:4];TBL=numb[3:0];endendmodule仿真结果:对该模块进行仿真,考虑各种情况,结果如下:乡村道路一直没车,即c=0:可以看到主干道是绿灯20秒,黄灯5秒,然后变成绿灯,倒计时停在1秒,乡村道路一直是红灯,倒计时从25一直到1停止。乡村道路开始没车,T时间后〔T<25秒有车来:从图中可以看出主干道绿灯20秒后变成黄灯,5秒后变成红灯,16秒后又变成绿灯,乡村道路红灯25秒后变成绿灯,11秒后变成黄灯,5秒后又变成红灯。符合设计要求。3乡村道路开始没车,T时间后〔T>25秒有车来:从图中可以看到开始时c=0,主干道绿灯20秒后变成黄灯,5秒后由于没车又变成绿灯,倒计时停在1,乡村道路红灯25秒后变成绿灯,倒计时停在1。c变成1后,主干道变成黄灯倒计时5秒,之后变成红灯,乡村道路红灯倒计时5秒后变成绿灯,再后面的变化同情况2。4当乡村道路为绿灯时c变成0:可以看到,当乡村道路为绿灯,c变成0时,乡村道路立刻变成黄灯,倒计时5秒后变成红灯,而主干道红灯倒计时5秒后变成绿灯。〔2八段译码模块〔decode4_7如下:功能:将输入的四位信号进行译码,输出到八段共阳极数码管显示出来。用于显示倒计时。源程序:moduledecode4_7<decodeout,indec>;output[7:0]decodeout;input[3:0]indec;reg[7:0]decodeout;always<indec>begincase<indec>//用case语句进行译码,小数点始终不亮4'd0:decodeout=8'b00000011;4'd1:decodeout=8'b10011111;4'd2:decodeout=8'b00100101;4'd3:decodeout=8'b00001101;4'd4:decodeout=8'b10011001;4'd5:decodeout=8'b01001001;4'd6:decodeout=8'b01000001;4'd7:decodeout=8'b00011111;4'd8:decodeout=8'b00000001;4'd9:decodeout=8'b00001001;default:decodeout=8'bx;endcaseendendmodule仿真结果:从图中可以看到输入0~9,输出与之对应的八段码,结果正确。〔3分频模块〔blk1如下:功能:由于实验箱提供的是2MHZ的时钟信号,为了得到1HZ的时钟信号,要对输入时钟信号进行2000000分频。得到合适的时钟信号。set信号可以控制系统的起始及终止。源程序:moduleblk1<clk,set,out>;inputclk,set;//基频与使能outputout;//分频后的输出regout;reg[23:0]count1,count2;//count1用于记录时钟总数,count2用于记录经过了多少个时钟周期always<posedgeclk> begin if<set> begin count1=1000000;//实际下载时改成500000,方便看到结果count1=count1-1; count2=0; out=0; end else begin if<count2<count1> begin count2=count2+1; end else begin out=~out; co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论