基于EDA的交通灯控制系统设计 联系客服

发布时间 : 星期六 文章基于EDA的交通灯控制系统设计更新完毕开始阅读41117c79250c844769eae009581b6bd97e19bc4e

图3.2 系统状态图

4 硬件电路的设计

4.1 顶层文件原理图

根据以上设计思路,可以得到如下的顶层文件原理图如4.1所示,具体实物

模块如图4.2所示。

精选范本

图4.1顶层文件原理图

图4.2顶层文件的实体图 图4.3时钟分频器模块

4.2 时钟分频器模块设计

分频器实现的是将高频时钟信号转换成低频时钟信号,用于触发控制器、计 数器和扫描显示电路。系统的动态扫描需要1HZ的脉冲,而系统时钟计时模块需要1HZ的脉冲。分频模块主要为系统提供所需的时钟计时脉冲。该模块将1kHZ的脉冲信号进行分频,产生1S的方波,作为系统时钟计时信号。具体实物模块如图4.3所示。

4.3 控制及计时模块设计

控制模块根据外部输入信号和计时模块产生的输出信号,产生系统的状态机,控制其他部分协调工作。计时模块用来设定主干道和支干道计时器的初值,并为扫描显示译码模块提供倒计时时间。

控制及计时模块采用状态机进行设计,可以定义出5种状态,分别为S0:主干道绿灯,支干道红灯且没有车辆行驶;S1:主干道绿灯,支干道红灯或支干道有车辆驶入;S2:主干道黄灯,支干道红灯;S3:主干道红灯,支干道绿灯;S4:主干道红灯,支干道黄灯。利用CASE语句定义状态的转换方式及时间的变换方式,达到主干道绿灯亮45秒,支干道绿灯亮25秒,黄灯亮5秒的设计要求。 具体实物模块如图4.4所示,其中: CAR为支干道车辆检测开关

在支干道有车的情况下,模块可以进行减计时

精选范本

CLK1S为1S的时钟脉冲

TIME1H、TIME1L、TIME2H、TIME2L分别 为主干道时钟高位、主干道时钟低位、支干道 时钟高位、支干道时钟低位

LED为LED灯发光情况,分别为主干道绿灯、 主干道黄灯、主干道红灯、支干道绿灯、主干

道黄灯、主干道红灯 图4.4控制电路模块 Count的总的系统时间,用来改变系统的状态

4.4 译码显示电路设计

根据状态控制器所控制的状态和计数器 的计时时间,选择当前状态下的根据状态控 制器所控制的状态和计数器的计时时间,选 择当前状态下的采用动态扫描显示。具体实 物模块如图4.5所示。

图4.5译码显示电路模块

4.5 顶层文件的编写

将以上各个单元模块仿真成功后,再进行顶层文件的编写。将各个单元模块的变量赋值给顶层文件,从而将各个单元模块连接起来,统一调配。得到顶层文件的实体模块如图4.2所示。 其中:

CLK为1KHZ系统时钟脉冲

CAR为支干道车辆行驶情况,高电平为有车行驶,低电平为无车行驶 LED为交通灯发光情况 SEL为数码管位码扫描 SEG为数码管段码

5 软件设计

精选范本

5.1 时钟分频模块:

LIBRARY IEEE;

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

PORT(clk:IN STD_LOGIC; CLK1S:OUT STD_LOGIC); END fp;

ARCHITECTURE one OF fp IS

SIGNAL N: STD_LOGIC_VECTOR(9 DOWNTO 0); BEGIN PROCESS(clk)

BEGIN

IF clk'EVENT AND clk='1' THEN N<=N+1; END IF;

END PROCESS; CLK1S<=N(9); END one;

5.2 交通灯控制及计时模块:

LIBRARY IEEE;

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

PORT(CLK1S,car:IN STD_LOGIC;--1S脉冲,支干道车辆检测

TIME1H,TIME1L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--支干道计时 TIME2H,TIME2L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--支干道计时 count:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); --系统总计时 led:OUT STD_LOGIC_VECTOR(5 DOWNTO 0)); --交通灯显示

END KZ;

精选范本