可编程逻辑器件与vhdl课程设计。
基于vhdl的交通灯设计。
班级 : 08级通信(1)班
姓名。学号。
指导教师姓名: 杨泽霖。
摘要:伴随着社会的发展以及人类生活水平的提高,汽车的数量在不断增加,交通事业得以蓬勃发展,而随之引起的安全问题已经不容忽视。eda技术的发展和应用领域也在不断的扩大与深入,机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域的重要性日益突出。
为了确保十字路口的行人和车辆顺利,畅通的通过,往往采用电子控制的交通信号来进行指挥。利用eda技术设计交通灯来完成这个需求就显的更加迫切,同样也是非常的实用和合理。
关键字:vhdl语言、交通灯、quartusⅱ软件、
正文:一、系统分析与总体方案。
1系统分析。
通过分析可以知道,所要设计的十字路**通灯控制电路要能够使南北方向有左转、直行各三个灯(红、黄、绿),东西方向有左转、直行各三个灯(红、黄、绿),三个灯能够按顺序依次亮灭。而且要求绿灯亮转黄灯亮然后其他时间为红灯,红灯亮可以直接转绿灯(三种灯的循环顺序如图2.1所示)。
还要求三种灯的点亮时间能够以倒计时的形式显示出来。可以用vhdl语言合理设计系统功能,使红黄绿灯的转换有一个准确的时间间隔和转换顺序。
图2.1三种灯的循环顺序。
2 设计思路。
1 时间脉冲可以直接赋予得到。
2 10s、5s、40s、30s定时信号用倒计时,计时起始信号由控制流程电路给出,每当计满所需时间,即向控制电路输出“时间到”的信号,并使计数器清零,由控制电路启、闭三色信号灯。
3 主控电路是核心,这是一个时序电路,其输入信号为东西、南北方向:
10s、5s、40s、30s定时信号,其输出状态控制相应的三色灯。
4 三种灯转换状态表:
3 设计方案。
根据设计要求和系统所具有功能,并参考相关的文献资料经行方案设计画出如下所示的十字路**通灯控制器系统框图,及为设计的总体方案,框图如下图2.2所示:
图2.2 系统的框图。
电路设计。1控制器电路设计。
流程控制器的作用是根据计数器的计数值控制各方向上发光二极管的亮、灭,当计时时间到达,状态控制器就响应,自动跳转到下一个状态。此外,当检测到特殊情况(urgen =‘1’)发生时,无条件点亮红灯的二极管(急救灯按下urgen ='1',则东西南北都亮红灯,在这种状态下原来的状态必须保持,即东西南北方向定时时间保持不变。急救灯未按下或者按下后恢复,则继续计时(计时通过计数器count),同时恢复东西南北原来灯的状态)。
具体实物模块如图3.1所示:
图3.1控制器模块。
程序实现如下:
library ieee;
use use
entity ledcontrol is
port(reset,clk,urgenin std_logic;
stateout std_logic_vector(2 downto 0);
sub,set1,set2,set3,set4out std_logic);
end ledcontrol;
architecture a of ledcontrol is
signal count : std_logic_vector(6 downto 0);
signal subtemp: std_logic;
beginsub<=subtemp and (not clk) ;将电平型信号变为脉冲型,即高电平时输出一个脉冲。
statelabel
process (reset,clk)
beginif reset='1' then系统复位。
count<="0000000";
state<="000";
set2<='1';set4<='1';
elsif clk'event and clk='1' then
if urgen='0' then count<=count+1;subtemp<='1';else subtemp<='0';end if;--经过脉冲电平变换后,使得正常状态时,正常减计数,紧急状态下停止计数。
if count=0
then state<="000";set1<='1';set2<='1';set3<='1';set4<='1
elsif count=10 then state<="001";set1<='1';
elsif count=15 then state<="010";set1<='1';set2<='1';
elsif count=55 then state<="011";set2<='1';
elsif count=60 then state<="100";set2<='1';set3<='1';
elsif count=70 then state<="101";set3<='1';
elsif count=75 then state<="110";set3<='1';set4<='1';
elsif count=105 then state<="111";set4<='1';
elsif count=110 then count<="0000000"; else set1<='0'; set2<='0';set3<='0';set4<='0';end if
end if; -控制流程。
end process statelabel;
end a;
2输出显示电路设计。
根据状态控制器所控制的状态和计数器的计时时间,选择当前状态下的显示器,使显示器输出当前状态下的数码管亮、灭指令,其中数码管的显示采用动态扫描显示。具体实物模块如图:
图3.2译码显示电路模块。
程序实现如下:
library ieee;
use use
entity ledshow is
port(clk,urgenin std_logic;
statein std_logic_vector(2 downto 0);
sub,set1,set2,set3,set4in std_logic;
eg1,ey1,er1,edg2,edy2,edr2,ng1,ny1,nr1,ndg2,ndy2,ndr2 : out std_logic;
led1,led2out std_logic_vector(7 downto 0));
end ledshow;
architecture a of ledshow is
signal count1,count2,count3,count4 : std_logic_vector(7 downto 0);
signal setstate1,setstate2,setstate3,setstate4 : std_logic_vector(7 downto 0);
signal etg1,ety1,etr1,edirr1,edirg1,ediry1,norg2,nory2,norr2,nordirg2,nordiry2,nordirr2 : std_logic;
beginled1<="00000000" when urgen='1' and clk='0' else --显示东西向行和停。
count1 when state="000" else
count1 when state="001" else
count2 when state="010" else
count2 when state="011" else
count2;
led2<="00000000" when urgen='1' and clk='0' else
count3 when state="000" else
count3 when state="001" else
count3 when state="010" else
count3 when state="011" else
count3 when state="100" else
count3 when state="101" else
count4 when state="110" else
count4;
etg1<='1' when state="000" and urgen='0' else '0';
ety1<='1' when state="001" and urgen='0' else '0';
etr1<='1' when state="010" or urgen='1' or state="011" or state="100" or state="101" or state="110" or state="111" else '0';
edirg1<='1' when state="010" and urgen='0' else '0';
ediry1<='1' when state="011" and urgen='0' else '0';
edirr1<='1' when state="000" or urgen='1' or state="001" or state="100" or state="101" or state="110" or state="111" else '0';
norg2<='1' when state="100" and urgen='0' else '0';
nory2<='1' when state="101" and urgen='0' else '0';
EDA课程设计 交通灯
交通信号灯控制电路设计。1 概述。城市道路交叉口是城市道路网络的基本节点,也是网络交通流的瓶颈。目前,大部分无控制交叉口都存在高峰小时车流混乱 车速缓慢 延误情况严重 事故多发 通行能力和服务水平低下等问题。特别是随着城市车流量的快速增长,城市无控制道路交叉口的交通压力越来越大。因此,做好基于eda...
EDA交通灯课程设计
学院 电气与信息工程学院。1.东西各设有一个绿 黄 红指示灯 一个2位7段数码管。1 南北和东西方向各有一组绿,黄,红灯,各自的持续时间分别为20s,5s,25s 2 当有特殊情况时,两个方向均为红灯,计时暂停,当特殊情况结束后,控制器恢复原来状态,继续正常工作。3 用两组数码管,以倒计时方式显示两...
交通灯EDA课程设计
eda交通灯设计。学院 信息工程学院。班级 学号 姓名 目录。第一章设计原理 1 第二章设计流程 2 第三章程序设计说明 3 3.1 程序设计流程图 3 3.2 分频模块 3 3.3 特殊功能及清零模块 4 3.4 交通灯运行模块 4 3.5 扫描显示模块 6 第四章 及调试 8 4.1调试步骤 8...