EDA 交通灯.docx
- 文档编号:10039681
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:10
- 大小:168.04KB
EDA 交通灯.docx
《EDA 交通灯.docx》由会员分享,可在线阅读,更多相关《EDA 交通灯.docx(10页珍藏版)》请在冰豆网上搜索。
EDA交通灯
EDA技术课程大作业
1、设计题目:
交通灯
院系:
电子信息与电气工程系
学生姓名:
路俊龙
学号:
200802070046
专业班级:
电气自动化一班
年月日
(交通灯)
摘要:
了解交通灯的亮灭规律。
2.了解交通灯控制器的工作原理。
3.熟悉VHDL语言编程,了解实际设计中的优化方案
目录
1.…………………封面
1.1…………………目录
1.2………………设计背景2
1.3………………设计方案.方案实施
1.4----1.8………方案实施
.1.9...........产考文献.结论.
.1.10............原理图(
1.设计背景
1.1通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又有很多不同的显示要求,比如十字路口,车子如果只要东西和南北方向通行就很简单,而如果车子可以左右转弯的通行就比较复杂,本实验仅针对最简单的南北和东西直行的情况。
要完成本实验,首先必须了解交通路灯的亮灭规律。
本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各三个。
依人们的交通常规,“红灯停,绿灯行,黄灯提醒”。
其交通灯的亮灭规律为:
初始态是两个路口的红灯全亮,之后东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。
闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。
闪烁若干次后,再切换到东西路口方向,重复上述过程。
在实验中使用8个七段码管中的任意两个数码管显示时间。
东西路和南北路的通车时间均设定为20s。
数码管的时间总是显示为19、18、17……2、1、0、19、18……。
在显示时间小于3秒的时候,通车方向的黄灯闪烁。
四实验内容本实验要完成任务就是设计一个简单的交通灯控制器,交通灯显示用实验箱的交通灯模块和七段码管中的任意两个来显示。
系统时钟选择时钟模块的1KHz时钟,黄灯闪烁时钟要求为2Hz,七段码管的时间显示为1Hz脉冲,即每1s中递减一次,在显示时间小于3秒的时候,通车方向的黄灯以2Hz的频率闪烁。
系统中用S1按键进行复位。
2.设计方案
2.11.首先打开QuartusII软件,新建一个工程,并新建一个VHDLFile。
2.按照自己的想法,编写VHDL程序。
3.对自己编写的VHDL程序进行编译并仿真。
4.仿真无误后,根据附录一的引脚对照表,对实验中用到时钟、七段码显示及交通灯模块的LED对应的FPGA引脚进行管脚绑定,然后再重新编译一次。
5.用下载电缆通过JTAG接口将对应的sof文件下载到FPGA中。
6.观察交通灯控制器的工作是否满足实验要求。
3.方案实施
3.1(宋体四号,加粗)
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entityexp18is
port(Clk:
instd_logic;--时钟输入
Rst:
instd_logic;--复位输入
R1,R2:
outstd_logic;--红灯输出
Y1,Y2:
outstd_logic;--黄灯输出
G1,G2:
outstd_logic;--绿灯输出
Display:
outstd_logic_vector(7downto0);--七段码管显示输出
SEG_SEL:
bufferstd_logic_vector(2downto0)--七段码管扫描驱动
);
endexp18;
architecturebehaveofexp18is
signalDisp_Temp:
integerrange0to15;
signalDisp_Decode:
std_logic_vector(7downto0);
signalSEC1,SEC10:
integerrange0to9;
signalDirection:
integerrange0to15;
signalClk_Count1:
std_logic_vector(9downto0);--产生0.5Hz时钟的分频计数器
signalClk1Hz:
std_logic;
signalDir_Flag:
std_logic;--方向标志begin
process(Clk)
begin
if(Clk'eventandClk='1')then
if(Clk_Count1<1000)then
Clk_Count1<=Clk_Count1+1;
else
Clk_Count1<="0000000001";
endif;
endif;
endprocess;
Clk1Hz<=Clk_Count1(9);
process(Clk1Hz,Rst)
begin
if(Rst='0')then
SEC1<=0;
SEC10<=2;
Dir_Flag<='0';
elsif(Clk1Hz'eventandClk1Hz='1')then
if(SEC1=0)then
SEC1<=9;
if(SEC10=0)then
SEC10<=1;
else
SEC10<=SEC10-1;
endif;
else
SEC1<=SEC1-1;
endif;
if(SEC1=0andSEC10=0)then
Dir_Flag<=notDir_Flag;
endif;
endif;
endprocess;
process(Clk1Hz,Rst)
begin
if(Rst='0')then
R1<='1';
G1<='0';
R2<='1';
G2<='0';
else--正常运行
if(SEC10>0orSEC1>3)then
if(Dir_Flag='0')then--横向通行
R1<='0';
G1<='1';
R2<='1';
G2<='0';
else
R1<='1';
G1<='0';
R2<='0';
G2<='1';
endif;
else
if(Dir_Flag='0')then--横向通行
R1<='0';
G1<='0';
R2<='1';
G2<='0';
else
R1<='1';
G1<='0';
R2<='0';
G2<='0';
endif;
endif;
endif;
endprocess;
process(Clk1Hz)
begin
if(SEC10>0orSEC1>3)then
Y1<='0';
Y2<='0';
elsif(Dir_Flag='0')then
Y1<=Clk1Hz;
Y2<='0';
else
Y1<='0';
Y2<=Clk1Hz;
endif;
endprocess;
process(Dir_Flag)
begin
if(Dir_Flag='0')then--横向
Direction<=10;
else--纵向
Direction<=11;
endif;
endprocess;
process(SEG_SEL)
begin
case(SEG_SEL+1)is
when"000"=>Disp_Temp<=Direction;
when"001"=>Disp_Temp<=Direction;
when"010"=>Disp_Temp<=SEC10;
when"011"=>Disp_Temp<=SEC1;
when"100"=>Disp_Temp<=Direction;
when"101"=>Disp_Temp<=Direction;
when"110"=>Disp_Temp<=SEC10;
when"111"=>Disp_Temp<=SEC1;
endcase;
endprocess;
process(Clk)
begin
if(Clk'eventandClk='1')then--扫描累加
SEG_SEL<=SEG_SEL+1;
Display<=Disp_Decode;
endif;
endprocess;
process(Disp_Temp)--显示转换
begin
caseDisp_Tempis
when0=>Disp_Decode<="00111111";--'0'
when1=>Disp_Decode<="00000110";--'1'
when2=>Disp_Decode<="01011011";--'2'
when3=>Disp_Decode<="01001111";--'3'
when4=>Disp_Decode<="01100110";--'4'
when5=>Disp_Decode<="01101101";--'5'
when6=>Disp_Decode<="01111101";--'6'
when7=>Disp_Decode<="00000111";--'7'
when8=>Disp_Decode<="01111111";--'8'
when9=>Disp_Decode<="01101111";--'9'
when10=>Disp_Decode<="01001000";--'='
when11=>Disp_Decode<="00010100";--'||'灭
endcase;
endprocess;
endbehave;
实验仿真图如图所示
4.结果与结论
whenothers=>Disp_Decode<="00000000";
1.主干道上绿灯亮的时间为8秒,数码管显示起始时间7秒,然后依次递减至0,绿灯闪烁3秒,黄灯亮的时间为2秒(这段时间数码管不显示)。
支干道红灯亮的时间为13秒,数码管显示起始时间为12秒,然后依次递减至0。
2.支干道上绿灯亮的时间为6秒,数码管显示起始时间5秒,然后依次递减至0,绿灯闪烁3秒,黄灯亮的时间为2秒(这段时间数码管不显示),主干道红灯亮的时间为11秒,数码管显示起始时间为10秒,然后依次递减至0。
结果按照实验预期的结果进行。
5.收获与致谢
通过这次的实验,我明白了很多道理,明白了集体力量的伟大,有些事并不是单凭自己的力量就能完成的,做实验时我借阅了大量的文献,还得到了寝室人的大力帮助,通过这次实验提高了自己的动手能力和面对困难的勇气。
6.参考文献
(宋体五号,1.5倍行距,参考以下格式)
[1]权明富,齐佳音,舒华英.客户价值评价指标体系设计[J].南开管理评论,2004,7(3):
17-18.
[2]刘小洪,邹鹏.商业银行客户关系价值管理模型研究[J].管理科学,2005,18(3):
57-60
7.附件
原理图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 交通灯