1、PLD交通灯控制器设计报告数字系统设计报告交通灯控制器一 实验目的1.基本掌握自顶向下的模块化的电子系统设计方法;2.学会使用PLD和硬件描述语言设计数字电路,掌握 Quartus II开发工具的使用方法;3.培养学生自主学习、正确分析和解决问题的能力 。二 设计要求 我在本课程中所选择的课题是用Verilog HDL实现交通灯控制器。该课题的具体内容及要求如下:主干道与乡村公路十字交叉路口在现代化的农村星罗棋布,为确保车辆安全、迅速地通过,在交叉路口的每个入口处设置了红、绿、黄三色信号灯。红灯禁止通行;绿灯允许通行;黄灯亮则给行驶中的车辆有时间行驶到禁行线之外。主干道和乡村公路都安装了传感器
2、,检测车辆通行情况,用于主干道的优先权控制。 (1)当乡村公路无车时,始终保持乡村公路红灯亮,主干道绿灯亮。(2)当乡村公路有车时,而主干道通车时间已经超过它的最短通车时间时,禁止主干道通行,让乡村公路通行。主干道最短通车时间为25s 。(3)当乡村公路和主干道都有车时,按主干道通车25s,乡村公路通车16s交替进行。(4)不论主干道情况如何,乡村公路通车最长时间为16s。(5)在每次由绿灯亮变成红灯亮的转换过程中间,要亮5s时间的黄灯作为过渡。(6)用开关代替传感器作为检测车辆是否到来的信号。用红、绿、黄三种颜色的发光二极管作交通灯。要求显示时间,倒计时。 交通灯控制器框图如下:(C表示乡村
3、道路是否有车到来,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表示乡村道路最长通车时间到。) 本交通灯控制系统设计利用Verilog HDL语言进行设计编
4、程,利用Cyclone EP1C6Q240C8芯片和一些外围器件组成硬件电路,利用QUARTUS II软件将编写好的程序进行编译、仿真,并将调试完成的程序下载到Cyclone EP1C6Q240C8芯片上,观测电路板上的红绿信号灯以及数码管显示,看是否按设计要求正常工作。三、设计流程本系统采用自顶向下的设计,设计一个顶层文件和三个底层文件。各模块关系如下:设计文件如下:1. 底层模块(1)分频模块: 该模块的功能是将实验箱提供的2MHz的时钟信号,经过分频得到1Hz的时钟信号作为系统工作模块的时钟。其中set信号控制系统的暂停和开始。源程序如下:module clk_div(clk,set,o
5、ut);input clk,set; output out; reg out;reg23:0 count; /进行计数parameter N=2000000;always (posedge clk) /clk=2MHz begin if(!set) begin count = 0; out = 0; end else begin if(count N/2-1) begin count = count + 1; end else begin out = out; /得到1Hz的方波 count = 0; end end endendmodule 为方便仿真把N的值改为2,仿真波形如下图:(2)系
6、统工作模块:该模块中RET信号 为复位信号(RET=1时进行复位),C表示有无车辆(C=1表示乡村公路上有车辆),LAMPA控制主干道信号灯的亮灭,LAMPB控制乡村公路信号灯的亮灭,ACOUNTH输出主干道信号倒计时的十位数,ACOUNTL输出主干道信号倒计时的个位数,BCOUNTH输出乡村公路信号倒计时的十位数,BCOUNTL输出主干道信号倒计时的个位数。 当乡村道路上有车时信号灯有四个状态进行循环,图下表所示;主干道乡村公路信号状态信号时间LAMPA值信号状态信号时间LAMPB值绿25s1红30s4黄5s2红4红21s4绿16s1红4黄5s2当乡村道路上无车时,如果当前主干道状态为绿灯,
7、倒计时结束之后显示器显示“”,表示畅行无阻(若当前状态为“”,则乡道上出现车时,主干道黄灯5秒开始倒计时);若当前主干道状态为上表中第三个状态就直接跳转到第四个状态,具体代码如下:module traffic(CLK,RST,C,LAMPA,LAMPB,ACOUNTH,ACOUNTL,BCOUNTH,BCOUNTL);output3:0ACOUNTH,ACOUNTL,BCOUNTH,BCOUNTL;output2:0LAMPA,LAMPB;input CLK,RST,C;reg2:0LAMPA,LAMPB;reg7:0numa,numb;reg3:0ACOUNTH,ACOUNTL,BCOUNT
8、H,BCOUNTL;always(posedge CLK or posedge RST)beginif(RST) /进行复位 begin LAMPA=1; /主干道始为绿灯 LAMPB=4; /乡村道路为红灯 numa=8b00100101; /主干道计时25秒 numb=8b00110000; /乡村道路计时为30秒 endelse begin/主干道始为绿灯 乡村道路为红灯 if(LAMPA=1&LAMPB=4) begin /乡道无车,主干道绿灯计时结束或正处于畅行无阻状态 if(numa=1&C=0)|(&numa)=1&C=0) begin numa=8b11111111; /显示”
9、 主干道处于畅行无阻状态 numb=8b11111111; LAMPA=1; LAMPB=4; end else begin/乡道有车,主干道绿灯计时结束或正处于畅行无阻状态 if(numa=1&C=1)|(&numa)=1&C=1) / begin numa=8b00000101;/黄灯设置为5秒 numb=8b00000101; LAMPA=2; LAMPB=4; end /其他情况倒计时 else begin if(numa3:0=0&numa7:4) begin numa3:0=4b1001; numa7:4=numa7:4-1; end else begin numa3:0=numa
10、3:0-1; end if(numb3:0=0&numb7:4) begin numb3:0=4b1001; numb7:4=numb7:4-1; end else begin numb3:0=numb3:0-1; end end end end /主干道黄灯,乡村道路红灯 if(LAMPA=2&LAMPB=4) begin if(numa=1) begin numa=8b00100001;/设置主干道红灯21秒 numb=8b00010110; /设置乡道绿灯16秒 LAMPA=4; LAMPB=1; end else begin numa3:0=numa3:0-1; numb3:0=num
11、b3:0-1; end end /主干道红灯,乡村道路绿灯 if(LAMPA=4&LAMPB=1) begin if(C=0) /跳过乡道绿灯时间 begin numa=8b00000101; numb=8b00000101; LAMPA=4; LAMPB=2; end else begin if(numb=1&C=1) begin numa=8b00000101; numb=8b00000101; LAMPA=4; LAMPB=2; end else begin if(numa3:0=0&numa7:4) begin numa3:0=4b1001; numa7:4=numa7:4-1; end else begin numa3:0=numa3:0-1; end if(numb3:0=0&numb7:4) begin numb3:0=4b1001; numb7:4=numb7:4-1; end else begin numb3:0=numb3:0-1; end end end end/主干道红灯,乡村道路黄灯 if(LAMPA=4&LAMPB=
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1