基于EDA的交通灯控制系统设计.doc

上传人:b****3 文档编号:2490836 上传时间:2022-10-30 格式:DOC 页数:16 大小:291.50KB
下载 相关 举报
基于EDA的交通灯控制系统设计.doc_第1页
第1页 / 共16页
基于EDA的交通灯控制系统设计.doc_第2页
第2页 / 共16页
基于EDA的交通灯控制系统设计.doc_第3页
第3页 / 共16页
基于EDA的交通灯控制系统设计.doc_第4页
第4页 / 共16页
基于EDA的交通灯控制系统设计.doc_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

基于EDA的交通灯控制系统设计.doc

《基于EDA的交通灯控制系统设计.doc》由会员分享,可在线阅读,更多相关《基于EDA的交通灯控制系统设计.doc(16页珍藏版)》请在冰豆网上搜索。

基于EDA的交通灯控制系统设计.doc

※※※※※※※※※

※※

※※

※※

※※※※※※※※※

2008级学生

EDA课程设计

EDA课程设计报告书

课题名称

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

姓名

陈勇

学号

0812201-08

院系

物理与电信工程系

专业

电子信息工程

指导教师

田旺兰讲师

2011年6月10日

一、设计任务及要求:

设计任务:

设计一个具有四种信号灯的交通灯控制器。

要求:

1.由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄、左拐允许四盏信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外,左拐灯亮允许车辆向左拐弯。

2.信号灯变换次序为:

主支干道交替允许通行,主干道每次放行40秒,亮5秒红灯让行驶中的车辆有时间停到禁行线外,左拐放行15秒,亮5秒红灯;支干道放行30秒,亮5秒黄灯,左拐放行15秒,亮5秒红灯……。

各计时电路为倒计时显示。

指导教师签名:

2011年月日

二、指导教师评语:

指导教师签名:

2011年月日

三、成绩

验收盖章

2011年月日

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

1设计目的

(1)掌握十字路口交通灯控制的设计原理,并能够运用VHDL编程语言编写出实验程序,进一步对所学的EDA知识进行掌握与实际应用。

(2)学会在quartusII软件环境中仿真,熟悉软件的基本操作和运行环境。

(3)锻炼自己获取信息的能力,以及能够独立自主的思考和解决问题的能力。

2设计的主要内容和要求

设计一个基于EDA的交通灯控制系统,所要设计的交通信号灯控制电路要能够适用于由一条主干道和一条支干道的汇合点形成的十字交叉路口。

能够做到主、支干道的红绿灯闪亮的时间不完全相同,在绿灯跳变红灯的过程中能够用黄灯进行过渡,使得行驶过程中的车辆有足够的时间停下来。

还要求在主、支干道各设立一组计时显示器,能够显示相应的红、黄、绿倒计时。

可以利用VHDL语言合理设计系统功能,使红黄绿灯的转换有一个准确的时间间隔和转换顺序。

3整体设计方案

根据设计要求和系统所具有功能,并参考相关的文献资料,经行方案设计,画出如下所示的十字路口交通灯控制器系统框图,及为设计的总体方案,框图如图3.1所示。

并且可以得出系统的状态图如图3.2所示,其中:

S0:

支干道没有车辆行驶,支干道绿灯,支干道红灯

S1:

支干道有车辆行驶,支干道绿灯,支干道红灯

S2:

主干道黄灯,支干道绿灯

S3:

主干道红灯,支干道绿灯

S4:

主干道红灯,支干道黄灯

CLK

时钟分频模块

交通灯控制及计时模块

扫描显示模块

LED显示

数码管位码

数码管段码

图3.1整体设计方框图

图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时钟分频模块:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYfpIS

PORT(clk:

INSTD_LOGIC;

CLK1S:

OUTSTD_LOGIC);

ENDfp;

ARCHITECTUREoneOFfpIS

SIGNALN:

STD_LOGIC_VECTOR(9DOWNTO0);

BEGIN

PROCESS(clk)

BEGIN

IFclk'EVENTANDclk='1'THENN<=N+1;

ENDIF;

ENDPROCESS;

CLK1S<=N(9);

ENDone;

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

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYkzIS

PORT(CLK1S,car:

INSTD_LOGIC;--1S脉冲,支干道车辆检测

TIME1H,TIME1L:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);--支干道计时

TIME2H,TIME2L:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);--支干道计时

count:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);--系统总计时

led:

OUTSTD_LOGIC_VECTOR(5DOWNTO0));--交通灯显示

ENDKZ;

ARCHITECTUREoneOFkzIS

TYPEstatesIS(s0,s1,s2,s3,s4,s5);--状态初始化

SIGNALcurrent_state,next_state:

states;

SIGNALc:

STD_LOGIC_VECTOR(6DOWNTO0);

BEGIN

REG:

PROCESS(CLK1S,car,current_state,c)

BEGIN

IFcar='0'THENcurrent_state<=s0;

c<="0000000";

ELSE

IFCLK1S'EVENTANDCLK1S='1'THEN--支干道有车开始计数

c<=c+1;

current_state<=next_state;

ENDIF;

ENDIF;

CASEcurrent_stateIS--状态转换

WHENs0=>LED<="100001";--支干道无车不减计时

TIME1H<="0100";TIME1L<="0101";

TIME2H<="0101";TIME2L<="0000";

IFcar='1'THENnext_state<=s1;

ELSEnext_state<=s0;

ENDIF;

WHENs1=>LED<="100001";--主干道绿灯,支干道红灯

IFc="0101100"THENnext_state<=s2;

ELSEnext_state<=s1;

ENDIF;

WHENs2=>LED<="010001";--主干道黄灯,支干道红灯

IFc="0110001"THENnext_state<=s3;

ELSEnext_state<=s2;

ENDIF;

WHENs3=>LED<="001100";--主干道红灯,支干道绿灯

IFc="1001010"THENnext_state<=s4;

ELSEnext_state<=s3;

ENDIF;

WHENs4=>LED<="001010";--支干道黄灯,主干道红灯

IFc="0110001"THENnext_state<=s5;

ELSEnext_state<=s4;

ENDIF;

WHENOTHERS=>LED<="100001";next_state<=s0;

ENDCASE;

IFc="0101101"THENTIME1H<="0000";TIME1L<="0101";

--系统时间为45,主干道黄灯计时5秒

ENDIF;

IF c="0110010"THEN

TIME1H<="0011";TIME1L<="0000";TIME2H<="0010";TIME2L<="0101";

--系统时间为50,主干道计时30秒,支干道计时25秒

ENDIF;

IFc="1001011"THENTIME2H<="0000";TIME2L<="0101";

--系统时间为75,支干道黄灯计时5秒

ENDIF;

IF c="1010000" THEN

TIME1H<="0100";TIME1L<="0000";TIME2H<="0101";TIM

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 中医中药

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1