VHDL电梯程序Word下载.doc
- 文档编号:13162621
- 上传时间:2022-10-07
- 格式:DOC
- 页数:21
- 大小:368.50KB
VHDL电梯程序Word下载.doc
《VHDL电梯程序Word下载.doc》由会员分享,可在线阅读,更多相关《VHDL电梯程序Word下载.doc(21页珍藏版)》请在冰豆网上搜索。
Key–word:
FPGAVHDLelevatorstatemachine
目录
一、设计要求 5
二、系统设计 5
三、单元模块设计 7
四、仿真与调试 9
五、优化与约束 10
六、协同与分工 10
七、心得体会(总结) 18
参考文献 18
一、设计要求
功能:
设计一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;
en
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 电梯 程序