基于FPGA交通灯设计(共16页).doc
《基于FPGA交通灯设计(共16页).doc》由会员分享,可在线阅读,更多相关《基于FPGA交通灯设计(共16页).doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上河南科技学院新科学院数字系统课程设计报告书课题名称 基于FPGA的交通灯设计院 系新科学院姓名学号 夏文平、专业班级通信工程、通信132指导教师刘艳昌、雷进辉设计时间2014-2015学年第2学期12、13周2015年 6月 5 日专心-专注-专业摘要交通灯信号控制器通常要实现自动控制和手动控制其红绿灯的变化,基于FPGA设计的交通灯信号控制器电路简单、可靠性好。本设计可控制2个路口的红、黄、绿三盏灯让其按特定的规律进行变化。利用Quartus对设计结果进行仿真,发现系统工作性能良好。据此设计而成的硬件电路,也实现了控制要求。关键词:交通灯 自动控制 手动控制 课程设
2、计目的。巩固加深所学电子技术课程的基本知识,提高综合运用所学知识的能力。同时培养学生选用参考书、查阅手册、图表和文献资料的能力,提高解决实际问题的能力。并且,在设计方案分析比较、设计计算、电路安装等缓解掌握使用电路的设计方法。然后提高学生的动手能力,掌握仪器设备的正确使用方法。最后了解与课题有关的电路以及元器件的工程技术规范,能按课程设计任务数的要求编写设计说明书,可以正确反映设计和实验成果,能正确绘制电路图等。 设计任务及要求。设计一个十字路口的交通灯控制电路,要求甲车道和乙车道两条交叉道路上的车辆交替运行,每次的通行时间都设为25秒。要求黄灯先亮5秒,才能变换运行车道并且黄灯亮时另一干道的
3、红灯按1Hz的频率闪烁。要求通行时间及黄灯亮的时间均可在60秒内任意设定。要求交通灯控制电路可以手动控制立即进入特殊运行状态,即两条道上红灯全亮,时钟停止计时。当特殊运行状态结束后,系统复原,继续正常运行。 系统设计总体方案。由设计要求可得如下交通控制器的状态转换表:甲车道乙车道时间绿灯红灯6S黄灯红灯5S红灯绿灯11S红灯(闪烁)黄灯5S 各模块具体实现。 分频模块。如图为分频模块。模块功能:实现分频功能,输入50MHz的时钟信号,对上升沿进行计数,每50M个脉冲的上升沿输出一次高电平脉冲信号,从而实现分频。模块程序如下:module one_second_clk(reset,clk,cou
4、t);input reset,clk;integer count;output reg cout;always (posedge clk) if(reset) begin count=0;cout=0;end else if(count=-1) begin count=0;cout=1;end else begin count=count+1;cout=0;endendmodulemodule timer_NS(clk,reset,set,ld,en,state,q_NS,done_NS);input clk,reset,set,ld,en;input 3:0 state;output 7:0
5、 q_NS;output done_NS;reg 7:0 q_NS;parameter red_NS=8d10,green_NS=8d5,yellow_NS=8h04;parameter st0=4b0001,st1=4b0010,st2=4b0100,st3=4b1000;assign done_NS=(|q_NS)&en;always(posedge clk)if(reset)q_NS=green_NS;else if(ld)case(state)st0: q_NS=yellow_NS;st1: q_NS=red_NS;st2: q_NS=8h00;st3: q_NS=green_NS;d
6、efault: q_NS=8h00;endcaseelse if(en&set)beginq_NS=q_NS-1;endendmodule 倒计时模块。由于是东西南北两条道路,固有两个倒计时器。模块功能:在相应状态下实现倒序计数。程序如下:module timer_EW(clk,reset,set,ld,en,state,q_EW,done_EW);input clk,reset,set,ld,en;input 3:0 state;output 7:0 q_EW;output done_EW;reg 7:0 q_EW;parameter red_EW=8d10,green_EW=8d5,yel
7、low_EW=8h04;parameter st0=4b0001,st1=4b0010,st2=4b0100,st3=4b1000;assign done_EW=(|q_EW)&en;always(posedge clk)if(reset)q_EW=red_EW;else if(ld)case(state)st0: q_EW=8h00;st1: q_EW=green_EW;st2: q_EW=yellow_EW;st3: q_EW=red_EW;default: q_EW=8h00;endcaseelse if(en&set)beginq_EW=q_EW-1;endendmodule 转码模块
8、。模块功能:将计数器输出的的二进制数转换为bcd码表示的十进制数。转码程序如下:module bin_to_bcd(data,units,tens,hundreds);input7:0 data;output3:0 units,tens,hundreds;reg3:0 units_r,tens_r,hundreds_r;reg7:0 dat_r;reg11:0 temp;integer i;assign units=units_r;assign tens=tens_r;assign hundreds=hundreds_r;always(data) begin dat_r=data; temp=
9、0; for(i=0;i4d4) temp3:0=temp3:0+4d3; if(temp7:44d4) temp7:4=temp7:4+4d3; if(temp11:84d4) temp11:8=temp11:8+4d3; dat_r=dat_r1; hundreds_r,tens_r,units_r=temp10:0,data0; end endendmodule 交通控制模块。模块功能:把以上五个模块连接起来形成一个完整的电路,从而实现交通灯控制功能。交通控制模块程序如下:module traffic_control(clk,clk_1hz,reset,set,done_NS,done_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 交通灯 设计 16
限制150内