2022年2022年基于VHDL的四层电梯控制器 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年2022年基于VHDL的四层电梯控制器 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年基于VHDL的四层电梯控制器 .pdf(19页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1 四层电梯控制器姓名:徐志聪学号:030902529 指导老师:赵彦敏名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 19 页 - - - - - - - - - 2 实验目的:1、掌握更复杂的 VHDL 设计。2、掌握状态机设计方法。实验环境:EP1C3适配板、装有 Quartusii软件的 PC机一台。实验原理:电梯控制器的功能模块如下图所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯
2、开始运行, 状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。分控制器把有效的请求传给主控制器进行处理, 同时显示电梯的运行状态和电梯所在楼层数。由于分控制器相对简单很多,所以主控制器是核心部分。电梯控制器原理图状态显示器主控制器楼层选择器分控制器译码器楼层显示器名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 19 页 - - - - - - - - - 3 外部按键请求信号寄存器状态寄存器内部软件执行机构外部硬件执行机构图 2.2 总流程
3、图初始化判定电梯运行方向是否有请求?等待电梯运行楼层检测否电梯停止目标层与本层是否同层?是是否目标层?开门延时关门是否停止运行?是否是否是否停止图 2.3 电梯控制主流程图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 19 页 - - - - - - - - - 4 四层电梯控制器实现的功能及运行规则:1 电梯一层入口处设有上升请求开关,二三层入口处设有上、 下请求开关,四层入口处设有下降请求开关,电梯内部设有顾客到达楼层的停站请求开关。2 每层电梯入口处设有位置指示装
4、置及电梯运行模式 ( 上升或下降 )指示装置。3 电梯初始状态为一层开门状态。4 电梯每秒上升 (下降) 一层楼。5 电梯到达需要停止的楼层,经过1秒电梯门打开,开门指示灯亮,开门4 秒后,电梯门关闭 (开门指示灯灭 ) ,电梯继续运行,直至执行完最后一个请求信号后停留在当前层。6 电梯需要寄存器来记忆电梯内外所有请求,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。7 电梯的运行规则:当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号和停站请求信号,由下而上逐个执行, 直到最后一个上楼请求执行完毕;如果高层有下楼请求, 则直接上升到有下楼请求的最高层,然后进入下降模式。当
5、电梯处于下降模式时则与上升模式相反。四层电梯控制器的设计思路:电梯控制器设计两个进程相互配合,状态机进程作为主要进程, 信号灯控制进程作为辅助进程。 根据电梯的实际工作情况,可以为状态机设置十个状态,它们分别是“电梯停在一层” “开门”“关门”“开门等待第一秒” “开门等待第二秒”“开门等待第三秒”“开门等待第四秒”“上升”“下降”和“停止”。由于电梯每秒上升或下降一层,则可以用周期为1s的信号来作为电梯状态转换的触发时钟。状态机进程中的很多判断条件是以信号灯控制进程产生的信号灯信号为依据,而信号灯控制进程中信号灯的熄灭又是由状态机进程中传出的信号来控制。四层电梯控制器的设计主要是对实体和结构
6、体的设计,它的VHDL 描述模块流程如图 3.1 所示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 19 页 - - - - - - - - - 5 VHDL源代码说明:library IEEE; -库的说明use IEEE.std_logic_1164.all; -程序包的说明use IEEE.std_logic_unsigned.all; use IEEE.std_logic_arith.all; -(arith) entity fourlift is -实体名称
7、 fourlift port(clk1:in std_logic; -按键读取时钟信号clk2:in std_logic; -led_7 数码管显示扫描时钟信号reset:in std_logic; - 异步复位端口close:in std_logic; - 关门请求f1upbutton:in std_logic; - 一层上升请求端口f2upbutton:in std_logic; - 二层上升请求端口f2dnbutton:in std_logic; - 二层下降请求端口f3dnbutton:in std_logic; - 三层下降请求端口f3upbutton:in std_logic; -
8、 三层上升请求端口f4dnbutton:in std_logic; - 四层下降请求端口stop1button:in std_logic; - 一层停站请求端口stop2button:in std_logic; - 二层停站请求端口元件库的说明定义实体结构体端口状态机进程信号灯控制进程结束按键信号灯图 3.1 四层电梯控制器的 VHDL 描述模块流程名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 19 页 - - - - - - - - - 6 stop3button:i
9、n std_logic; -三层停站请求端口stop4button:in std_logic; -四层停站请求端口stair:buffer integer range 1 to 4; -电梯位置信号udsig:buffer std_logic; -电梯运行模式(上升1 或下降 0 fuplight,fdnlight,stoplight:buffer std_logic_vector(4 downto 1); -上升、下降、停站请求寄存信号doorlight:out std_logic; -开门状态( 1为开门状态)dout:out std_logic_vector(6 downto 0); -
10、 数码管显示楼层段码s:out std_logic_vector(2 downto 0); -数码管显示楼层位码end entity fourlift; architecture chi of fourlift is -结构体type lift_state is - 定 义 十 个 状 态(stop_on_1,door_open,door_close,door_wait1,door_wait2,door_wait3,door_wait4,up,down,stop); signal state:lift_state; signal clr_up:std_logic; -上升和停站请求清除信号si
11、gnal clr_dn:std_logic; -下降和停站请求清除信号signal q:std_logic_vector(3 downto 0); -分频进程中需要的信号signal buttonclk,liftclk:std_logic; -分频后的电梯时钟和按键读取控制时钟begin clklift:process(clk1) -分频产生电梯控制时钟liftclk和按键读取控制时钟buttonclk begin if (clk1event and clk1=1) then if q=1111 then q=0000; else q=q+1; end if; end if; buttoncl
12、k=q(0); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 19 页 - - - - - - - - - 7 liftclk=q(3); end process clklift; statelift:process(reset,liftclk) -状态机进程variable position:integer range 4 downto 1; begin if reset=1 then -异步复位,电梯的初始状态为一层开门状态state=stop_on_1; clr_
13、up=0; clr_dn doorlight=1; -开门stair=1; position:=1; state clr_up=0; clr_dn=0; if(close=1) then state=door_close;- 如果有关门信号,则转至关门状态else state if(close=1) then state=door_close; else state 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 19 页 - - - - - - - - - 8 if(c
14、lose=1) then state=door_close; else state state -关门, 判定电梯下一个运行方式doorlight=0; if udsig=1 then -电梯处在上升模式if stair=4 then if fuplight=0000 and fdnlight=0000 and stoplight=0000 then -没有请求信号时,电梯停在当前层udsig=0; state=door_close; elsif fdnlight(4)=1 or stoplight(4)=1 then -本层有请求信号时,电梯开门udsig=0; - 转为下降state=do
15、or_open; else -否则下降udsig=0; state=down; end if; elsif stair=3 then if fuplight=0000 and fdnlight=0000 and stoplight=0000 then udsig=1; state=door_close; elsif fuplight(3)=1 or stoplight(3)=1 then -本层有上升或停站请求时,电梯开门udsig=1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
16、第 8 页,共 19 页 - - - - - - - - - 9 state=door_open; elsif fuplight=0000 and stoplight=0000 and fdnlight=0100 then - 只有 3 层有下降请求时,电梯开门udsig=0; state=door_open; elsif stoplight(4)=1 or fdnlight(4)=1 then -4 层有停站请求或下降请求,则上升udsig=1; state=up; else udsig=0; state=down; end if; elsif stair=2 then if fupligh
17、t=0000 and fdnlight=0000 and stoplight=0000 then udsig=1; state=door_close; elsif fuplight(2)=1 or stoplight(2)=1 then -本层有上升或停站请求时,电梯开门udsig=1; state=door_open; elsif fuplight=0000 and stoplight=0000 and fdnlight=0010 then - 只有 2 层有下降请求时,电梯开门udsig=0; state=door_open; elsif stoplight(4)=1 or fdnligh
18、t(4)=1 or stoplight(3)=1 or fdnlight(3)=1 or fuplight(3)=1 then -4 层有停站请求或下降请求,则上升udsig=1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 19 页 - - - - - - - - - 10 state=up; else udsig=0; state=down; end if; elsif stair=1 then if fuplight=0000 and fdnlight=0000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年基于VHDL的四层电梯控制器 2022 基于 VHDL 电梯 控制器
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内