数字系统设计实验报告
实验五 汽车尾灯控制系统设计
09 自动化
0937030 张丹
0937017 陈永财
0937026 张鹏程
实验地点: 理工楼703
实验时间:2011年05月10日
一、实验目的
1)了解汽车尾灯的工作原理
2)进一步熟悉 Verilog 语言以及 QuartusII 开发环境
3)掌握由硬件语言控制 LED 灯的亮灭
二、实验内容
1)汽车尾部左右两侧各有 3 只尾灯,用作汽车行驶状态的方向指示标志。
2) 当汽车正常向前行驶时,6 只尾灯全部熄灭。
3) 当汽车要向左或向右转弯时,相应侧的 3 只尾灯依次由左至右闪亮。每个
灯亮 1s,每个周期为 3s,另一侧的 3 只灯不亮。
4) 紧急刹车时,6 只尾灯全部闪亮,闪动频率为 1Hz。
三、实验学时:6 学时
四、实验步骤
1) 根据实验要求作预习报告。
2) 根据实验需求,进行程序的设计。
3) 根据以前设计的经验,反复调试程序。
4) 调试通过,下载到 FPGA 开发板上进行实践调试。
5) 完成整个过程,写实验报告。
五、实验要求:
实验报告应包含实验目的、实验原理,分析与设计思路,实验程序,对应变
量的管脚配置表,实验结果,实验总结。其中具体要求为:
1)程序实现模块化设计,写出设计思路,认真标注代码注释;
2)达到正确地运行结果;
3)实验中出现的问题进行详细总结。
六、实验结果:
1)实验程序:
module ab(clk,m,n,l,la,lb);
input clk;
input m,n,l;
output [0:2] la,lb;
reg [0:2] la,lb;
reg conj,disj;
integer coni,disi,a;
/*------------------分频模块------------------*/
//1Hz 的分频信号
always @(posedge clk)
begin
if (coni>1999999)
begin
conj<=~conj;
coni<=0;
end
else
coni<=coni+1;
end
//控制显示的分频信号
always @(posedge clk)
begin
if(disi>9999)
begin
disj<=~disj;
disi<=0;
end
else
disi<=disi+1;
end
/*----------------------计时模块-------------------------------*/
always@(posedge conj)
begin
if(a>=3)
a<=1;
else
a<=a+1;
end
/*-------------------------汽车尾灯显示控制------------------------------------*/
always@(posedge clk)
begin
if(l)
begin
if(a==1)
begin la<=3'b111;lb<=3'b111;end
else if(a==2)
begin la<=3'b000;lb<=3'b000;end
else
end
if(m)
begin
if(a==1)
begin la<=3'b001;lb<=3'b000;end
else if(a==2)
begin la<=3'b010;lb<=3'b000;end
else if(a==3)
begin la<=3'b100;lb<=3'b000;end
end
else if(n)
begin
if(a==1)
begin la<=3'b000;lb<=3'b100;end
else if(a==2)
begin la<=3'b000;lb<=3'b010;end
else if(a==3)
begin la<=3'b000;lb<=3'b001;end
end
end
endmodule
2)实验 pin 脚图:
3)实验成果:
①:刹车的情况
②:右转弯的情况
六、实验总结:
这次实验在上次交通灯控制实验的基础上有了改动,让我们更加熟悉了分频模块的应
用以及 verilog 程序的编写。