3层电梯VHDL报告Word格式文档下载.docx
- 文档编号:15948526
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:24
- 大小:204.92KB
3层电梯VHDL报告Word格式文档下载.docx
《3层电梯VHDL报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《3层电梯VHDL报告Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
状态转移图如下:
各个状态线表示的内容如下:
1初始化
2初始化后电梯进入工作状态,起始是关门状态
3没有任何信号输入时,电梯始终工作在关门状态
4电梯接收到信号,且请求信号大于当前楼层
5电梯上升后到达指定楼层时停止
6电梯停止后便开门
7延时等待乘客搭乘电梯或者走出电梯
8等待时间结束后电梯关门
9电梯接收到信号,且请求信号小于当前楼层
10电梯下降到指定楼层后停止
11电梯接受的信号与当前楼层相同则开门
控制原理图:
分块设计:
程序中主要分了3个模块:
分频模块,状态控制,状态显示,其中状态显示分成了信号灯显示部分和点阵显示部分,因为一开始对点阵的显示比较生疏,所以点阵显示模块是后来才在总的程序中加入的。
分频模块的作用是将板子提供的时钟信号分频作为电梯运行状态转换的时钟信号;
状态控制模块是最核心的一部分,它要分析输入信号并作出相应的状态转换;
状态显示的信号灯模块主要控制对于外部输入做出的反应,而点阵显示部分则主要是利用点阵来显示当前的楼层信号和运行的电梯上升或下降模式。
3.时序仿真图
(1)如图
从图中可以看出,当复位键reset高电平时,所有信号都不显示,当reset低电平,有警报信号时,电梯门打开,并产生警报输出,当警报与复位信号都是低电平时,一楼有上升请求,显示上升信号,电梯开门后一楼外部请求上升信号熄灭,内部要求停在2楼和3楼,电梯显示内部请求信号,图中stoplight=”110”时,表示有2、3层内部停站请求,电梯经过4个电梯时钟信号到达2层,然后开门,2层上升请求信号清零,然后再关门,上升到3层,之后开门,关门,此时,没有然后任何外部信号,就停止在3层。
(2)
如图,电梯在3层,接收到2层外部下降请求信号,电梯显示该信号,并从3楼下降,同时接收到2层上升请求信号,电梯显示该信号,下降到2层时,电梯开门,然后从接受到的1楼停站请求信号,电梯继续下降并在一楼开门,然后电梯上升到2层开门,然后执行上升任务,到达3层开门。
4.源程序分析(见附件)
5.功能说明
如图,clk接的是开发板的晶振输入信号,作为时钟信号,reset是复位输入,高电平有效,复位后状态转换为stopon1,f1up电梯外部1楼上升请求信号,f2up电梯外部2楼请求上升信号,f2dn电梯外部2楼请求下降信号,电梯外部3楼请求下降信号,stop1内部一层停站请求端口,stop2内部二层停站请求端口,stop3内部三层停站请求端口都是高电平有效,选择相应的端口时会有相应的LED灯点亮,warning:
内部紧急状况请求,高电平有效,此时电梯门打开,蜂鸣器鸣叫报警,fuplight外部上升请求显示灯,fdnlight外部下降请求显示灯,stoplight内部请求显示灯,doorlight开关门信号灯,用来显示相应的请求信号,row点阵显示行,col点阵显示列,用来显示楼层信息与上升下降信息的,warning_out紧急状况报警,接到蜂鸣器
6.元器件清单及资源利用
实验中用到的是MAXIIEPM1270T144C5的板子,其中主要用到的是按键开关和点阵,另外还用到了2个拨码开关用来表示复位键和警报键,还用到了蜂鸣器用来显示警报信号。
引脚图如下:
附件:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitydiantiis
port(
clk:
instd_logic;
--时钟信号
reset:
--异步复位端口1-复位
f1up:
--外部一层上升请求端口1-有请求0-无请求以下类似
f2up:
--外部二层上升请求端口
f2dn:
--外部二层下降请求端口
f3dn:
--外部三层下降请求端口
stop1:
--内部一层停站请求端口
stop2:
--内部二层停站请求端口
stop3:
--内部三层停站请求端口
warning:
--内部紧急状况请求端口
fuplight:
bufferstd_logic_vector(2downto1);
--外部上升请求显示灯0-灭灯1-亮灯以下类似
fdnlight:
bufferstd_logic_vector(3downto2);
--外部下降请求显示灯
stoplight:
bufferstd_logic_vector(3downto1);
--内部请求显示灯
doorlight:
outstd_logic;
--开关门信号灯
layer:
outstd_logic_vector(1downto0);
--当前楼层信息
--在开发板上应用的时候--显示在点阵上,不需要此信号
row:
outstd_logic_vector(7downto0);
--点阵显示行
col:
--点阵显示列
warning_out:
outstd_logic--紧急状况报警,接到蜂鸣器
);
endentitydianti;
architecturebehaveofdiantiis--结构体
typestateis--定义14个状态
(stopon1,dooropen,doorclose,doorwait,up1,down1,stop);
signallift_state:
state;
signalclearup:
std_logic;
--上升和停站请求清除信号
signalcleardn:
--下降和停站请求清除信号
signalup_down:
signalrun_model:
std_logic_vector(2downto0);
--电梯模式(上升或下降)信号
signalpos:
integerrange1to3;
--电梯位置信号
signali:
integerrange0to7;
signalnum:
integerrange0to99999;
signalliftclk:
--电梯时钟信号
begin
----------------------------------分频模块-----------------------------
--功能:
对时钟信号分频,产生电梯运行的时钟信号
------------------------------------------------------------------------
fenpin:
process(clk,reset)
variablecount:
integerrange0to1;
--在开发板上应用的时候需要将分频倍数改--大一些1变成24999;
ifreset='
1'
then
liftclk<
='
0'
;
else
ifclk'
eventandclk='
ifcount=1then
count:
=0;
=count+1;
endif;
endprocessfenpin;
---------------------状态转换-----------------------------------
电梯的主要控制模块
---------------------------------------------------------------
ctrlift:
process(reset,liftclk,warning)--状态机进程
variablecnt:
integerrange0to4;
then--异步复位,电梯的初始状态为一层开门状态
lift_state<
=stopon1;
clearup<
cleardn<
else
ifliftclk'
eventandliftclk='
then
ifwarning='
run_model<
="
000"
doorlight<
--有警报时开门
caselift_stateis--状态转换
whenstopon1=>
--1楼停止,初始状态
pos<
=1;
up_down<
=doorclose;
whendoorclose=>
--关门状态
--电梯处于关门停止模式
ifup_down='
ifpos=3then--电梯在3层
iffuplight="
00"
andfdnlight="
andstoplight="
then--没有任何请求信号,电梯停在当前层
elsiffdnlight(3)='
orstoplight(3)='
then--3层有请求信号时,电梯开门
=dooropen;
else--否则其它层有信号时,下降
u
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电梯 VHDL 报告