华中科技大学电子技术课程设计报告交通灯控制器设计docWord下载.docx
- 文档编号:13837116
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:25
- 大小:578.27KB
华中科技大学电子技术课程设计报告交通灯控制器设计docWord下载.docx
《华中科技大学电子技术课程设计报告交通灯控制器设计docWord下载.docx》由会员分享,可在线阅读,更多相关《华中科技大学电子技术课程设计报告交通灯控制器设计docWord下载.docx(25页珍藏版)》请在冰豆网上搜索。
三、系统设计……………………………………………3
1、系统框图与说明……………………………...3
2、状态转换图…………………………………...5
3、输入输出设计………………………………...6
四、系统仿真……………………………………………6
1、各模块仿真波形……………………………...6
2、实测…………………………………………...8
五、实验总结……………………………………………8
1、心得体会……………………………………...8
2、待改进的问题………………………………..10
3、功能扩展……………………………………..10
附录……………………………………………………….11
一、课程设计名称
交通灯控制器的设计
二、设计内容及要求
1、设计一个十字路口交通信号灯的控制电路。
要求红、绿灯按一定的规律亮和灭,并在亮灯期间进行倒计时,且将运行时间用数码管显示出来。
2、绿灯亮时,为该车道允许通行信号,红灯亮时,为该车道禁止通行信号。
要求主干道每次通行时间为Tx秒,支干道每次通行时间为Ty秒。
每次变换运行车道前绿灯闪烁,持续时间为5秒。
即车道要由X转换为Y时,X在通行时间只剩下5秒钟时,绿灯闪烁显示,Y仍为红灯。
3、可以对X,Y车道上交通灯运行的时间进行重新设置,
20≦Tx≦99,10≦Ty≦39
4、对器件进行在系统编程和实验验证。
5、写出设计性实验报告,并打印各层次的源文件和仿真波形,然后作简要说明。
三、系统设计
1、系统框图与说明
由上图,我们可以清楚地将系统分为六个模块:
分频模块,时间设置模块,状态转换模块,时间计算模块,数码管译码模块,LED显示模块。
下面设计者将对每个模块进行详细的说明。
1)分频模块
分频模块其作用为:
由于DE2板上能够提供的时钟信号为50MHz,而设计所需时钟信号为1Hz,故使用分频模块将50MHz信号分频为1Hz信号。
2)时间设置模块
由于系统设计要求可以对主干道,支干道上左转、绿灯运行的时间进行重新设置调整,所以要对系统进行参数化设计。
首先引入一组参数,main_gh,main_gl,main_lh,main_ll,branch_gh,branch_gl,branch_lh,branch_ll(下划线后面的字母分别取green,left,high,low首字母).需要置数时,首先选择对主干道还是支干道时间置数,这里设置一个main_or_branch参数,当main_or_branch为高时设置支干道时间,为低时设置主干道时间。
置数时,通过s_set_button,l_set_button对时间进行设置,具体方法参见代码。
为了置数方便,引入一个add_or_decent参数,低电平时按下button可以增计数,高电平时按下可以减计数。
而在程序设计上,可以运用always语句进行设计,来判断置数键的变化。
因为在VerilogHDL语言中always块中beginend在概念上顺序执行,实质上是并行的,因为每条语句的执行不占用具体时间,所有语句都是在一瞬间执行的,没有时间的先后,但有先后执行之分。
仿真时是逐条执行的。
但要弄清楚阻塞赋值和非阻塞赋值的区别。
如果全部都是非阻塞的赋值的话,才相当于并行的。
而此程序设计刚好要求,主干道绿灯计时的置数,主干道左转计时的置数,支干道绿灯计时的置数,支干道左转计时的置数并行进行,所以选用always语句很合适。
3)状态转换模块
本设计将交通灯的整个过程划分为四个基本状态:
主干道绿灯、主干道左转、支干道绿灯、支干道左转,用state、s_or_l为00、01、10、11来代表。
每当一个状态的计数器为00时,state、s_or_l发生改变,以实现状态间的转换。
4)时间计算模块
由于本设计中加入了左转的时间,因此红灯时间不仅仅是另一干道的直行时间,而是直行时间和左转时间之和,由于在状态转换模块中需要用到大量的时间判断,因此将此模块单独划分。
5)数码管译码模块
由于DE2板上无数码管译码电路,所以需要将4位的数码管控制信号译成7位控制信号。
6)LED显示模块
由输入信号state、s_or_l、flash,分别取000,001,010,011,100,101,110,111所得到的main_green,main_left,main_red,branch_left,
branch_green,branch_red的不同值,来控制主干道,支干道红绿左转灯的亮灭。
其中1表示亮,0表示灭。
如表3-1所示。
由上表可得到:
main_green=~state&
~s_or_l&
(~(flash&
clk));
main_left=~state&
s_or_l&
main_red=state;
branch_green=state&
branch_left=state&
branch_red=~state;
2、状态转换图
S0状态:
主干道绿灯、支干道红灯
S1状态:
主干道左转、支干道红灯
S2状态:
支干道绿灯、主干道红灯
S3状态:
支干道左转、主干道红灯
3、输入输出设计
本设计硬件基于DE0板,具体输入输出如下:
1)输入:
开关:
main_or_branch,EN,run_or_set,add_or_decent
按键:
s_set_button,l_set_button
时钟:
clk
2)输出:
数码管:
OUT1L,OUT1H,OUT2L,OUT2H
LED灯:
main_green,main_red,main_left
branch_left,branch_green,branch_red
四、系统仿真
1、各模块仿真波形
这里给s_set_button和l_set_button分别设置持续的脉冲信号,可以看到,当main_or_branch为低时为主干道时间置数,为高时支干道时间置数,当add_or_decent为低时加计数,为高时减计数,仿真结果符合预期效果。
首先仿真EN为高时的运行状态,给主干道直行左转分别赋值25,15,支干道直行左转分别赋值15,10,主干道红灯时间26,支干道红灯时间41,从输出的state和s_or_l可以清楚的看出状态转换和时间的关系,flash的仿真结果也符合预期。
该图为run_or_set为低时的仿真图,可以看到,就算EN为高,此时数码管显示的也是赋值在counter_play3和counter_play4上的值,即置数值,符合仿真预期。
给输入的两个变量分别置数12,34,得到输出47,红灯时间应该等于直行加左转时间再加1,符合预期。
5)LED显示模块
该模块即为状态转换仿真,将state,s_or_l,flash赋予相应的波形,可以看出,当state为00时,主干道直行灯亮,支干道红灯亮;
01时,主干道左转灯亮,支干道红灯亮;
10时,主干道红灯亮,支干道直行灯亮;
11时,主干道红灯亮,支干道左转灯亮。
并且flash为高时LED灯出现闪烁,符合仿真结果。
2、实测
已经现场验收通过。
五、实验总结
1、心得体会
看着手边不断变换的交通信号灯以及倒计时显示的数码管,回顾这5周以来为课设所做的所有努力,感慨良多。
只有亲身去努力尝试,才回收获真正的知识和能力。
为了找到切合实际的解决方案,我采用实地调查和网络搜集;
为了寻找可能存在的BUG,我反复测试下载后的DE0板子,尽量穷尽各种可能出现的特殊情况,发现问题及时修改。
值得欣慰的是,所有的努力没有白费,到目前为止所做出的成果还是比较令我满意的。
在这里,要感谢龚军老师的教诲,感谢学校开设这门课程设计,给我们了一次充分锻炼,将理论知识付诸实践的机会。
书上的知识再多,都是死的,即使你完全记住,也无法在实际使用中游刃有余地去利用它们,不能让知识为我所用。
同时,在解决问题的时候,会发现自己依旧欠缺的知识,需要我们耐心地去查阅资料,不断补充新的领域的知识。
这样的一种锻炼,可以帮助我们形成一种习惯,在今后工作学习中,自然地去运用相同的方法解决不同的问题。
很多同学说,本科期间做项目找实习的机会太少,其实他们忽略了像课程设计这样的宝贵机会。
大学三年,我们学习了很多工程技术的知识,但却经常性的忽视在这些课程中的课程设计这个关键环节,认为它们只不过是走过场,抄抄代码,写写报告就够了。
其实不然,课程设计本身就是一次做项目的经历,它要求你严格按照项目规程操作,在时间和进度上,都要有项目意识。
虽然我学习过信息系统等软件开发的流程和方法,但是与实际运用严重脱节,没有那种清晰而强烈的工程思想,而是沿用做一步看一步的原始想法。
这次课程设计虽然系统架构不是很复杂,但还是需要一定的规划和思考才能做得快做得好,我们班拿到题目之后,只有很少部分人做了详细的开题报告,事实证明他们确实完成的质量也很高,所以说不能眼高手低,到最后却碌碌无为。
在调试的过程中,我也遇到了很多问题,比如计数器工作不正常,LED灯非正常闪烁,也废了很大的功夫才把BUG解决。
这里我要感谢班上和我做一个题目的同学们,在我绞尽脑汁无法找出BUG的时候,是他们帮助我解决了问题。
这个事情也充分说明了团队合作的重要性,每个人的想法都是极其宝贵的,汲取他人之所长会对自己的工作产生事倍功半的效果。
但是借鉴要有限度,要讲究方式方法。
很多同学容易走两个极端,一种是埋头编程,中途遇到很多困难其实前人也都遇到并且很好地解决了,但是他们还要继续重复地探寻解决途径;
另一种是照单全收,完全不明白作者的用意和初衷,只知道看结果对就拿来用,没弄明白其所以然,显然是荒废了学习的机会。
课程设计给了我们把知识转化为能力的机会,这次电子技术课程设计更是让我受益良多,相信在我以后的求学过程中,这次课设给我带来的收获一定会指引我前进。
2、待改进的问题
由于技术手段有限,未能加入人行道红绿灯提醒功能。
并且由于对题目理解不是很深刻,在红绿灯时间计算的时候出了一些问题,这些都是以后学弟学妹们做课设时候需要注意的。
3、功能扩展
加入了左转功能,更加符合实际十字路口的情况,如果是DE2板,还可以用LCD屏显示状态,但遗憾未能实现。
附录:
源代码
modulejiaotongdeng(clk,main_or_branch,EN,run_or_set,add_or_decent,
s_set_button,l_set_button,main_green,main_red,branch_green,branch_red,main_left,branch_left,
OUT1L,OUT1H,OUT2L,OUT2H
);
inputclk,main_or_branch,EN,run_or_set,add_or_decent;
inputs_set_button,l_set_button;
outputmain_green,main_red,main_left,branch_left,branch_green,branch_red;
output[7:
0]OU
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华中科技大学 电子技术 课程设计 报告 交通灯 控制器 设计 doc