数字电子技术课程设计报告纸交通灯控制器模版.docx
《数字电子技术课程设计报告纸交通灯控制器模版.docx》由会员分享,可在线阅读,更多相关《数字电子技术课程设计报告纸交通灯控制器模版.docx(12页珍藏版)》请在冰豆网上搜索。
数字电子技术课程设计报告纸交通灯控制器模版
数字电子技术课程设计报告
题目:
基于FPGA的数字频率计设计
学年:
2011-2012学期:
2
专业:
电气工程及其自动化班级:
电气104
学号:
2010013919姓名陈威
指导教师:
洪群欢
时间:
12年2月13日~12年2月17日
浙江万里学院电子信息学院
目录
1设计任务与要求1
2系统设计总体方案1
3各模块电路具体实现2
3.1时钟分频模块2
3.2十进制减法计数模块3
3.3数码管显示及译码模块5
3.4交通信号灯电路模块6
3.5时序状态控制模块6
4设计测试结果9
5总结9
附录10
1设计任务与要求
本课题要完成的设计任务与要求如下:
(1)绿灯亮预设时间为25s,黄灯亮预设时间为3s,红灯亮预设时间为30s;
(2)预设时间通过数码管显示倒计时时间;
2系统设计总体方案
根据设计任务与要求,交通灯控制器系统主要有分频模块、十进制减法计数模块、数码管显示及译码模块、交通信号灯电路模块、时序状态控制模块等电路模块组成,其系统组成框图如图1所示。
图1交通灯控制器系统设计组成框图
各模块电路设计的主要思路和具体方案如下:
(1)时钟分频模块:
通过Verilog硬件描述语言、32.768K晶振、T触发器等不同方法分频得到1HZ的时钟信号;
(2)十进制减法计数模块:
通过应用VerilogHDL硬件描述语言和用74192来十进制设计减法计数模块;
(3)数码管显示及译码模块:
通过共阴数码管及共阴译码驱动电路实现倒计时计数的显示;
(4)交通信号灯电路模块:
在东南西北四个方向安装绿黄红三种颜色的LED灯,四条人行道上分别装上红绿灯,南北对应一组,东西一组,设计成一个模拟现实的道路交通灯;
(5)时序状态控制模块:
通过应用VerilogHDL硬件描述语言编写控制程序,控制整个系统。
3各模块电路具体实现
3.1时钟分频模块
方案一。
根据整个系统中各模块电路的需求,本模块主要实现将EDA实验板上50MHz晶振产生的时钟脉冲经过分频得到1Hz的时钟信号,考虑到应用触发器或计数器来设计,电路实现比较困难和繁琐,因此选择应用Verilog硬件描述语言来设计本模块电路,具体程序如下:
moduleclk_25(CLK_in,CLK_out);
inputCLK_in;
outputCLK_out;
regCLK_out;
reg[25:
0]temp;
always@(posedgeCLK_in)
begin
if(temp>=25000000)
begin
temp=0;
CLK_out=~CLK_out;
end
else
temp=temp+1;
end
endmodule
经过QuartusII软件编译综合后,电路的模块图如图2所示。
图2时钟分频模块电路图
方案二。
要获得1Hz的时钟脉冲,还可以应用EDA实验板上32.768K晶振产生的脉冲信号经过CD4060分频。
在实验板上已有4Hz的脉冲信号。
将4Hz的脉冲信号转化成1Hz,可以应用T触发器来分频,具体电路如图3。
图3由T触发器构成的时钟分频电路图
3.2十进制减法计数模块
方案一、用两片74192芯片来实现两位十进制减法计数,以完成设计要求的绿灯亮25秒,黄灯5秒,红灯30秒的倒计时计数项目。
下图预制数为30:
图474192设计的减法计数器电路图
方案二。
应用VerilogHDL硬件描述语言来设计本模块电路,具体程序如下:
modulejishu_25(clk,ld,a,q,cout);
inputclk,ld;
input[3:
0]a;
output[3:
0]q;
outputcout;
reg[3:
0]q;
regcout;
always@(posedgeclkornegedgeld)
begin
if(~ld)
beginq=a;
cout=1;
end
elseif(q>0)
beginq=q-1;
if(q==0)cout=1;
elsecout=1;
end
elseif(q==0)
beginq=9;cout=1;
end
end
endmodule
模块如图5:
3.3数码管显示及译码模块
根据7段共阴数码管的显示驱动电路有CD4511和7448,本模块电路选用CD4511作为显示译码驱动电路,具体电路原理图如图5所示。
图5倒计时显示译码模块电路图
3.4交通信号灯电路模块
本模块是整个系统的控制对象,也是系统设计的一个重要组成部分。
根据实际十字路口交通信号灯能按绿灯→黄灯→红灯循环显示,东西方向一组红、黄、绿灯和一对数码管;南北方向一组红、黄、绿灯和一对数码管;四条人行道两端的红、绿灯,组成交通灯系统,具体电路图如图6所示。
图6十字路口交通信号灯电路示意图
3.5时序状态控制模块
根据实际十字路口交通灯运行情况,本模块要实现控制红灯亮30秒,黄灯5秒,绿灯25秒,并且循环显示。
由于用芯片搭电路较为复杂,且易出现错误。
选择用Verilog编程语言编写,实现一种颜色灯的延时时间倒计时为零时,下一种灯亮且置数开始倒计时,依次循环显示,具体流程图如图7所示。
图7交通灯控制时序流程图
源程序:
modulecontrol_25(clk,JSin,LD,YS,LED);
inputclk;
input[7:
0]JSin;
outputLD;
output[7:
0]YS;
output[9:
0]LED;
regLD;
reg[7:
0]YS;
reg[9:
0]LED;
reg[1:
0]state;
always@(negedgeclk)
begin
if(JSin==0)LD=0;
elseLD=1;
end
always@(negedgeLD)
begin
state=state+1;
case(state)
0:
beginYS='b00100101;LED='b1000011001;end
1:
beginYS='b00000101;LED='b0100011001;end
2:
beginYS='b00110000;LED='b0011000110;end
3:
beginYS='b00000101;LED='b0010100110;end
endcase
end
endmodule
模块电路图:
4设计测试结果
将EDA-1实验板通过USB与电脑连接,编译好文件后,点击QuartusII软件引脚配置,通过查阅芯片引脚分配列表,将引脚配好。
配完后再编译一次,编译成功后,点QuartusII软件常用工具栏里的programmer,点开后,点start按钮即可完成下载。
交通灯电路板会通过EDA-1的扩展槽里获得控制信号,显示出交通灯的循环变化,而倒计时的数字显示则通过EDA-1实验板的数码管清楚看到。
对于测试中出现的问题,通过以模块为单位来排查解决。
5总结
这一周的实习,让我觉得还是有点难度的。
我感觉自己还得更加努力学习。
我相信自己一定会把数电这门学好的。