发布时间 : 星期日 文章基于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;
精选范本