EDA基于VHDL语言的交通灯设计报告
更新时间:2023-09-19 07:07:02 阅读量: 小学教育 文档下载
- vhdl语言设计交通灯推荐度:
- 相关推荐
基于VHDL的交通灯设计
摘要
随着社会上特别是城市中机动车辆保有量的不断增加,在现代城市的日常运行控制中,车辆的交通控制越来越重要,在十字交叉路口,越来越多的使用红绿灯进行交通指挥和管理。本文以VHDL硬件描述语言为设计手段,完成了交通信号灯控制电路的设计,其中交通信号灯控制电路的开发目的是设计一个适用于主、支干道十字交叉路口的红黄绿交通灯的控制系统,通过合理设计系统功能,使红黄绿灯的转换有一个准确的时间间隔和转换顺序。所设计的交通信号灯控制电路经过在QuartusⅡ 6.0软件下进行模拟仿真,观察其波形,证明所设计的交通信号灯控制电路完全可以实现预定的功能,并有一定的实用性。
关键词:FPGA; VHDL; QuartusⅡ; 交通灯
一、 设计思路
本设计主要是利用状态机控制,交通灯的工作分成5个状态,如下:
St0:支干道亮红灯,主干道亮绿灯,数码管不显示。
St1:主干道亮绿灯45秒,数码管显示45秒倒计时;支干道亮红灯,数码管
显示从49秒倒计时到05秒。
St2::主干道亮黄灯5秒,数码管显示5秒倒计时;支干道亮红灯,数码管显
示从04秒倒计时到00秒。
St3:支干道亮绿灯25秒,数码管显示25秒倒计时;主干道亮红灯,数码管
显示从29秒倒计时到05秒。
St4:支干道亮黄灯5秒,数码管显示5秒倒计时;主干道亮红灯,数码管显
示从04秒倒计时到00秒。
把交通灯的工作分成五个状态,则写程序的时候思路就比较清晰,只要在相应的状态里完成相应的工作,控制好黄绿红灯和数码管的倒计时显示,而且把握好五个状态转换的条件即可。实现起来也方便。
二、设计分析
根据设计思路可以把整体设计分为三个模块: 1、
分频模块:把实验板上的50MHz的频率分成1Hz信号(用于倒计时计数的时钟信号)、1kHz信号(用于数码管扫描显示的片选时钟信号)和2hz(用于黄灯的闪烁);
2、 3、
交通灯控制以及倒计时(五个状态的控制)模块; 数码管译码扫描显示模块。 整体的系统框图如下: 段码输出 位码输出 1khz信号 50Mhz信号 分频 2hz信号 数码显 1hz信号 示模块 七段译码 数码管位选 交通灯控制以 及倒计时模块 六个led灯输出
分频模块,就是把输入的50MHz时钟频率50000分频得到1KHz的频
率用于数码管的位选信号,其原理就是设计一个0到50000循环计数的的计数器,当计数溢出,即计数到50000时使输出量取反,就得到了1KHz的方波,作为数码管位选信号。同理,1Khz再经分频即可得到2hz(黄灯闪烁信号)和1hz(倒计时计数信号)。
交通灯控制及倒计时模块,就是五个状态的转换模块,是整个系统
的最主要模块,其五个状态分别st0、st1、st2、st3、st4。其中st0是当支干道没有车通行的状态,st1是主干道绿灯亮45秒的状态,st2是主干道黄灯闪烁5秒的状态,st3是支干道亮绿灯25秒的状态,st4是支干道黄灯闪烁5秒的状态。当主干道亮绿灯和黄灯闪烁时,支干道都是亮红灯,当支干道亮绿灯和黄灯闪烁时,主干道都是亮红灯,并且主、支干道都会显示亮灯的倒计时时间,主、支干道的红黄绿灯用实验板上的的最左边三个和最右边三个LED发光二极管代替。
数码管倒计时显示,是用实验板上的其中四个数码管,分别表示主干
道和支干道的秒倒计时,动态扫描的频率用的是1KHz的频率。
三、 各模块电路符号如下:
1、顶层电路图如下:
图2-3顶层文件原理图
三、单元模块设计与仿真
3.1时钟分频模块
时钟分频模块就是把输入的2kHz时钟频率2000分频得到1Hz的频率用于数码管倒计时的时钟信号,其原理就是设计一个0到999循环计数的的计数器,当计数溢出,即计数到999时使输出量取反,则输出为0.5秒的高电平和0.5秒的低电平交替出现,就得到了1Hz的方波,作为秒倒计时的时钟信号。
时钟分频模块生成的元件符号如下:
2、分频模块
complete_2hz<=0; flag_2hz<='0'; else
flag_2hz<='1'; end if; end if;
end process;
process(flag_1khz) --此进程是得到1hz信号 begin
if(flag_1khz 'event and flag_1khz='1') then complete_1hz<=complete_1hz+1; if(complete_1hz=1000)then complete_1hz<=0; flag_1hz<='0'; else
flag_1hz<='1'; end if; end if;
end process;
end architecture one;
2、交通灯控制及倒计时模块
--交通灯控制及计时模块 library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity state5 is
port(clk1hz,clk2hz:in std_logic;--1hz倒计时时钟信号
one1,ten1,one2,ten2:out integer range 0 to 10;--倒计时数 ra,ga,ya,rb,gb,yb:out std_logic);--主支干道红黄绿灯 end;
architecture two of state5 is
type states is (st0,st1,st2,st3,st4);--定义五个状态
signal r1,g1,y1,r2,g2,y2:std_logic;
signal a,y11,y22:std_logic;------------------------------------------------- begin
--------------------
---------------------
process(clk1hz)-------5 states
variable st:states;
variable eoc:std_logic;--倒计时结束标志位 variable h1,l1,h2,l2:integer range 0 to 10;
begin--------------------------------------------------------------
if clk1hz'event and clk1hz='1' then case st is when st0=>
st:=st1;
h1:=4;l1:=4;
h2:=4;l2:=9;
when st1=>-----主干道绿灯亮45秒
if eoc='0' then
h1:=4;l1:=4; h2:=4;l2:=9; eoc:='1';
g1<='1';r1<='0';y1<='0';g2<='0';r2<='1';y2<='0'; else
if h1=0 and l1=1 then
st:=st2;eoc:='0';h1:=0;l1:=0;h2:=0;l2:=5; elsif l1=0 then
l1:=9;h1:=h1-1;l2:=l2-1; elsif l2=0 then
l2:=9;h2:=h2-1;l1:=l1-1; else l1:=l1-1;l2:=l2-1;
end if;
end if;
when st2=>-----主干道黄灯亮5秒
if eoc='0' then
h1:=0;l1:=4; h2:=0;l2:=4;
eoc:='1';---------------------------------------------- g1<='0';r1<='0';y1<='1';g2<='0';r2<='1';y2<='0';-------------------------------
else
if l1=1 then
st:=st3;eoc:='0';h1:=0;l1:=0;h2:=0;l2:=0; else l1:=l1-1;l2:=l2-1; end if;
end if;
when st3=>-----支干道绿灯亮25秒
if eoc='0' then
h1:=2;l1:=9; h2:=2;l2:=4; eoc:='1';
g1<='0';r1<='1';y1<='0';g2<='1';r2<='0';y2<='0'; else
if h2=0 and l2=1 then
st:=st4;eoc:='0';h2:=0;l2:=0;h1:=0;l1:=5; elsif l2=0 then
l2:=9;h2:=h2-1;l1:=l1-1; elsif l1=0 then
l1:=9;h1:=h1-1;l2:=l2-1; else l2:=l2-1;l1:=l1-1; end if; end if;
when st4=>------支干道黄灯亮5秒
if eoc='0' then
h1:=0;l1:=4; h2:=0;l2:=4; eoc:='1';
g1<='0';r1<='1';y1<='0';g2<='0';r2<='0';y2<='1'; else
if l2=1 then
st:=st1;eoc:='0';h1:=0;l1:=0;h2:=0;l2:=0; else l1:=l1-1;l2:=l2-1; end if;
end if; end case; end if;
ra<=r1;ga<=g1;ya<=y11;rb<=r2;gb<=g2;yb<=y22;-------------------- one1<=l1;ten1<=h1;one2<=l2;ten2<=h2; end process;
process(clk2hz) begin
if clk2hz'event and clk2hz='1' then a<= not a;
if(y1='1')then y11<=a;else y11<='0';end if; if(y2='1')then y22<=a;else y22<='0';end if; end if;
end process; end;
3、数码管译码显示及位选模块
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity display is
port(clk_1khz:in std_logic;--扫描时钟信号
one1,ten1,one2,ten2:in integer range 0 to 10;
scan:out std_logic_vector(3 downto 0);--片选输出信号 seg_7:out std_logic_vector(7 downto 0));--七段译码输出 end entity display;
architecture three of display is
signal data:integer range 0 to 10;
signal seg77:std_logic_vector(7 downto 0); signal cnt:std_logic_vector(1 downto 0); begin
process(data)-------七段译码 begin
case data is
when 0=>seg77<=\when 1=>seg77<=\when 2=>seg77<=\when 3=>seg77<=\when 4=>seg77<=\when 5=>seg77<=\when 6=>seg77<=\when 7=>seg77<=\when 8=>seg77<=\when 9=>seg77<=\when 10=>seg77<=\when others =>null; end case; end process; seg_7<=seg77;
process(clk_1khz,one1,ten1,one2,ten2)----------数码管动态扫描计数 begin
if clk_1khz'event and clk_1khz='1' then --00到11循环计数器 if cnt=\ else cnt<=cnt+1; end if; end if;
end process;
process(cnt,one1,ten1,one2,ten2)----数码管动态扫描显示 begin case cnt is
when \ when \ when \ when \ when others=>null; end case;
正在阅读:
EDA基于VHDL语言的交通灯设计报告09-19
卡耐基演讲训练教程06-03
小学英语外研版(三起)《四年级下》《Module 2 London》精品专题课后练习含答案考01-05
微免大题 打印01-05
七年级家长会家长发言稿06-12
2015年3月15日《小学教育教学知识与能力》真题及答案06-10
第二章 试题及答案(2015)10-21
汽车营销策划教学大纲09-22
中国双面砂片市场发展研究及投资前景报告(目录) - 图文05-14
智慧树 艺术与审美 2016-6考试答案08-13
- 通信原理实验报告
- 2016年上半年安徽省临床医学检验技术中级技师职称试题
- 传智播客刘意老师JAVA全面学习笔记
- 星级酒店客房部保洁服务标准与工作流程操作规范 - PA新员
- 算法竞赛入门经典授课教案第1章 算法概述
- 《微信公众平台架起家校互通桥》结题报告
- 2018年宁夏银川市高考数学三模试卷(理)Word版含解析
- 大学生创业基础 - 尔雅
- 2016年6月英语六级真题写作范文3套
- 中国磁性材料纸行业专项调查与发展策略分析报告(2015-2020)
- 云南省2018届高三普通高中学业水平考试化学仿真试卷二Word版缺答案
- 窗函数法设计低通滤波器
- 第三章 绩效考评方法与绩效管理模式
- 高等数学教案
- 个人独资合伙企业习题及答案
- 小学语文沪教版三年级上册第六单元第30课《想别人没想到的》公开课优质课教案比赛讲课获奖教案
- 曳引钢丝绳及其他曳引系统校核计算 - 图文
- 淮阴工学院管理学期末试卷7 - 图文
- 受力分析方法(1)
- 2013-2014学年陕西省西安市西工大附小五年级(上)期末数学试卷及解析
- 交通灯
- 基于
- 语言
- 报告
- 设计
- VHDL
- EDA
- 贵州省黔西南州行政执法人员100套模拟考试及答案正式考试基本从里面抽题
- 大作业-基于matlab的PID控制算法仿真-深圳大学
- 浙教版七年级下科学--物理专题训练光的折射检测训练卷(一)
- 韩先楚:让林彪无地自容的一代名将
- ORACLE入职考试题及答案
- 客运专线高性能混凝土暂行 技术条件1
- 浅谈版式设计中网格系统的构建方法
- 外研版(三起)英语四上 Module6测试题及答案 试题
- 青浦区2008-2009学年二模语文试题(含答案)
- 中兴LTE试题
- 九年级语文中考复习模拟试卷(有答案)
- 徐伟-浅谈小学低年级语文学习习惯的培养
- 汽车制造业挥发性有机物排放量核算方法
- 互联网金融对传统金融的革新与未来趋向
- 常宁职专2012年上学期汽修专业技能考核方案
- 中国文化要略试题
- 掌握买房时如何与开发商谈判的技巧
- 国家开放大学C语言程序设计A第一次形考任务及答案
- N裕固族传统体育在学校的功能、价值与推广研究
- 2018版高考语文大一轮复习2现代文阅读