步行街道自助式交通灯控制器的设计Word格式.docx
- 文档编号:15687294
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:16
- 大小:108.95KB
步行街道自助式交通灯控制器的设计Word格式.docx
《步行街道自助式交通灯控制器的设计Word格式.docx》由会员分享,可在线阅读,更多相关《步行街道自助式交通灯控制器的设计Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
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='
)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 步行 街道 自助式 交通灯 控制器 设计