数字电子技术课程设计报告模板.docx
- 文档编号:2468259
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:18
- 大小:153.58KB
数字电子技术课程设计报告模板.docx
《数字电子技术课程设计报告模板.docx》由会员分享,可在线阅读,更多相关《数字电子技术课程设计报告模板.docx(18页珍藏版)》请在冰点文库上搜索。
数字电子技术课程设计报告模板
.
《数字电子技术》课程设计
题目:
基于FPGA的汽车尾灯控制器设计
院系:
工学院
专业班级:
电子信息工程12秋1班
姓名:
学号:
小组成员:
指导教师:
赵兰、周丽婕、徐振
完成日期2015年1月
1引言
汽车作为现代交通工具已大量进入人们的生活,随着电子技术的发展,对于汽车的控制电路,已经从过去的全人工开关控制发展到了智能控制。
……
2QuartusII软件、FPGA硬件介绍
2.1QuartusII软件介绍
QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程[1]。
……
2.2FPGA硬件介绍
FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
……
3汽车尾灯控制器的总体方案
3.1汽车尾灯控制器的需求分析
3.1.1基本要求
……
为了区分汽车尾灯的4种不同的显示模式,我们设置3个状态控制变量。
假定用开关K1、K2、K3进行显示模式控制,可列出汽车尾灯显示状态与汽车运行状态的关系,如表3.1所示。
表3.1汽车尾灯和汽车运行状态
开关控制
汽车状态
左尾灯D1、D2、D3
右尾灯D4、D5、D6
K1
K2
K3
0
0
0
正常行驶
不亮
不亮
1
0
0
左转
按D3,D2,D1顺序循环点亮
不亮
0
1
0
右转
不亮
按D4,D5,D6顺序循环点亮
1
1
0
刹车
同时点亮
同时点亮
0
0
1
故障
同时闪烁
同时闪烁
3.1.2特色功能
3.2汽车尾灯控制器的总体工作原理
本设计分别针对汽车正常行驶、左、右转向、刹车、故障四种状态进行演示。
首先,打开总开关。
当控制模块输入为00时,车正常行驶,汽车尾灯不亮;当控制模块输入为10时,表示汽车左转,此时数码管显示“LEFt”,定时器开启,汽车左尾灯由3个LED灯D1、D2、D3显示,从右往左依次闪烁,当定时器到设定时间时,左灯自动熄灭,关掉左转,定时器清零;当控制模块输入为01时,表示汽车右转,此时数码管显示“rgHt”,定时器开启,汽车右尾灯由3个LED灯D4、D5、D6显示,从左往右依次闪烁,当定时器到设定时间时,右灯自动熄灭,关掉右转,定时器清零;当控制模块输入为11时,表示刹车,此时数码管显示“braE”,汽车左右尾灯常亮。
当故障控制开关为1时,数码管显示“HELP”,此时左右尾灯同时闪烁。
图3.1为总体方案模块构造。
右边灯控制模块
定时器模块
左边灯控制模块
主控模块
图3.1总体方案模块构造
4汽车尾灯控制器的各模块仿真
4.1基本模块
4.1.1主控模块
如图4.1为主控模块,lft、rit、lr为输出端口。
left为高电平时,左模块工作,当right为高电平时,右模块工作从而实现对左右控制模块的控制。
……
公式2.1如下所示:
(2.1)
图4.1主控模块
图4.2主控模块流程图
图4.3主控模块仿真图
本模块功能:
以left、right为输入端口,高电平有效,lft、rit、lr为输出端口。
left为高电平时,左模块工作,当right为高电平时,右模块工作从而实现对左右控制模块的控制。
4.1.2左边灯控制模块
图4.4左车灯控制模块
图4.5左边灯控制模块流程图
图4.6左边灯控制模块仿真图
左边灯控制模块仿真图如图4.6。
本模块功能:
以clk、lft、lr、en为输入端口,高电平有效,l_out[2]、l_out[1]、l_out[0]为输出端口。
当clk的上升沿到来时,如果三个输入同时为低电平时,则灯不亮;当lr、en为低电平lft为高电平时,l_out[2..0]依次闪烁,当lft、en为低电平lr为高电平时,l_out[2..0]常亮;当lr、lft为低电平en为高电平时,l_out[2..0]三个灯同时闪烁。
通过l_out[2]、l_out[1]、l_out[0]的电平信号来控制汽车左边的尾灯。
4.1.3右边灯控制模块
图4.7左车灯控制模块
图4.8右边灯控制模块流程图
图4.9右边灯控制模块仿真图
右边灯控制模块仿真图如图4.9。
本模块功能:
以clk、rit、lr、en为输入端口,高电平有效,r_out[2]、r_out[1]、r_out[0]为输出端口。
当clk的上升沿到来时,如果三个输入同时为低电平时,则灯不亮;当lr、en为低电平rit为高电平时,r_out[2..0]依次闪烁,当rit、en为低电平lr为高电平时,r_out[2..0]常亮;当lr、rit为低电平en为高电平时,r_out[2..0]三个灯同时闪烁。
通过r_out[2]、r_out[1]、r_out[0]的电平信号来控制汽车右边的尾灯。
4.2特色功能模块
4.2.1时钟变频模块
图4.10时钟变频模块
图4.11时钟变频模块流程图
图4.12时钟变频模块仿真图
本模块功能:
将50MHz的脉冲变为1Hz的脉冲,则意味着原来的脉冲周期将变为原先的5千万倍。
由于频率过高,所以无法在图中显示,但是经过下载到开发板上验证此模块的功能是能够实现的。
具体下载调试图详见第6章图6.1-图6.5。
4.2.2定时器模块
图4.13(a)定时器模块
图4.13(b)定时器数码管显示模块
图4.13定时器模块流程图
定时器模块仿真图如图4.14(a),en=1时,定时器启动,9秒后,定时器不再计时,令输出端f由0变为1.
图4.14
(a)定时器仿真图
图4.14(b)为左灯定时器数码管显示的仿真图,从图中可以看出定时每秒对应的数码管位数。
图4.14(b)左灯定时器数码管显示仿真图
图4.14(c)右灯定时器数码管显示仿真图(展开)
此特色模块的功能为:
输入端clk接变频后1Hz的信号,en接左(右)灯控制模块的lft(rit),当en=1时,定时器启动。
RST复位键接总控制模块的left(right)经过一个非门后的信号,实现转向控制按键为零时,定时器清零。
输出端Q[3..0]与定时器数码管显示模块的输入端Q[3..0]相连,通过vhdl语言编写,实现在数码管上按秒显示其对应的数字。
此模块的另一个输出端C,则为控制转向灯到规定时间后自动熄灭的功能。
5汽车尾灯控制器的整体电路仿真
5.1汽车尾灯控制器的整体框图
汽车尾灯控制器的顶层文件如图5.1所示
图5.1顶层原理图
汽车尾灯控制器总原理图如图5.2所示
图5.2汽车尾灯控制器总原理图
5.2汽车尾灯控制器的仿真波形
汽车尾灯控制器的总仿真波形(不含时钟变频模块)如图5.3
图5.3(a)汽车尾灯控制器的总仿真波形(不含时钟变频模块)
图5.3(b)汽车尾灯控制器的总仿真波形(不含时钟变频模块)
因为在第4章4.2.1里对时钟变频信号的仿真可知,由于频率过高,软件无法对其进行显示,所以这里的总原理图的仿真是将时钟变频模块去掉的,通过观察波形得出,其他功能都是可以正常实现的。
对于带有时钟变频模块的原理图仿真,就直接下载到开发板中调试。
具体下载调试图详见第6章图6.1-图6.5。
6程序下载调试
6.1汽车不同状态时的下载调试图
6.1.1正常行驶状态
如图6.1正常行驶下载调试图。
车正常行驶时,车灯不亮。
图6.1正常行驶下载调试图
6.1.2汽车左、右转向时
开左转向,如图6.2,车左转时,左灯亮,定时器此时已到第6秒,数码管显示LEFt字样。
图6.2左转时下载调试图
图6.3右转时下载调试图
开右转向时,如图6.3,此图表示,车右转时,右灯亮,定时器此时已到第2秒,数码管显示rgHt字样。
6.1.3刹车状态
图6.4刹车时下载调试图
图6.4表示,车是刹车状态时,左右转向灯同时常亮,数码管显示brAE字样。
6.1.4故障状态
故障时车的下载调试图如图6.5所示。
图6.5(a)故障时车灯亮(瞬间)的下载调试图
图6.5(b)故障时车灯灭(瞬间)的下载调试图
以上两个图表示:
当开启故障开关的时候,汽车尾灯同时闪烁,并且数码管显示HELP字样。
7心得体会
本次课程设计不仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,分析问题和解决问题的能力。
……
参考文献
[1]朱正伟,王其红,韩学超.EDA技术及应用(第二版)[M].北京:
清华大学出版社,2013-03-01第270页至290页
[2]Gill,R.MasteringEnglishLiterature[M].London:
Macmillan,1985:
42-45.
[3]王海粟.浅议会计信息披露模式[J].财政研究,2004,21
(1):
56-58.
[4]夏鲁惠.高等学校毕业论文教学情况调研报告[J].高等理科教育,2004
(1):
46-52.
[5]Heider,E.R.&D.C.Oliver.Thestructureofcolorspaceinnamingandmemoryoftwolanguages[J].ForeignLanguageTeachingandResearch,1999,(3):
62–67.
[6]张筑生.微分半动力系统的不变集[D].北京:
北京大学数学系数学研究所,1983:
1-7.
……
附录
主控模块程序
libraryieee;
useieee.std_logic_1164.all;
entitykzis
port(left,right:
instd_logic;
lft,rit,lr:
outstd_logic);
endkz;
architecturekz_arcofkzis
begin
process(left,right)
variablea:
std_logic_vector(1downto0);
begin
a:
=left&right;
caseais
when"00"=>lft<='0';
rit<='0';
lr<='0';
when"10"=>lft<='1';
rit<='0';
lr<='0';
when"01"=>rit<='1';
lft<='0';
lr<='0';
whenothers=>rit<='1';
lft<='1';
lr<='1';
endcase;
endprocess;
endkz_arc;
左灯控制模块程序
libraryieee;
useieee.std_logic_1164.all;
entitylftais
port(en,clk,lr,left:
instd_logic;
l_out:
outstd_logic_vector(2downto0));
endlfta;
architecturelft_arcoflftais
begin
process(clk,en,left)
variabletmp:
std_logic_vector(2downto0);
begin
iflr='1'then
tmp:
="111";
elsifclk'eventandclk='1'then
ifen='1'then
iftmp="000"then
tmp:
="111";
else
tmp:
="000";
endif;
elsifleft='0'then
tmp:
="000";
else
iftmp="000"thentmp:
="001";
else
tmp:
=tmp(1downto0)&'0';
endif;
endif;
endif;
l_out<=tmp;
endprocess;
endlft_arc;
右灯控制模块程序
libraryieee;
useieee.std_logic_1164.all;
entityritais
port(en,clk,lr,right:
instd_logic;
r_out:
outstd_logic_vector(2downto0));
endrita;
architecturerit_arcofritais
begin
process(clk,en,right)
variabletmp:
std_logic_vector(2downto0);
begin
iflr='1'then
tmp:
="111";
elsifclk'eventandclk='1'then
ifen='1'then
iftmp="000"then
tmp:
="111";
elsetmp:
="000";
endif;
elsifright='0'then
tmp:
="000";
else
iftmp="000"then
tmp:
="100";
else
tmp:
='0'&tmp(2downto1);
endif;
endif;
endif;
r_out<=tmp;
endprocess;
endrit_arc;
定时器模块程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYcount9IS
PORT(clk:
INSTD_LOGIC;
en:
INSTD_LOGIC;
RST:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
C:
OUTSTD_LOGIC);
ENDcount9;
ARCHITECTUREARTOFcount9IS
SIGNALCNT:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(clk,en,RST)
BEGIN
IFRST='1'THENCNT<="0000";
ELSIFclk'EVENTANDclk='1'THEN
IFen='1'THEN
IFCNT<9THENCNT<=CNT+1;
C<='0';
ELSECNT<="1001";
C<='1';
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
Q<=CNT;
ENDART;
数码管显示字母的模块程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYxsIS
PORT(l:
INSTD_LOGIC_VECTOR(2DOWNTO0);
seg_l:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);
seg_e:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);
seg_f:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);
seg_t:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDxs;
ARCHITECTUREfourOFxsIS
BEGIN
PROCESS(l)
BEGIN
CASElIS
WHEN"000"=>seg_l<="";
WHEN"100"=>seg_l<="";
WHEN"010"=>seg_l<="";
WHEN"110"=>seg_l<="";
WHEN"001"=>seg_l<="";
WHENOTHERS=>seg_l<="";
ENDCASE;
CASElIS
WHEN"000"=>seg_e<="";
WHEN"100"=>seg_e<="";
WHEN"010"=>seg_e<="";
WHEN"110"=>seg_e<="";
WHEN"001"=>seg_e<="";
WHENOTHERS=>seg_e<="";
ENDCASE;
CASElIS
WHEN"000"=>seg_f<="";
WHEN"100"=>seg_f<="";
WHEN"010"=>seg_f<="";
WHEN"110"=>seg_f<="";
WHEN"001"=>seg_f<="";
WHENOTHERS=>seg_f<="";
ENDCASE;
CASElIS
WHEN"000"=>seg_t<="";
WHEN"100"=>seg_t<="";
WHEN"010"=>seg_t<="";
WHEN"110"=>seg_t<="";
WHEN"001"=>seg_t<="";
WHENOTHERS=>seg_t<="";
ENDCASE;
ENDPROCESS;
ENDfour;
时钟变频模块程序
moduleFrequenceDivide(CP,CR,Q);
inputCP,CR;
outputQ;
reg[31:
0]CT;
regQ;
always@(posedgeCPornegedgeCR)
begin
if(~CR)CT<=32'd0;
elseif(CT>=32'd)
begin
CT<=32'd0;
Q=~Q;
end
elseCT<=CT+1'd1;
end
Endmodule
定时器的数码管显示模块程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYdsq1IS
PORT(Q:
INSTD_LOGIC_VECTOR(3DOWNTO0);
seg_X4:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDdsq1;
ARCHITECTUREoneOFdsq1IS
BEGIN
PROCESS(Q)
BEGIN
CASEQIS
WHEN"0000"=>seg_x4<="";
WHEN"0001"=>seg_x4<="";
WHEN"0010"=>seg_x4<="";
WHEN"0011"=>seg_x4<="";
WHEN"0100"=>seg_x4<="";
WHEN"0101"=>seg_x4<="";
WHEN"0110"=>seg_x4<="";
WHEN"0111"=>seg_x4<="";
WHEN"1000"=>seg_x4<="";
WHEN"1001"=>seg_x4<="";
WHENOTHERS=>seg_x4<="";
ENDCASE;
ENDPROCESS;
ENDone;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 电子技术 课程设计 报告 模板
![提示](https://static.bingdoc.com/images/bang_tan.gif)