步行街道自助式交通灯控制器的设计Word格式.docx

上传人:b****5 文档编号:15687294 上传时间:2022-11-15 格式:DOCX 页数:16 大小:108.95KB
下载 相关 举报
步行街道自助式交通灯控制器的设计Word格式.docx_第1页
第1页 / 共16页
步行街道自助式交通灯控制器的设计Word格式.docx_第2页
第2页 / 共16页
步行街道自助式交通灯控制器的设计Word格式.docx_第3页
第3页 / 共16页
步行街道自助式交通灯控制器的设计Word格式.docx_第4页
第4页 / 共16页
步行街道自助式交通灯控制器的设计Word格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

步行街道自助式交通灯控制器的设计Word格式.docx

《步行街道自助式交通灯控制器的设计Word格式.docx》由会员分享,可在线阅读,更多相关《步行街道自助式交通灯控制器的设计Word格式.docx(16页珍藏版)》请在冰豆网上搜索。

步行街道自助式交通灯控制器的设计Word格式.docx

6.计数器的计时时间长短X~Y~Z可以任意设定。

.三:

设计方案

1.系统设计方案

根据系统设计要求有两种实现方法,一种是采用EDA的实验软件来实现系统要求;

另一种采用基本门电路和各种触发器电路元件来实现。

方案一:

EDA设计方法(软件:

max_plus10.0)

根据系统设计要求,系统设计采用自顶而下的设计方法,顶层设计采用原理图设计方法,系统的整体设计原理图如图

(1)所示,它右去抖模块~设置计数模块和交通灯控制三部分组成。

(1)去抖模块

去抖模块的作用在于消除按键的抖动,因为当输入信号在高低电平之间转换时,在转换的瞬间会产生毛刺,使信号波形不稳定,从而使系统不能正常工作,因此要加入去抖模块。

(2)设置计数模块

设置计数模块的是设置并存储主干道方向和步行街道方向的时间长短。

主干道方向需要设置的时间包括主干道黄灯信号时间,红灯信号时间和主干道车辆允许通行的最短时间,步行街道方向需要设置的时间为步行街道的闪烁时间。

(3)交通灯控制模块

(4)交通灯模块通过采用状态机来实现,用于存储交通灯的五种状态。

五种状态的集体说明如下表。

状态

主干道信号灯

步行街信号灯

主干道

步行街道

R红

G绿

Y黄

S0

1

通行

禁行

S1

车停靠

S2

S3

通行(绿灯闪烁

S4

方案二:

用硬件来实现本系统要求的功能

其基本组成部分和方案一一样,但不同的是用硬件来实现三个模块的逻辑功能。

对于去抖模块,可采用下图所示的防抖动输出电路来解决。

课本P2164.4题

对于计数模块,设置计数模块的是设置并存储主干道方向和步行街道方向的时间长短。

所以需要两个可以计数并存储的计数器来实现,

综上所述,两个方案各有各的优点,但根据时代的发展要求,选择方案一是首选!

因为方案二要焊接的电路板太多,对于有实际用处的逻辑电路一般是进行设计·

仿真后有功能实现就大批量生产,如果采用电路板焊接来实现,会增加工作时间,并且不一定能买到合适的元件来满足设计要求,而方案一采用EDA技术来实现实验功能,在出现问题后容易进行解决并进行修正。

所以本实验采用方案二进行设计。

.四:

设计过程

1:

根据系统设计方案二编写各模块的元程序如下:

(1)去抖模块的VHDL源程序(dither.vhd)

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

ENTITYDITHERIS

PORT(UPIN:

INSTD_LOGIC;

--按键弹起

DOWNIN:

--按键压下

KEYOUT:

OUTSTD_LOGIC);

--按键输出信号

ENDDITHER;

ARCHITECTUREBEHAVEOFDITHERIS

SIGNALOUT1:

STD_LOGIC;

SIGNALOUT2:

BEGIN

OUT1<

=NOT(OUT2ANDUPIN);

OUT2<

=NOT(OUT1ANDDOWNIN);

KEYOUT<

=OUT1;

ENDBEHAVE;

产生图形如下

(2):

设置计数模块的VHDL源程序如下(count.vhd)

ENTITYCOUNTIS

PORT(CLK:

CLEAR:

CLKADD:

CLKSUB:

PRE_SET:

HUMAN_SET:

RST:

GHUMAN_TIME:

OUTINTEGERRANGE31DOWNTO0;

GHUMAN_CLKT:

GVEHICLE_TIME:

OUTINTEGERRANGE31DOWNTO0);

ENDCOUNT;

ARCHITECTUREBEHAVEOFCOUNTIS

SIGNALHUMAN_TIME:

INTEGERRANGE31DOWNTO0;

SIGNALVEHICLE_TIME:

SIGNALSSTATE:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALSCLK:

SIGNALDSCLK:

BEGIN

SSTATE<

="

000"

WHENPRE_SET='

0'

ELSE

HUMAN_SET&

CLEAR&

CLKADD&

CLKSUB;

SCLK<

=CLKADDORCLKSUBORCLEAR;

PROCESS(CLK)

IF(CLK'

EVENTANDCLK='

1'

)THEN

DSCLK<

=SCLK;

ENDIF;

ENDPROCESS;

PROCESS(RST,CLEAR,DSCLK)

BEGIN

IF(RST='

VEHICLE_TIME<

=8;

ELSIF(DSCLK'

EVENTANDDSCLK='

CASESSTATEIS

WHEN"

0100"

=>

=0;

0101"

0110"

0111"

0001"

=VEHICLE_TIME-1;

0010"

=VEHICLE_TIME+1;

WHENOTHERS=>

=VEHICLE_TIME;

ENDCASE;

ENDPROCESS;

PROCESS(CLEAR,DSCLK)

HUMAN_TIME<

=4;

ELSIF(DSCLK'

EVENTANDDSCLK='

CASESSTATEIS

1100"

=>

=0;

1101"

1110"

1111"

1001"

=HUMAN_TIME-1;

1010"

=HUMAN_TIME+1;

WHENOTHERS=>

=HUMAN_TIME;

ENDIF;

PROCESS(PRE_SET,RST)

GHUMAN_TIME<

=5;

GHUMAN_CLKT<

=7;

GVEHICLE_TIME<

=15;

ELSIF(PRE_SET'

EVENTANDPRE_SET='

=HUMAN_TIME+3;

=HUMAN_TIME+VEHICLE_TIME+3;

产生图形如下:

(3)交通灯控制模块的VHDL源程序(SR.VHD)

ENTITYLIGHTIS

PORT(SRED:

OUTSTD_LOGIC;

ERED:

SGREEN:

EYELLOW:

EGREEN:

GT_SET:

ININTEGERRANGE31DOWNTO0;

REQUEST:

CLK:

INSTD_LOGIC);

ENDLIGHT;

ARCHITECTUREBEHAVEOFLIGHTIS

TYPEIN_STATESIS(ST0,ST1,ST2,ST3,ST4);

SIGNALCURRENT_STATE:

IN_STATES;

SIGNALNEXT_STATE:

SIGNALSTART:

SIGNALSIG:

PROCESS(CURRENT_STATE,RST)

ORCURRENT_STATE=ST0)THEN

START<

='

;

ELSE

A:

PROCESS(START,CLK)

SIG<

ELSIF(CLK'

IF(START='

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

当前位置:首页 > 工程科技 > 能源化工

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

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