基于EDA的交通灯控制系统设计Word文档格式.docx

上传人:b****1 文档编号:743569 上传时间:2023-04-29 格式:DOCX 页数:18 大小:173.64KB
下载 相关 举报
基于EDA的交通灯控制系统设计Word文档格式.docx_第1页
第1页 / 共18页
基于EDA的交通灯控制系统设计Word文档格式.docx_第2页
第2页 / 共18页
基于EDA的交通灯控制系统设计Word文档格式.docx_第3页
第3页 / 共18页
基于EDA的交通灯控制系统设计Word文档格式.docx_第4页
第4页 / 共18页
基于EDA的交通灯控制系统设计Word文档格式.docx_第5页
第5页 / 共18页
基于EDA的交通灯控制系统设计Word文档格式.docx_第6页
第6页 / 共18页
基于EDA的交通灯控制系统设计Word文档格式.docx_第7页
第7页 / 共18页
基于EDA的交通灯控制系统设计Word文档格式.docx_第8页
第8页 / 共18页
基于EDA的交通灯控制系统设计Word文档格式.docx_第9页
第9页 / 共18页
基于EDA的交通灯控制系统设计Word文档格式.docx_第10页
第10页 / 共18页
基于EDA的交通灯控制系统设计Word文档格式.docx_第11页
第11页 / 共18页
基于EDA的交通灯控制系统设计Word文档格式.docx_第12页
第12页 / 共18页
基于EDA的交通灯控制系统设计Word文档格式.docx_第13页
第13页 / 共18页
基于EDA的交通灯控制系统设计Word文档格式.docx_第14页
第14页 / 共18页
基于EDA的交通灯控制系统设计Word文档格式.docx_第15页
第15页 / 共18页
基于EDA的交通灯控制系统设计Word文档格式.docx_第16页
第16页 / 共18页
基于EDA的交通灯控制系统设计Word文档格式.docx_第17页
第17页 / 共18页
基于EDA的交通灯控制系统设计Word文档格式.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于EDA的交通灯控制系统设计Word文档格式.docx

《基于EDA的交通灯控制系统设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于EDA的交通灯控制系统设计Word文档格式.docx(18页珍藏版)》请在冰点文库上搜索。

基于EDA的交通灯控制系统设计Word文档格式.docx

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

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

可以利用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:

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

主干道绿灯,支干道红灯或支干道有车辆驶入;

主干道黄灯,支干道红灯;

主干道红灯,支干道绿灯;

主干道红灯,支干道黄灯。

利用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交通灯控制及计时模块:

ENTITYkzIS

PORT(CLK1S,car:

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

TIME1H,TIME1L:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

--支干道计时

TIME2H,TIME2L:

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)

IFcar='

0'

THENcurrent_state<

=s0;

c<

="

0000000"

;

ELSE

IFCLK1S'

EVENTANDCLK1S='

THEN--支干道有车开始计数

c<

=c+1;

current_state<

=next_state;

ENDIF;

CASEcurrent_stateIS--状态转换

WHENs0=>

LED<

100001"

--支干道无车不减计时

TIME1H<

0100"

TIME1L<

0101"

TIME2H<

TIME2L<

0000"

IFcar='

THENnext_state<

=s1;

ELSEnext_state<

ENDIF;

WHENs1=>

--主干道绿灯,支干道红灯

IFc="

0101100"

=s2;

WHENs2=>

010001"

--主干道黄灯,支干道红灯

0110001"

=s3;

=s2;

WHENs3=>

001100"

--主干道红灯,支干道绿灯

1001010"

=s4;

WHENs4=>

001010"

--支干道黄灯,主干道红灯

=s5;

=s4;

WHENOTHERS=>

next_state<

ENDCASE;

IFc="

0101101"

THENTIME1H<

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

ENDIF;

IFc="

0110010"

THEN

TIME1H<

0011"

TIME2H<

0010"

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

1001011"

THENTIME2H<

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

1010000"

THEN

--系统时间为80,主干道计时45秒,支干道计时50秒

THENc<

--系统时间清零

ENDPROCESSREG;

count<

=c;

ENDone;

5.3扫描显示译码器:

USEIEEE.STD_LOGIC_ARITH.ALL;

ENTITYxsIS

PORT(clk,CLK1S,car:

INSTD_LOGIC_VECTOR(3DOWNTO0);

--主干道置数

--支干道置数

INSTD_LOGIC_VECTOR(6DOWNTO0);

--计数信号

sel:

OUTSTD_LOGIC_VECTOR(2DOWNTO0);

--数码管位码

seg:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

--数码管段码

ENDxs;

ARCHITECTUREoneOFxsIS

SIGNALnum:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALnumsel:

STD_LOGIC_VECTOR(2DOWNTO0);

SIGNALnumseg:

SIGNALQ1,Q2,Q3,Q4:

SM:

PROCESS(clk,num,numsel)--扫描

IFclk'

EVENTANDclK='

THENnumsel<

=numsel+1;

IFnumsel="

011"

000"

ENDPROCESSSM;

WX:

PROCESS(numsel,Q1,Q2,Q3,Q4)--位选

CASEnumselIS

WHEN"

=>

num<

=Q4;

010"

=Q3;

001"

=Q2;

=Q1;

WHENOTHERS=>

NULL;

ENDPROCESSWX;

ZS:

PROCESS(CLK1S,car,Q1,Q2,Q3,Q4,num,TIME1H,TIME1L,TIME2H,TIME2L)

--数码管置数

IFcar='

IFCLK1S'

EVENTANDCLK1S='

IFQ2>

"

THENQ2<

=Q2-1;

ELSE

IFQ1>

THENQ1<

=Q1-1;

Q2<

1001"

--减计时

IFQ4>

THENQ4<

=Q4-1;

IFQ3>

THENQ3<

=Q3-1;

Q4<

IFQ1="

ANDQ2="

Q1<

=TIME1H;

=TIME1L;

IFQ3="

ANDQ4="

Q3<

=TIME2H;

=TIME2L;

ELSEQ1<

--支路无车辆不减计时

Q3<

ENDPROCESSZS;

YM:

PROCESS(num,numseg)

CASEnumIS

WHEN"

=>

numseg<

1111110"

0001"

0110000"

1101101"

1111001"

0110011"

1011011"

0110"

1011111"

0111"

1110000"

1000"

1111111"

1111011"

WHENOTHERS=>

ENDCASE;

ENDPROCESSYM;

sel<

=numsel;

seg<

=numseg;

5.4顶层文件:

ENTITYjtdIS

PORT(clk:

--动态扫描时钟

car:

--支路车辆传感信号

OUTSTD_LOGIC_VECTOR(5DOWNTO0);

--交通灯信号

ENDjtd;

ARCHITECTUREoneOFjtdIS

COMPONENTfP

PORT(clK:

ENDCOMPONENT;

COMPONENTkz

COMPONENTxs

PORT(clK,CLK1S,car:

SIGNALCLK1S:

STD_LOGIC;

SIGNALcount:

SIGNALTIME1H,TIME1L,TIME2H,TIME2L:

U1:

fpPORTMAP(CLK=>

clk,CLK1S=>

CLK1S);

U2:

kzPORTMAP

(CLK1S=>

CLK1S,car=>

car,count=>

count,led=>

led,TIME1H=>

TIME1H,

TIME1L=>

TIME1L,TIME2H=>

TIME2H,TIME2L=>

TIME2L);

U3:

xsPORTMAP

(clk=>

count,sel=>

sel,seg=>

seg,

TIME1H=>

TIME1H,TIME1L=>

END;

6系统仿真与分析

6.1仿真结果

利用quartusII软件对顶层实体程序进行编译,生成了可以进行仿真定时分析以及下载到可编程器件的相关文件,然后进行仿真,即可得到最后仿真结果。

仿真结果如图6.1所示:

图6.1仿真结果

6.2仿真结果分析

通过仿真结果可以得出:

开始时,支干道没有车辆行驶。

主干道处于常通行状态,支干道处于禁止状态;

当支干道有车来时,主干道亮绿灯,经行45秒倒计时,支干道亮红灯,经行50秒倒计时;

主干道45秒倒计时结束后跳变到黄灯,进行5秒倒计时,支干道继续亮红灯,进行倒计时;

主干道5秒倒计时结束后跳变到红灯,经行30秒倒计时,支干道跳变到绿灯,进行25秒倒计时;

支干道25秒倒计时结束后跳变到黄灯,进行5秒倒计时,主干道继续亮红灯,进行倒计时;

支干道5秒倒计时结束后,判断支干道是否有车,若有车跳变到S1状态,没有车跳变到S0状态

7设计总结

通过这次课程设计,我进一步加深了对EDA(电子设计自动化)的了解。

并进一步熟练了对QuartusII软件的操作。

在做本次课程设计的过程中,遇到了很多问题,使我发现自己以前学习上存在的不足。

并加深了对交通灯原理和设计思路的了解。

同时也掌握了做课程设计的一般流程,为以后的设计积累了一定的经验。

做课程设计时,先查阅相关知识,把原理吃透,确定一个大的设计方向,在按照这个方向分模块的把要实现的功能用流程图的形式展示。

最后参照每个模块把输入和输出引脚设定,运用我们所学的VHDL语言进行编程。

数字化时代的到来给人们的生活带来了极大的改变,有理由相信随着数字化的深入,交通灯控制器的功能将日趋完善。

而且,VHDL语言对EDA产生的影响也是深远的,它缩短了电子产品的设计周期,为设计者提供了方便。

总之,通过这次的设计,进一步了解了EDA技术,收获很大,对软件编程、排错调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。

参考文献

[1]江国强.EDA技术与应用(第3版).北京:

电子工业出版社,2010年4月

[2]杨恢先,黄辉先.单片机原理及应用.北京:

人民邮电出版社,2006年10月

[3]康华光.电子技术基础数字部分(第五版)[M].北京:

高等教育出版社,2006年1月

[4]康华光.电子技术基础模拟部分(第五版)[M].北京:

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2