实验七 十字路口交通灯控制器.doc
文本预览下载声明
实验七 十字路口交通灯控制器
了解交通灯的亮灭规律。
了解交通灯控制器的工作原理。
熟悉VHDL语言编程,了解实际设计中的优化方案。
二 硬件需求
1.EDA/SOPC实验箱一台。
三 实验原理
交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又有很多不同的显示要求,比如十字路口,车子如果只要东西和南北方向通行就很简单,而如果车子可以左右转弯的通行就比较复杂,本实验仅针对最简单的南北和东西直行的情况(如图1和图2所示)。
完成本实验,首先必须了解交通路灯的亮灭规律。本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各三个。依人们的交通常规,“红灯停,绿灯行,黄灯提醒”。其交通灯的亮灭规律为:初始态是两个路口的红灯全亮,之后东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。
在实验中使用8个七段码管中的任意两个数码管显示时间。东西路和南北路的通车时间均设定为20s。数码管的时间总是显示为19、18、17……2、1、0、19、18……。在显示时间小于3秒的时候,通车方向的黄灯闪烁。
四 实验内容
本实验要完成任务就是设计一个简单的交通灯控制器,交通灯显示用实验箱的交通灯模块和七段码管中的任意两个来显示。系统时钟选择时钟模块的1KHz时钟,黄灯闪烁时钟要求为2Hz,七段码管的时间显示为1Hz脉冲,即每1s中递减一次,在显示时间小于3秒的时候,通车方向的黄灯以2Hz的频率闪烁。系统中用S1按键进行复位。
五 实验步骤
完成交通灯控制器的实验步骤如下:
1.首先打开Quartus II软件,新建一个工程,并新建一个VHDL File。
2.按照自己的想法,编写VHDL程序。
3.对自己编写的VHDL程序进行编译并仿真。
4.仿真无误后,根据附录一的引脚对照表,对实验中用到时钟、七段码显示及交通灯模块的LED对应的FPGA引脚进行管脚绑定,然后再重新编译一次。
5.用下载电缆通过JTAG接口将对应的sof文件下载到FPGA中。
6.观察交通灯控制器的工作是否满足实验要求。
注意:此实验需管脚复用
???? 下面是交通等控制器参考电路。
????? 模块“div_1000”把1kHz时钟分频输出1Hz时钟。
????? count用于20秒倒计时,并输出方向标志Dir_Flag。
??????sel_time用于输出选通,即对于数码管地址SEL从000——111分别输出秒十位、秒个位和分隔符“=”(编码10001)或“||”(编码10011)。用实验二中对应模块稍微修改一下即可实现。
????? deled用于对BCD编码译码驱动数码管显示数字。用实验二中相应模块,将BCD码扩展一位,“00000”~“01111”显示原有的“0”~“F”,最高位为“1”显示特殊字符,如“10001”显示“=”、“10010”显示“||”。
????? control用于控制横向和纵向的红灯、绿灯显示和黄灯闪烁控制。
??????? 下面是完整VHDL程序,请参考例程按上图编写出各模块,对各个模块进行仿真;并用原理图作为顶层文件,完成整个设计。?
?
?
?
?
六、实验报告要求
1.详细论述各模块功能和设计思路。
2.分析“count”模块的仿真波形及实验结果。
3.如果要将1KHz的时钟分频得到250Hz的时钟,写出至少三种不同的VHDL源码(尽量写出最简单的方案)。
4.实验的心得体会。
显示全部