1 设计方案
十字路口设计两组交通灯分别控制东西和南北两个方向的交通。如图1所示,当东西方向的红灯亮时,南北方向对应绿灯亮,过渡阶段黄灯亮,即东西方向红灯亮的时间等于南北方向绿灯和黄灯亮的时间之和。交通灯维持变亮的时间取决于键盘输入的控制键值。同理,当南北方向的红灯变亮时,东西方向的交通灯也遵循此逻辑。总体上由状态机实现控制,本设计中使用两个状态机分别控制东西和南北两个方向的交通。每个状态机中都设有4个状态,分别对应红灯亮、绿灯亮、黄灯亮和出现紧急状况时两个方向上的红灯同时变亮,停止倒计时的同时数码管上出现闪烁。路口的繁忙程度是不一样的,白天时的交通比较繁忙,因此,红绿灯要变化快一些以便提高通过效率,减少拥堵时间;相反,夜晚交通稀疏,就需要红绿灯变化慢一些。因此,加入键盘控制程序来控制交通维持变亮状态的持续时间。
2 总体设计结构框图
总体设计结构框图如图2所示,共有11个功能模块,包括控制东西方向交通灯的状态机和控制南北方向交通灯的状态机、计数器模块、键盘扫描模块、数字合成模块、三个分位模块、数码管显示模块、动态显示扫描模块。
用VHDL语言对各个模块进行编程,最后形成顶层文件,在MAX+PLUSⅡ环境下进行编译与仿真,检查所编程序是否运行正确。如果出现错误,需要进行修改,直到完全通过为止。需要说明的是,在进行程序编译时,要先从底层程序开始,所有底层程序都正确后,才能开始顶层程序的编译。这是因为顶层程序是对底层程序的概括,它是把底层程序各个模块连接起来,相当于把每个模块的功能汇聚到一起,实现整个系统的控制功能,所以底层程序的正确与否关系到顶层程序的运行结果。VHDL语言编程生成的结构框图如图3所示。
3 VHDL程序设计
3.1 状态机1(东西方向)程序关键代码
用两个状态机分别控制东西方向和南北方向上的交通。从键盘获得红、绿、黄灯的总时间,红灯时间占1/2,绿灯时间占3/8,黄灯时间占1/8。红灯状态为S0,绿灯状态为S1,黄灯状态为S2,紧急状态为S3。当计数器时间为0时,由红灯状态跳转到绿灯状态,当计数器时间到达3/8时,由绿灯状态跳转到黄灯状态。当到达一半时间时,由黄灯状态跳转到红灯状态。当hold为1时,由任意状态跳转到紧急状态。
3.2 计数器源程序代码
4 仿真结果
东西方向和南北方向状态机仿真结果如图4、5所示,从图4可以看出,getin是从键盘获得的键值,这里输入的是40 s,初始状态为S0状态.红灯亮。从S0状态跳转到S1状态即由红灯状态跳转到绿灯状态时,数码管显示的倒计时从15 s开始;当由S1状态跳转到S2状态即由绿灯状态跳转到黄灯状态时,GREENA由高电平变为低电平,YELLOWA由低电平变为高电平。倒计时时间从5s开始。南北方向仿真图与东西方向类似,这里不再赘述。
计数器从键盘上得到的键值为40 s,从仿真图(图6所示)上可以看出,计数器能正常计数。
从仿真结果可以看出,计数器能够正常计数,状态机状态能够正确状态变换。东西方向初始状态为绿灯,从15开始倒计时,南北方向初始状态为红灯,从20开始倒计时。
该系统硬件电路包含了1个CPLD,6个7段LED数码显示器,分别表示各个方向上的红、黄、绿灯,以及相应的限流电阻。与其他控制方法相比,所用器件可以说是比较简单经济的。经过实验,实现了预定的交通灯系统的控制功能。数码显示器采用动态扫描方式,大大节约了资源。
5 结束语
该交通灯控制逻辑可以实现3种颜色灯的交替点亮以及时间的倒计时,指挥车辆和行人安全通行。本文介绍的是一种最基本和简单的交通灯设计情况,并且提供了一些模块的源程序代码。在此基础上能够举一反三,从而用VHDL语言实现其它交通灯的控制设计。
随着EDA技术的发展,在今后的电子产品研究开发中,EDA技术具有更好的开发手段和性价比,拥有广泛的市场应用前景。
关键字:程序 计数 模块 数码
编辑: 引用地址:基于VHDL状态机设计的智能交通控制灯
推荐阅读最新更新时间:2023-10-18 14:38
用C语言编写的交通灯程序
用四盏双色灯模拟,P1口控制;南北红灯亮30秒,同时东西绿灯亮25秒,绿灯闪烁3次(间隔为1秒),然后黄灯亮2秒;然后东西与南北互换一下;重复;
#include reg51.h //
#define uint unsigned int
#define uchar unsigned char #define ON 0 //0的时候灯亮
#define OFF 1 //1的时候灯亮 //管脚定义
//南北道 黄灯亮3秒 红灯亮 30秒 黄灯3秒 绿灯38秒
//东西道 黄灯亮3秒 绿灯亮 28秒 黄灯3秒 红灯40秒
sbit PortDX_Yellow = P1^0; //东西方向黄灯
sbit PortDX
[单片机]
一种数码相机成像和视频处理前端的设计
摘要:针对数码相机的成像和视频处理前端,给出一种基于TI DSP技术的设计方案。详细介绍单芯片数字视频解码器TVP5040和单芯片影像处理器TMS320DSC系列DSP的图像功能单元CCD控制器的功能和特点,并给出二者的硬件连接和软件实现方法。
关键词:数码相机 TVP5040 TMS320DSC 系列DSP CCD
目前,数字类消费电子产品的需求率增长惊人。在这些产品中,成像和视频类产品比重很大。在这些影像产品中,无论是数码相机还是内置数码相机的可拍照手机,或者其它数字成像和视频终端产品,都需要成像和视频处理前端与其协同工作。
德州仪器公司(TI)在推动新兴消费类产品的高级图像应用方面及时跟进,发布了目前业界性能最为卓越的
[手机便携]
基于ESP32构建的音频播放器
DIY 音乐播放器很有趣,我们之前使用 Arduino和 专用 MP3 模块构建了一些音乐播放器。现在我们正在使用 ESP32 构建一个有趣的音频播放器,您只需在 ESP32 上连接一个额外的扬声器即可在其中播放音效。在这里,我们将使用LM386 和一个带有 ESP32 的扬声器来播放音乐文件。音频输出可能不大,但此应用程序显示了 ESP32 板播放音频文件的能力。 所需组件 ESP32 LM386 放大器模块 8欧姆扬声器 跳线 电路原理图 ESP32音乐播放器的电路图如下- 要在 ESP32 上播放声音,我们需要一个扬声器。扬声器通过 LM386音频放大器模块连接。Amplifier
[嵌入式]
led数码管的结构及检测方法
led数码管的结构及检测方法
LED数码管是由发光二极管构成的,亦称半导体数码管. 将条状发光二极管按照共阴极(负极)或共阳极(正极)的方法连接,组成"8"字,再把发光二极管另一电极作笔段电极,就构成了LED数码管.若按规定使某些笔段上的发光二极管就能显示从0~9的…系列数字。同荧光数码管、辉光数码管(NRT)相比它具有:体积小、功耗低、耐震动、寿命长、亮度高、单色性好、发光响应的时间短,能与TTL,CMOS电路兼容等的数显器件。
常见LED数码管的外形及内部结构如图1所示。图1(b)属于共阳极结构,图1(c)采用共阴极结构。+、一分别表示公共阳极和公共阴极。a~g是7个笔段电极,DP为小数点。另有一种字高为7.
[模拟电子]
Nordic LTE-M/NB-IoT和BLE集成模块助力Avnet Asia实现IoT产品快速开发
Nordic Semiconductor宣布全球领先的技术解决方案提供商安富利亚洲(Avnet Asia)已选择Nordic集成有LTE-M/NB-IoT调制解调器和GPS的nRF9160低功耗系统级封装(SiP),以及nRF52840蓝牙5.2/低功耗蓝牙(Bluetooth LE)先进多协议片上系统(SoC),为其“AVT9152”模块提供蜂窝IoT和短距离无线连接。 26mm x 28mm大小的AVT9152模块据信是支持LTE-M/NB-IoT、低功耗蓝牙和GPS的最小模块,可以集成到一系列嵌入式应用中,包括Covid-19接触者追踪、物流和资产跟踪、自动售货机、自助服务终端、医疗设备和智能楼宇自动化等应用。 No
[物联网]
安华高推出新高线性功率放大器模块产品
安华高推出新高线性功率放大器模块产品
Avago Technologies(安华高科技)今日宣布推出两款具有低功耗特性的新高线性功率放大器(PA, Power Amplifier)模块产品,可以改善2GHz频带范围WiMAX和WiFi应用的信号质量。这个功率放大器系列拥有高线性功率输出,可以带来良好的线性度和低失真、高附加功率效率(PAE, Power Added Efficiency)以及输入和输出预匹配,可以简化匹配和应用设计。Avago的MGA-43x28功率放大器模块采用微型化5x5x0.85mm封装,非常适合2,300到2,700MHz频带工作的各种高功率WiMAX、WLAN和LTE应用作为最后级功率放大
[模拟电子]
164驱动8位LED显示 CVAVR程序
//164驱动数码管显示
//芯片 ATMEGA16L
//时钟 4MHz 内部
//采用CVAVR编写,使用了系统自带延时函数
//PD0 PD1 模拟164时序
#include mega16.h
#include delay.h
#define hc164_da ta PORTD.0
#define hc164_clk PORTD.1
void led164_display (void); // 数码管显示
void hc164_send_byte (unsigned char byte);
unsigned char ledxs = {1,2,3,4,5,6,7,8}; /
[单片机]
80C51单片机里的程序是如何运行的
前言 我们想要理解单片机是如何运行程序的,我们首先需要了解单片机的组成,我们这里以80C51单片机为例来理解程序在单片机中是如何运行的。 单片机的组成 8051单片机的内部硬件结构包括: 中央处理器CPU:它是单片机内部的核心部件,决定了单片机的主要功能特性,由运算器和控制器两大部分组成。 存储器:8051单片机在系统结构上采用了哈佛型,将程序和数据分别存放在两个存储器内,一个称为程序存储器,另一个为数据存储器在物理结构上分程序存储器和数据存储器,有四个物理上相互独立的存储空间,即片内ROM和片外ROM,片内RAM和片外RAM。 定时器/计数器(T/C):8051单片机内有两个16位的定时器/计数器,每个T/C既可以设置成计数
[单片机]