交通灯控制器eda课程设计报告书大学论文Word文档格式.docx
- 文档编号:21515841
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:31
- 大小:2.40MB
交通灯控制器eda课程设计报告书大学论文Word文档格式.docx
《交通灯控制器eda课程设计报告书大学论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《交通灯控制器eda课程设计报告书大学论文Word文档格式.docx(31页珍藏版)》请在冰豆网上搜索。
主干道直行红灯亮、主干道左转黄灯亮、次干道直行和左转红灯亮;
主干道直行红灯亮、主干道左转红灯亮、次干道直行绿灯亮,次干道左转红灯亮;
主干道直行红灯亮、主干道左转红灯亮、次干道直行黄灯亮,次干道左转红灯亮;
主干道直行红灯亮、主干道左转红灯亮、次干道直行红灯亮,次干道左转绿灯亮;
主干道直行红灯亮、主干道左转红灯亮、次干道直行绿灯亮,次干道左转黄灯亮;
于是我定义了一个信号STATE用于存储状态机的状态:
TYPESTATE_TYPEIS(A,B,C,D,E,F,G,H);
SIGNALSTATE:
STATE_TYPE:
=A;
--状态初始化为A
数码管的显示部分。
设置了5个计时器,分别是30s计时器、25s计时器、20s计时器、15s计时器和5s计时器。
每个计时器都有一个使能EN信号,每个状态下只允许一个EN有效,当检测的计时器的EN信号有效时,就会将它的计数数值送到数码管显示。
定义了一个常量数组:
LED。
代码如下:
constantLED:
data:
=("
11000000"
"
11111001"
10100100"
10110000"
10011001"
10010010"
10000010"
11111000"
10000000"
10010000"
);
--储存0~9的数码管显示字符
将2位十进制数转化为2个8位二进制数显示的代码为:
hh:
=current_30s/10;
ll:
=current_30srem10;
LED2<
=LED(hh);
LED1<
=LED(ll);
计时部分使用5个计时器,每个计时器由使能信号EN控制启动。
由计时完成信号SIN告知系统计时完成。
5个计时器结构类似,下面是计时器30S的程序代码:
SANs:
process(time_1s,stop,pause,en_30s)
begin
ifstop='
1'
then
current_30s<
=set_30s;
elsifpause='
elsifen_30s='
0'
sin_30s<
='
;
elsiftime_1s'
eventandtime_1s='
then
=current_30s-1;
ifsin_30s='
sin_30s<
endif;
ifcurrent_30s=0then
current_30s<
endif;
endprocessSANs;
按键对倒计数时间的调整部分。
设置了四个键用于计数时间的调整:
stop键用于从正常运行模式跳转到调整模式,change键用于选择调整5个计数器中哪一个的值,plus和minus键用于加或减相应计数器的值。
由于要用一个change键控制5个状态的转化,于是在这儿又用了一个状态机。
状态信号set_LED定义如下:
TYPEset_typeIS(A,B,C,D,E);
SIGNALset_LED:
set_type;
状态变换部分代码:
IFchange='
THEN
caseSET_LEDis
whenA=>
set_LED<
=B;
whenB=>
=C;
whenC=>
=D;
whenD=>
=E;
whenE=>
endcase;
ENDIF;
3.单元模块
3.1程序中使用的信号介绍:
signaltime_1s,time_ms:
std_logic;
signalsin_30s,sin_25s,sin_20s,sin_5s,sin_15s:
--定义30s,25s,15s,5s计时模块的信号线,计满相应秒数后输出,高有效
signalen_30s,en_25s,en_20s,en_5s,en_15s:
--定义30s,25s,15s,5s计时模块的使能端,高有效
signalset_30s,set_25s,set_20s,set_5s,set_15s:
integerrange0to100;
--设定计时初始值
signalcurrent_30s,current_25s,current_20s,current_5s,current_15s:
integerrange0to99;
3.2子模块功能介绍:
3.2.1分频器
将学习板上50MHZ的晶振信号分频为1HZ和0.2HZ,tex为测试信号,频率为1HZ用于观测分频器是否工作正常。
如下图所示:
图3-2-1分频器
3.2.2交通信号灯控制模块
根据STATE的状态来点亮各个交通灯。
当pause或stop信号为高时,灯的显示状态保持。
图3-2-2交通信号灯控制模块
3.2.3STATE信号以及计时器使能信号控制器
根据STATE的现态和sin_30s、sin_25s、sin_20s、sin_15s、sin_5s信号的状态可以决定STATE信号的状态切换和5个计时器的使能。
当stop信号为‘1’的时候,sin_30s被置‘1’,sin_25s、sin_20s、sin_15s和sin_5s被置‘0’。
STATE信号被置A。
图3-2-3STATE信号以及计时器使能信号控制器
3.2.4计时值设置模块
当stop置1时启用计时值设置模块,当change按下时会在5个计时器之间转换,按plus或minus时会将相应的计时器设置值加一或减一。
图3-2-4计时值设置模块
3.2.5数码管倒计时显示模块
当stop为0时为正常显示模式,实时显示当前被使能的计时器的值。
当stop值为1时为指示模式,显示当前调整计时值设置模块调整的计时器编号。
如30S计时器的编号为30,当调整计时器30S的计时值时,数码管将显示30。
图3-2-5数码管倒计时显示模块
3.2.625号计时器
计时初值为25s。
当set_25s变化时,它会实时从set_25s中读取新的计时值。
当25s倒计时计到0时,sin_25s端会送出一个高电平脉冲,表示计时完成。
图3.2.625号计时器
3.2.720号计时器
计时初值为20s。
当set_20s变化时,它会实时从set_20s中读取新的计时值。
当20s倒计时计到0时,sin_20s端会送出一个高电平脉冲,表示计时完成。
图3.2.720号计时器
3.2.830号计时器
计时初值为30s。
当set_30s变化时,它会实时从set_30s中读取新的计时值。
当30s倒计时计到0时,sin_30s端会送出一个高电平脉冲,表示计时完成。
图3.2.830号计时器
3.2.915号计时器。
计时初值为15s。
当set_15s变化时,它会实时从set_15s中读取新的计时值。
当15s倒计时计到0时,sin_15s端会送出一个高电平脉冲,表示计时完成。
图3-2-915号计时器
3.2.105号计时器
计时初值为5s。
当set_5s变化时,它会实时从set_5s中读取新的计时值。
当5s倒计时计到0时,sin_5s端会送出一个高电平脉冲,表示计时完成。
图3-2-105号计时器
4.整体电路
总体的模块图
共有十个模块:
一个分频器模块,5个计时器模块,一个交通信号灯控制模块,一个STATE信号以及计时器使能信号控制模块,一个数码管倒计时显示模块以及一个计时值设置模块。
图4系统整体模块图
5.仿真及实物图
5.1ModelSim仿真图
该图显示了控制交通灯的状态机的工作状况。
Stop置0,pause置0,系统工作在正常模式下。
STATE状态信号以A->
B->
C->
D->
E->
F->
G->
H->
A变化。
图5-1-1交通灯状态变换ModelSim仿真图
该图显示了按键设置部分的状态机运行状况,此时stop置1,change置0,系统工作在停止以及设置模式下。
SET_LED会以A=>
B=>
C=>
D=>
E=>
图5-1-2按键设置部分状态机ModelSim仿真图
5.2实物图
图5-2-1是初始化界面,系统从30开始倒计时,此时灯亮的状态为:
主干道直行绿灯亮、主干道左转红灯亮、次干道直行红灯亮、次干道左转红灯亮。
车道的状态为只允许主干道车辆直行。
图5.2.1初始化界面
初始化界面之后,系统开始30S倒计时。
图5-2-2正常运行界面30S倒计时阶段
30S倒计时完成后,亮5s黄灯后,进入25S倒计时界面,此时灯亮的状态为:
主干道直行红灯亮、主干道左转绿灯亮、次干道直行红灯亮、次干道左转红灯亮。
车道的状态为只允许主干道车辆左转。
图5-2-3正常运行界面25S倒计时阶段
对30S计时器的初值进行设置,其初始化值为30,现在已经被调整为26。
前两个数码管显示当前设定后的初值,后两个数码管显示当前调整的计时器的编号。
图5.2.4设置30S计时器的计时初值界面
系统可对所有计时器进行初值设定,图5-2-5为对20S计时器做初值设定。
图5-2-5设置20S计时器的计时初值界面
图5-2-6为对05S计时器做初值设定。
图5-2-6设置05S计时器的计时初值界面
6心得
作为工科生,在大学里进行这样的实习的时候还是不多的。
我也非常珍惜,希望能学到一些课堂上学不到的东西。
运用课堂学习的东西做课设一般是是不够的,于是这就考验了我们在略有思路的情况下如何迅速的通过自学或试验来获取课程设计中需要的知识和经验,并理清思路做出设计并仿真调试最终做出实物来。
我在课设期间的收获很大。
除了在FPGA编程上又得到了一次难得的历练外,我还学会使用了ModelSim这一功能强大的仿真软件。
参考文献
[1]徐志军,王金明等.《EDA技术与VHDL设计》.北京:
电子工业出版社,2009年
[2]贝耶尔,刘凌.《数字信号处理的FPGA实现》.北京:
清华大学出版社,2011年
[3]高亚军.《基于FPGA的数字信号处理》.北京:
电子工业出版社,2012年
[4]张凯虹.《一种FPGA验证与测试的方法介绍》.计算机与数字工程,2010年第9期
[5]童鹏,胡以华.《FPGA器件选型研究》.现代电子技术,2007年第20期
附录
源程序
libraryieee;
useieee.std_logic_unsigned.all;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
entitytrafficis
port(
stop,pause,plus,minus,change,clk:
instd_logic;
MR,MY,MG,BR,BY,BG,MLR,MLY,MLG,BLY,BLR,BLG,tex:
outstd_logic;
LED1:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
LED2:
LED3:
LED4:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
endtraffic;
architectureoneoftrafficis
SIGNALSTATE:
signaltime_1s,time_ms:
signalsin_30s,sin_25s,sin_20s,sin_5s,sin_15s:
signalset_30s,set_25s,set_20s,set_5s,set_15s:
signalcurrent_30s,current_25s,current_20s,current_15s,current_5s:
range0to99;
typedataisarray(0to9)ofstd_logic_vector(7downto0);
constantLED:
TYPEset_typeIS(A,B,C,D,E);
BEGIN
no1:
process(clk)
variablei:
INTEGERRANGE0TO25_000_000;
variablej:
ifclk'
eventandclk='
i:
=i+1;
j:
=j+1;
ifj=50_00000then
time_ms<
=nottime_ms;
j:
=0;
endif;
ifi=25_000_000then
tex<
=time_1s;
time_1s<
=nottime_1s;
i:
endif;
endprocessno1;
no2:
process(STATE)
elsecaseSTATEis
WHENA=>
MR<
MY<
MG<
BR<
BY<
BG<
MLR<
MLY<
MLG<
BLY<
BLR<
BLG<
WHENB=>
WHENC=>
WHEND=>
WHENE=>
WHENF=>
WHENG=>
WHENH=>
ENDCASE;
endprocessno2;
no3:
process(sin_30s,sin_25s,sin_20s,sin_5s,sin_15s,stop,pause,clk,state)
variableint:
std_logic:
state<
en_30s<
en_25s<
en_20s<
en_5s<
en_15s<
int:
else
ifclk'
ifint='
caseSTATEis
ifsin_30s='
STATE<
EN_30S<
EN_5S<
ifsin_5s='
EN_25S<
ifsin_25s='
EN_20S<
ifsin_20s='
=F;
=G;
EN_15S<
ifsin_15s='
=H;
ENDprocessno3;
set:
process(time_ms,stop,pause,plus,minus,change)
--TYPEset_typeIS(A,B,C,D,E);
--variableset:
VARIABLEHH,LL:
INTEGERRANGE0TO9;
iftime_ms'
eventandtime_ms='
set_30s<
=30;
set_25s<
=25;
set_20s<
=20;
set_5s<
=5;
set_15s<
=15;
set_LED<
int:
ifchange='
foriIN0to25loop
endloop;
ifchange='
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 控制器 eda 课程设计 报告书 大学 论文