基于VHDL的智能交通灯控制器

2018-12-22 23:47

1 设计任务及要求

交通灯在指挥道路交叉部分的车辆,行人安全,有序,高效地通行,缓解城市交通拥堵状况起着重要作用,交通灯的出现大大降低了交汇路段的交通事故率,极大地提高了通行效率,是现代交通控制系统不可缺少的一部分。

本次将设计基于VHDL语言的交通灯控制系统,实现如下功能:

1. 本设计用总共8个LED灯分别指示南北和东西方向的红黄绿以及左转信号灯。并规定在非紧急情况下各个方向车辆在不影响其他直行车道车辆正常行驶是情况下均能右转向,因此本设计未包含右转向信号。

2. 本设计具有状态实时显示功能,即各个状态的剩余时间将在对应的数码管上显示。

3. 复位功能:在紧急情况键未按下时复位键可以使系统从任意状态回到第一种状态。

4. 紧急状态限行功能:在紧急情况时可以按下紧急情况按钮,可使系统在任意情况,转向限制所有方向车辆通行,同时数码管显示“00”,发出警告音 5. 系统的六个状态为:

(1) 东西方向绿灯,南北方向红灯,持续30s; (2) 东西方向黄灯,南北方向红灯,持续5s; (3) 东西方向绿灯,南北方向左转,持续10; (4) 东西方向红灯,南北方向绿灯,持续30s; (5) 东西方向红灯,南北方向黄灯,持续5s; (6) 东西方向左转,南北方向绿灯,持续10s;

6.要求在无人工干预条件下各个状态能自动转换,系统正常运行。

2设计原理及总体框图

本交通灯设计总共用8个数码管分别指示东西和南北方向的红灯,黄灯,绿灯以及左转指示灯。共有六种状态,如下表所示: 状态 1 2 3 4 5 6 南北方向 东西方向 LED指示 LED状态 绿灯 黄灯 绿灯 红灯 红灯 左转 计数器初值 30 5 10 35 5 10 LED状态 红灯 红灯 左转 绿灯 黄灯 绿灯 计数器初值 35 5 10 30 5 10 LED代码 00101000 01001000 00100001 10000010 10000100 00010010 设计的总体框图为:

时钟输入 交通灯控制 核心模块 东西方向 数码管 时间显示 南北方向 数码管 时间显示 LED显示

交通灯控制模块在时钟的控制下,实现各个状态的自动转换,并且负责输出LED的控制信号和,数码管倒计时的BCD码输入信号。

3 程序设计

包括VHDL的简单介绍和编写的相应程序,同时也可以简要说明程序设计的要点

VHDL(Very High Speed Integrated Circuit Hardware Description Language)是超高速集成电路硬件描述语言。VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。

VHDL主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。

VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。其具有功能强大、设计灵活、支持广泛、易于修改等诸多优点,因此得到广泛应用,成为现今主流的硬件描述语言。

本程序,只用一个进程即可完成复杂的交通灯设计任务,简洁精练,执行效率高,同时又具有稳定可靠的特点。

本程序将8个LED灯,进行八位数字编码,高电平LED灯亮表示输出有效,各个状态剩余时间的显示,采用8位BCD码表示,进行减“1”运算时需要按照十进制数来计算,因此需要进行BCD码调整。各个状态的转换标志是时间的现态以及LED的现态,据此进行状态的循环转换。同时还需考虑到紧急情况的发生可能需要两个方向的车辆同时禁行,以便于特殊车辆的快速无障碍通过,因此还需设计一个禁行按钮,便于紧急情况下对交通的临时管制,还需确保禁行按钮失效时交通能迅速恢复正常通行。因此本程序设计了一个“stop”按钮,此按钮具有最高权限可以使交通灯在任何状态下,转换才两个方向同时禁行的状态,。

另外本程序还设计了一个“reset”按钮,具有仅次于“stop”按钮的管制权限,即在非紧急情况按钮按下时此按钮可使系统从其他状态回到第一种状态,因此本按钮可以用于系统的复位。

本程序的所有代码: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY jtd IS

PORT(stop,clk,reset:IN STD_LOGIC;

snten,snone,ewten,ewone:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);

led:BUFFER STD_LOGIC_vector(7 DOWNTO 0); bell:OUT STD_LOGIC); END jtd;

ARCHITECTURE cd OF jtd IS BEGIN

PROCESS(clk,stop)

VARIABLE sn,ew: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN

IF stop='1' THEN ——进行按钮用于紧急情况 led<=\——双向禁行

sn:=\——数码管时间显示为“00” bell<='1';

ELSIF clk'EVENT AND clk='1' THEN IF reset='1' THEN

sn:=\——复位按钮,系统恢复到第一种状态 ew:=\ led<=\ bell<='0';

ELSIF sn(3 DOWNTO 0)>\0)>\——非法状态是可以迅速转到第一种状态

sn:=\ ew:=\ led<=\ bell<='0';

ELSIF sn=\ sn:=\ sn:=\ led<=\ bell<='0';

ELSIF sn=\AND ew=\AND led=\THEN

sn:=\ ew:=\ led<=\ bell<='0';

ELSIF sn=\ sn:=\ ew:=\ led<=\ bell<='0';

ELSIF sn=\ ew:=\ sn:=\ led<=\ bell<='0';

ELSIF sn=\ ew:=\


基于VHDL的智能交通灯控制器.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:快速接头金属软管

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: