数字系统课程设计交通灯控制器_交通灯控制器课程设计

2020-02-27 其他范文 下载本文

数字系统课程设计交通灯控制器由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“交通灯控制器课程设计”。

东南大学

《数字系统课程设计》

设计报告

项目名称: 交通灯控制器

名:

号:

业:

实 验 室: 电工电子实验中心

别:

同组人员:

设计时间: 2016 年月 26 日

——

2016 年 9 月 20日 评定成绩:

审阅教师:

目录

一.设计方案及论证……………………………………………… 3 二.模块设计……………………………………………………… 5 三.总体设计与仿真……………………………………………… 10 四.总结…………………………………………………………… 12 一.设计方案及论证

1.设计使用环境

本交通灯控制系统设计利用Verilog HDL语言进行设计编程,利用Cyclone EP1C6Q240C8芯片和一些外围器件组成硬件电路,利用Quartus II软件将编写好的程序进行编译和仿真,并将调试完成的程序下载到Cyclone EP1C6Q240C8芯片上,通过观测电路板上的红绿信号灯以及数码管显示来分析系统的性能。

2.设计任务分析

主干道与乡村公路十字交叉路口在现代化的农村星罗棋布,为确保车辆安全、迅速地通过,在交叉路口的每个入口处设置了红、绿、黄三色信号灯。红灯禁止通行;绿灯允许通行;黄灯亮则给行驶中的车辆有时间行驶到禁行线之外。主干道和乡村公路都安装了传感器,检测车辆通行情况,用于主干道的优先权控制。

设计要求:

1)当乡村公路无车时,始终保持乡村公路红灯亮,主干道绿灯亮。2)当乡村公路有车时,而主干道通车时间已经超过它的最短通车时间时,禁止主干道通行,让乡村公路通行。主干道最短通车时间为25s。

3)当乡村公路和主干道都有车时,按主干道通车25s,乡村公路通车16s交替进行。4)不论主干道情况如何,乡村公路通车最长时间为16s。

5)在每次由绿灯亮变成红灯亮的转换过程中间,要亮5s时间的黄灯作为过渡。6)用开关代替传感器作为检测车辆是否到来的信号。用红、绿、黄三种颜色的发光二极管作交通灯。7)数码管倒计时显示

3.测量控制原理

1)通过乒乓开关来控制FPGA输入信号的电平,从而控制交通灯工作。

2)利用FPGA输出的电平信号去驱动静态数码管及三色小灯来模拟交通灯。

4.顶层设计方案框图及说明

1)交通灯控制器框图

C表示乡村道路是否有车到来,1表示有,0表示无;SET用来控制系统的开始及停止;RST是复位信号,高电平有效,当RST为1时,恢复到初始设置;CLK是外加时钟信号;MR、MY、MG分别表示主干道的红灯、黄灯和绿灯;CR、CY、CG分别表示乡村道路的红灯、黄灯和绿灯,1表示亮,0表示灭。

2)流程图

MGCR表示主干道绿灯,乡村道路红灯;MYCR表示主干道黄灯,乡村道路红灯;MRCG表示主干道红灯,乡村道路绿灯;MRCY表示主干道红灯,乡村道路黄灯;T0=1表示主干道最短通车时间到,T1=1表示5秒黄灯时间到,T2=1表示乡村道路最长通车时间到。二.模块设计

1.模块功能及端口说明

1)分频模块

输入端为clk_in,即实验箱自带脉冲输入信号,输出端为clk,即想得到的频率。2)主控制模块

输入端为CLK、RST、C。其中c为乡村道路开关,为1时表示乡村道路有车;rst为初始化开关,为1时表示初始化为主干道绿灯,乡村道路红灯的状态。

输出端为MG、MY、MR、CG、CY、CR分别表示主干道和乡村道路的红黄绿灯,与LED灯相连;mh、ml、ch、cl分别表示主干道和乡村道路倒计时显示的高低位,与数码管相连。

3)数码管显示模块

输入端为clk和count,输出端为LED。

2.主要功能的设计方法

1)分频模块

试验箱可选晶振有2M和50M,选择使用2M后,设置分频系数为2000000,每计数到1000000,则输出取反,最终可得到1HZ的时钟信号。

2)主控制模块

设置两个外部控制条件:初始化(RST);乡村干道是否有车(C);

设置一个内部计数变量:NUM,通过相关运算取余取整得到数码管显示高低位;

通过有限状态机实现四个状态的循环切换。

3.Verilog设计程序及说明

1)分频模块

module fre(clk_in,clk);input clk_in;output clk;reg clk;reg [31:0]k;always @(negedge clk_in)begin

if(k>=1000000)//1000000分频 begin clk

k

k

end endmodule 2)主控制模块

module traffic(CLK,RST,C,MG,MY,MR,CG,CY,CR,mh,ml,ch,cl);input CLK,RST,C;output [3:0]mh,ml,ch,cl;output MG,MY,MR,CG,CY,CR;reg [3:0] mh,ml,ch,cl;reg MG,MY,MR,CG,CY,CR;reg [31:0] COUNT;reg [5:0]state;parameter s1=6'b100001,s2=6'b010001,s3=6'b001100,s4=6'b001010;always @(posedge CLK)if(RST)//初始化

begin

state = s1;//最初状态,主通行,乡村不通行 MG=1;MY=0;MR=0;CG=0;CY=0;CR=1;COUNT = 0;

mh=2;//主干道绿灯25s,乡村道路红灯5s

ml=5;

ch=3;

cl=0;

end else case(state)s1: begin COUNT = COUNT+1;

if((COUNT>=25)&&(C==1))//25s已计完且乡村道路来车,跳转到s2状态

begin

state = s2;//主干道黄灯,乡村道路红灯

MG=0;MY=1;MR=0;CG=0;CY=0;CR=1;COUNT = 0;mh=0;ml=5;ch=0;cl=5;end else if(COUNT

begin

state = s1;

MG=1;MY=0;MR=0;CG=0;CY=0;CR=1;

mh=(25-COUNT)/10;//取整取余换算,倒计时显示

ml=(25-COUNT)%10;ch=(30-COUNT)/10;cl=(30-COUNT)%10;end else if(COUNT >= 25 && C == 0)//25s计完,乡村道路仍然没有车

begin

state = s1;//保持s1 MG=1;MY=0;MR=0;CG=0;CY=0;CR=1;mh=0;//数码管显示0

ml=0;

ch=0;

cl=0;

end

end s2: begin COUNT = COUNT+1;

if(COUNT==5)//5s黄灯已计完

begin

state = s3;//主干道红灯,乡村道路绿灯 MG=0;MY=0;MR=1;CG=1;CY=0;CR=0;COUNT = 0;

mh=2;//主干道21s红灯,乡村道路16s绿灯

ml=1;

ch=1;

cl=6;

end else

begin

state = s2;//5s黄灯未计完时,保持s2状态

MG=0;MY=1;MR=0;CG=0;CY=0;CR=1;

mh=0;

ml=5-COUNT;

ch=0;

cl=5-COUNT;

end end s3: begin COUNT = COUNT+1;

if(((COUNT>=16)&&(C==1))||(C==0))//乡村道路16s通行时间已结束,不管有无来车,均跳转s4状态

begin

state = s4;//主干道红灯,乡村道路黄灯

MG=0;MY=0;MR=1;CG=0;CY=1;CR=0;

COUNT = 0;

mh=0;

ml=5;

ch=0;

cl=5;

end else

begin

state = s3;//16s未结束,仍保持s3状态

MG=0;MY=0;MR=1;CG=1;CY=0;CR=0;

mh=(21-COUNT)/10;

ml=(21-COUNT)%10;

ch=(16-COUNT)/10;

cl=(16-COUNT)%10;

end end s4: begin COUNT = COUNT+1;if(COUNT==5)//5s黄灯时间结束

begin

state = s1;//回到s1状态

MG=1;MY=0;MR=0;CG=0;CY=0;CR=1;

COUNT = 0;

mh=2;

ml=5;

ch=3;

cl=0;

end else

begin

state = s4;//否则保持s4状态

MG=0;MY=0;MR=1;CG=0;CY=1;CR=0;

mh=0;

ml=5-COUNT;

ch=0;

cl=5-COUNT;

end end default:

begin

state = s1;

MG=1;MY=0;MR=0;CG=0;CY=0;CR=1;

COUNT = 0;

mh=0;

ml=5-COUNT;

ch=0;

cl=5-COUNT;

end endcase endmodule 3)数码管显示模块 module led(clk,count,LED);input clk;input [3:0]count;output [7:0]LED;reg [7:0]LED;always @(posedge clk)begin case(count)

4'b0000:LED=8'b00000011;

4'b0001:LED=8'b10011111;

4'b0010:LED=8'b00100101;

4'b0011:LED=8'b00001101;

4'b0100:LED=8'b10011001;

4'b0101:LED=8'b01001001;

4'b0110:LED=8'b01000001;

4'b0111:LED=8'b00011111;

4'b1000:LED=8'b00000001;

4'b1001:LED=8'b00001001;

default:LED=8'b00000001;endcase end endmodule 4.仿真图及说明

(1)分频模块

由于实际应用中分频较大,仿真时为方便观察,将分频频数设置为20。输入为clk_in,周期为10ns;输出为clk,其周期为200ns,与理论值相符。(2)主控制模块

与总体仿真相同,在此不再赘述。

三.总体设计与仿真

1.顶层设计图及说明

fre为分频模块,traffic为主控制模块,led为数码管显示模块。输入端有clk_in、c和rst,输出端有MG、MY、MR、CG、CY、CR和mh、ml、ch、cl。

2.仿真图及说明

输入有:C、CLK和RST 输出有:CG、CR、CY、MG、MR、MY、ch、cl、mh和ml C为乡村道路是否来车,1表示来车,0表示无车;CLK为时钟信号;RST为初始化功能,1有效;CG、CR、CY、MG、MR、MY分别表示乡村道路绿灯、红灯、黄灯,主干道绿灯、红灯、黄灯;ch、cl、mh、ml分别表示乡村道路和主干道红绿灯倒数显示高低位。

3.实验结果

(1)乡村道路无车时

乡村道路无车时,主干道25s倒数,乡村道路30s倒数结束后,保持0,且主干道绿灯亮,乡村道路红灯亮。(2)乡村道路有车时

若乡村道路一直有车,主干道25s(即S1状态)倒计时结束后,主干道切换黄灯,乡村道路保持红灯(即S2状态);5s黄灯倒计时结束后,主干道切换红灯,时间21s,乡村道路切换绿灯,时间16s(即S3状态);乡村道路16s绿灯结束后,切换黄灯,主干道保持红灯(即S4状态),5s黄灯结束后,回到S1状态,即主干道25s绿灯,乡村道路30s红灯,若一直有车,则循环进行。

四.总结

1.实验结果分析

(1)输入与输出

两个开关:一个初始化控制开关,一个乡村道路开关。初始化开关打开后复位,交通灯开始工作,乡村道路打开表示乡村公路上有车。

输出:四个数码管,两个显示主干道交通灯时间,两个显示乡村道路时间;六个led灯,两红两黄两绿分别表示主干道和乡村公路的红黄绿灯。(2)运行过程

1)初始状态(S1)

左侧为主干道倒计时,右侧为乡村道路倒计时;主干道绿灯亮,乡村道路红灯亮。K1为初始化按键,K2为乡村道路有无来车。

2)主干道25s绿灯结束后切换黄灯,乡村道路红灯(S2)

3)主干道5s黄灯结束,切换红灯21s,乡村道路切换绿灯16s(S3)

4)乡村道路16s绿灯结束,切换黄灯,主干道红灯(S4)

5s黄灯倒计时结束,回到S1状态,若一直有车,则循环S1-S2-S3-S4-S1。

2.问题解决方法

问题1:数码管显示与红绿灯切换不同时。

解决方法:红绿灯输出后面增加一延时模块,延时一个CLK,使其与数码管显示同步。问题2:理解错题意,在S3状态(即主干道红灯,乡村道路绿灯)时,此时若乡村道 路无车通过,应立即切换为S4状态(即主干道红灯,乡村道路黄灯),而不是等当前计数结束再切换。

解决方法:将代码修改为if(((COUNT>=16)&&(C==1))||(C==0)),修改后符合要求,解决了问题。

3.心得体会

通过此次系统设计,我对verilog HDL语言有了初步了解,并对利用quartus来进行系统设计有了更加深入的理解,操作也更加熟练。在设计过程中应该先设计好总体架构,再进行模块的具体设计,通过分析每个模块要实现的功能来写代码,并注意编写注释,便于以后的理解修改。编译时要注意设置顶层文件,先进行仿真观察结果是否正确,对代码进行修改,仿真结果正确后再下载到硬件,测试系统功能。

参考书目: [1] 夏宇闻,《Verilog数字系统设计教程》,北京,北京航空航天大学出版社,2013年 [2] 王金明,《数字系统设计与Verilog HDL》,北京,电子工业出版社,2011年

《数字系统课程设计交通灯控制器.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
数字系统课程设计交通灯控制器
点击下载文档
相关专题 交通灯控制器课程设计 交通灯 控制器 课程设计 交通灯控制器课程设计 交通灯 控制器 课程设计
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文