VHDL电梯程序Word文档下载推荐.doc

上传人:wj 文档编号:3984206 上传时间:2023-05-02 格式:DOC 页数:21 大小:368.50KB
下载 相关 举报
VHDL电梯程序Word文档下载推荐.doc_第1页
第1页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第2页
第2页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第3页
第3页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第4页
第4页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第5页
第5页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第6页
第6页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第7页
第7页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第8页
第8页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第9页
第9页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第10页
第10页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第11页
第11页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第12页
第12页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第13页
第13页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第14页
第14页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第15页
第15页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第16页
第16页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第17页
第17页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第18页
第18页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第19页
第19页 / 共21页
VHDL电梯程序Word文档下载推荐.doc_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

VHDL电梯程序Word文档下载推荐.doc

《VHDL电梯程序Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《VHDL电梯程序Word文档下载推荐.doc(21页珍藏版)》请在冰点文库上搜索。

VHDL电梯程序Word文档下载推荐.doc

一、设计要求

功能:

设计一4层楼电梯控制器,梯外各层显示当前电梯所在楼层及上行、下行状态;

1层只有向上按钮,4层只有向下按钮,其余各层均有上下按钮;

按钮均带灯。

梯内有1-4层选择键(带灯)和开关门键,梯内显示当前楼层。

由一只LED表示门的开关状态;

楼层运行时间为3S,开门后等待关门信号时间为10s,超时自动关门。

要求:

仿真真实电梯应用,设计相应的调度算法,使运营成本最低;

发挥:

到楼层声音提示、流水灯指示上下行等。

二、系统设计

1)电梯控制器的组成

电梯的控制状态包括运行状态、停止状态及等待状态,其中运行状态又包含向上状态和向下状态。

每层楼设有用户请求按钮,用户可以通过本层的请求,对电梯进行控制,使电梯到当前楼层;

而在电梯内部,还设有电梯停靠按钮,当用户需要下电梯时,可按下停止按钮,在计数及显示上,当电梯运行停止后,计数4s后,门自动关闭,而显示器也可显示当前电梯所在楼层数。

时序输入

楼层,开关门状态显示器

电梯升降寄存器

电梯服务请求处理器

电梯次态生成器

电梯升降控制器

2)电梯设计的基本思路

电梯控制器设计两个进程相互配合,状态机进程作为主要进程,信号灯控制进程作为辅助进程,还有一个分频进程提供触发信号。

根据电梯的实际工作情况,可以为状态机设置九个状态,它们分别是“电梯停在一层”“开门”“关门”“开门等待第一次”“开门等待第二次”“开门等待第三次”“开门等待第四次”“开门等待第五次”“开门等待第六次”“开门等待第七次”“开门等待第八次”“开门等待第九次”“上升”“下降”和“停止”。

由于电梯每4秒上升或下降一层,则可以用周期为1s的信号来作为电梯状态转换的触发时钟,然后定义一个变量,当变量为2时“上升”“下降”操作被执行,由于在进程中信号被冻结,等下一脉冲来的时候position改变。

状态机进程中的很多判断条件是以信号灯控制进程产生的信号灯信号为依据,而信号灯控制进程中信号灯的熄灭又是由状态机进程中传出的信号来控制。

四层电梯控制器的设计主要是对实体和结构体的设计,它的VHDL描述模块流程如图3.1所示:

元件库的说明

定义实体

定义结构体

端口

信号灯控制进程

状态机进程

按键信号灯

结束

3)电梯控制器程序代码

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

ENTITYfourfilftIS

PORT(buttonclk:

INSTD_LOGIC;

---按钮时钟信号

liftclk:

--按键读取时钟信号,设为1HZ

reset:

--按键复位

kclose:

inSTD_LOGIC;

--关门按键

kopen:

--开门按键

f1upbutton:

--外部上升请求按键

f2upbutton:

f2dnbutton:

--外部下降请求按键

f3upbutton:

f3dnbutton:

f4dnbutton:

sp:

outSTD_LOGIC;

--蜂鸣器输出

doorlight:

OUTSTD_LOGIC;

--电梯门指示灯:

'

1'

开'

0'

fuplight:

BUFFERSTD_LOGIC_VECTOR(4DOWNTO1);

--外部上升请求指示灯

fdnlight:

stop1button,stop2button,stop3button,stop4button:

--内部请求按键

stoplight:

--内部请求指示灯

position:

BUFFERINTEGERRANGE1TO4;

--电梯楼层数

udsig:

BUFFERSTD_LOGIC);

--上下行模式指示灯:

'

处于上升模式,'

处于下降模式

ENDentityfourfilft;

ARCHITECTUREartOFfourfilftIS

TYPElift_stataIS--状态机进程(主进程)

(stopon1,dooropen,doorclose,doorwait1,doorwait2,doorwait3,doorwait4,doorwait5,doorwait6,doorwait7,doorwait8,doorwait9,up,down,stop);

--电梯所处的15个状态

SIGNALmylift:

lift_stata;

--内部电梯状态信号

SIGNALclearup:

STD_LOGIC;

--上升清除信号

SIGNALcleardn:

--下降清除信号

BEGIN

ctrlift:

PROCESS(reset,liftclk,kclose)

VARIABLEpos:

INTEGERRANGE4DOWNTO1;

--楼层位置变量

variabletemp:

INTEGERRANGE0to3:

=0;

IFreset='

THEN

mylift<

=stopon1;

--起始状态

clearup<

='

;

--上楼信号清除

cleardn<

--下楼信号清除

ELSE

IFliftclk'

EVENTANDliftclk='

casemyliftIS

WHENstopon1=>

doorlight<

--电梯处于一层

position<

=1;

pos:

mylift<

=doorwait1;

WHENdoorwait1=>

--电梯转换到开门等待1s状态

ifkclose='

thenmylift<

=doorclose;

--判断是否需要快速关门

elsemylift<

=doorwait2;

--电梯转换到等待2S状态

endif;

WHENdoorwait2=>

--电梯转换到等待3s状态

ifkclose='

--判断是否需要快速关门

elsemylift<

=doorwait3;

endif;

clearup<

cleardn<

WHENdoorwait3=>

--电梯转换到等待4s状态

ifkclose='

=doorwait4;

WHENdoorwait4=>

--电梯转换到等待5s状态

=doorwait5;

WHENdoorwait5=>

--电梯转换到等待6s状态

=doorwait6;

WHENdoorwait6=>

--电梯转换到等待7s状态

=doorwait7;

WHENdoorwait7=>

--电梯转换到等待8s状态

=doorwait8;

WHENdoorwait8=>

--电梯转换到等待9s状态

elsemylift<

=doorwait9;

WHENdoorwait9=>

mylift<

--电梯转换到关门状态

WHENdoorclose=>

clearup<

cleardn<

--电梯处于关门状态时

IFudsig='

THEN--表示电梯处于上升模式

IFposition=4THEN--电梯在四层

ifkopen='

=dooropen;

elsifstoplight="

0000"

ANDfuplight="

ANDfdnlight="

THENudsig<

mylift<

elsiffdnlight(4)='

thenudsig<

cleardn<

elsifstoplight(4)='

thenmylift<

ELSEudsig<

=down;

clearup<

ENDIF;

ELSIFposition=3THEN--电梯在三层

ifkopen='

elsIFstoplight="

ANDfuplight="

andfdnlight="

udsig<

mylift<

ORfdnlight(4)='

udsig<

=up;

elsiffuplight(3)='

ORfdnlight(3)='

thenmylift<

elsifstoplight(3)='

ELSIFposition=2THEN--电梯在二层

udsig<

ELSIF(stoplight(3)='

ORfuplight(3)='

)THEN

ELSIF(stoplight(4)='

ORfdnlight(4)='

)THEN

ELSIF(fdnlight(3)='

)THEN

elsiffuplight

(2)='

ORfdnlight

(2)='

orstoplight

(2)='

then

mylift<

ELSEudsig<

ELSIFposition=1THEN--电梯在一层

elsIFstoplight<

="

ANDfuplight<

ANDfdnlight<

elsiffuplight

(1)='

orstoplight

(1)='

then

ENDIF;

ELSIFudsig='

THEN--表示电梯处于下降模式

IFposition=1THEN--电梯在一层

ifkopen='

elsIFstoplight<

000"

THEN

elsiffuplight

(1)='

orstoplight

(1)='

ELSEudsig<

ENDIF;

ELSIFposition=2THEN--电梯在二层

elsIFstoplight<

ELSIFstoplight

(1)='

ORfuplight

(1)='

cleardn<

elsiffuplight

(2)='

orstoplight

(2)='

mylift<

ELSIFposition=3THEN--电梯在三层

ELSIF(stoplight

(2)='

ORfdnlight

(2)='

ELSIF(stoplight

(1)='

ORfuplight

(1)='

udsig<

ELSIF(fuplight

(2)='

elsiffuplight(3)='

orstoplight(3)='

ELSEudsig<

=

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

当前位置:首页 > PPT模板 > 商务科技

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

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