基于FPGA的交通灯课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要
本实验为自主选题设计实验,实验选择具有倒计时显示功能的红黄绿三色交通设计,实验中采用VHDL 作为设计功能描述语言,选用Altera公司的EP1K30144-PIN TQFP最为主控芯片,实验报告中简要介绍了FPGA器件,并给出了设计原理图,详细的介绍了交通灯的设计流程,实验报告中还附有实验代码实验结果照片图。
Abstract
This experiment designed for independent choice experiment, experiment choice which has the function of the countdown display red yellow green traffic design, description language (VHDL as design function is applied in the experiments, the most main control chip select MAX II EPM240T100C5 Altera company, experiment report, this paper briefly introduces the MAX II device series, and gives the design diagram, detailed introduces the traffic lights of the design process, the experiment report with the code results photo graph.
目录
一、概述 (1)
1.1课程设计背景 (1)
1.2课程设计题目 (1)
1.3课题功能补充 (1)
二、系统设计与论证 (2)
2.1系统设计思路 (2)
2.2系统框架设计 (3)
2.3输入输出设计 (4)
2.4模块设计过程 (4)
2.4.1状态转换模块 (4)
2.4.2数码管显示模块 (5)
2.5模块描述 (5)
2.5.1主控制模块 (5)
2.5.2 45s时间倒计时模块 (6)
2.5.3 25s时间倒计时模块 (6)
2.5.4 5s时间倒计时模块 (7)
2.5.5 数据选择模块 (7)
2.6整体电路图 (8)
三、系统仿真 (9)
四、心得体会 (9)
五、附录 (10)
5.1主控制模块源程序 (10)
5.2 45s模块源程序 (12)
5.3 25s模块源程序 (13)
5.4 5s模块源程序 (14)
5.5 数据选择模块源程序 (16)
六、参考文献 (16)
七、老师评语及成绩 (17)
一、概述
1.1课程设计背景
经过两个学期的电子线路设计测试实验,我们从基础的模电、数电典型电路的设计和实现做起,从PSpice和MAXⅡ的设计与仿真,到面包板搭建电路的实践与测试,在不断的学习和积累中,了解了电子技术设计的基本过程和基础知识。在本学期,我们迎来了电子技术课程设计,这是一次将理论付诸实践的宝贵机会,是提升我们运用电子技术设计手段实现实际问题的能力的良好机遇。
在选题阶段,我踌躇满志的和另一个同学选择了SD卡音乐播放器这个选做题,但是由于没有足够地去深入了解相关的技术问题,致使在开题时没有通过曾老师的验收,只能十分遗憾的选择了基础题,改做交通灯控制器了。虽然有些遗憾,因为当初觉得自己有能力完成那样一个选做题,但是这也给了我一个深刻的教训,在机遇和挑战面前,再有信心也要做好充足的准备来证明你的实力。另一方面给我的启示就是,尽管一个相同的题目前人做了很多工作,给我们提供了一个很好的平台,但是如果我们只是去读懂和使用它们,仅限在这样一个层次是远远不够了,要学会从前人的研究成果中寻找新的突破点,利用自己已掌握的知识或者所具备的能力,在原有的基础上实现更加丰富的功能,这才应该是我们做课程设计的最终目的。仅仅看懂别人的设计思路和代码并不是能力的体现,而真正锻炼我们能力的是在充分掌握前人设计手段的
基础上,融会贯通地使原有的设计更加结合实际,更加完善。
1.2课程设计题目
设计一个十字路口交通信号灯的控制电路。要求红、绿灯按照一定的要求亮和灭,并在亮灯期间进行倒计时,且将运行时间用数码管显示出来。
要求主干道每次通行时间为45秒,支干道每次通行时间为25秒。每次变换运行车道前绿灯闪烁,持续时间为5秒。即车道要由45转换为25时,主干道在通行时间只剩下5秒钟时,绿灯闪烁显示,支干道仍为红灯。
可以对主、支方向上的交通灯运行时间进行重新设置。
1.3课题功能补充
在原有题目功能要求的基础上,我对交通灯控制器的功能在设计方面进行了补充,主要体现在:
(1)增加主、支干道左转红绿信号灯;
(2)增加主、支干道左转运行时间倒计时,并用数码管显示;
(3)增加LED同步显示当前运行状态功能,即用LED显示信号灯状态;
功能增加了,可以说任务量也增加了不少。就最为关键的时间设置和显示方面,由于增加了两个左转方向的运行时间,虽然只是增加了两个状态,但是同时显示四个方向的等待和通行的倒计时,确实在开始设计时,我有些茫然,觉得无从下手。我花了很长时间在网上查阅实际中的交通灯到底是如何计时和运行的,也到学校周围的路口实地调查过几种十字路口交通灯的设置,慢慢的从实际设置需求中理清头绪,具体的设计思路将在后面的部分详细说明。
二、系统设计
2.1系统设计思路
前面讲到,基于状态机的方法可以轻松实现交通灯的控制,而状态转换利用Verilog中的case和循环语句很容易实现。我将四种状态的转换顺序设置为:主直→主左→次直→次左→主直→……(依次循环),每个状态在设置时间的基础上由倒计时进行状态的变换。以上都是比较容易实现的,也是很多经典的例子上有讲解过的,下面我着重说明下如何实现四个方向同时进行等待和通行的倒计时。
用四组数码管来显示主、次干道直行和左转倒计时,首先需要了解这四组数码管显示的规律,也就是显示计数的规律。在网上查阅资料的时候,通过观看一段视频,我茅塞顿开。这个视频展示的是基于51单片机实现的交通灯控制器的实物功能演示,它也是利用了四组数码管分别显示四个方向的倒计时。通过反复观看我发现,其实在四个方向中,一个是通行倒计时,另外三个是等待倒计时,而等待倒计时又是它之前状态通行时间之和,在显示的效果上就是总会有两组倒计时数值是相同的,即相邻状态的那两个是相同的,一个是正在通行,一个是等待上一状态通行的结束。这之后的两个状态显示的倒计时是累加上之前未通行状态的设置时间和正在通行状态的剩余时间之和。如图所示:
图1 状态转换图