- 4
- 0
- 约2.52万字
- 约 41页
- 2018-06-08 发布于贵州
- 举报
基于vhdl三层电梯控制器的设计说明书
基于VHDL的三层电梯控制器的设计 姓名: 学号: 班级:设计课题的任务要求:简易电梯控制器:模拟真实电梯的运行情况,设计制作一个简易电梯控制器控制二层电梯的运行。基本要求:电梯设有一层、二层外部呼叫按钮和内部一层、二层指定按钮(BTN)。利用数码管显示电梯所在楼层,用LED显示电梯运行状态如上行、下行、开门、关门等。提高要求:点阵显示楼层;用点阵显示楼层的上下滚动移出移入表示电梯的上行或下行运行方向增加为三层电梯控制器系统设计:电梯控制器的功能模块如图所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。乘客选择所要到达的楼层,通过主控制器的处理之后,电梯开始运行,状态显示器显示当前电梯的上升下降运行状态,电梯所在楼层数通过译码器译码在数码管上显示。分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在层数。电梯控制器原理图如下:状态显示器主控制器楼层选择器分控制器译码器楼层显示器根据电梯的实际工作情况,可以为状态机设置八个状态,它们分别是“电梯停在一层” “电梯停在二层” “电梯停在三层”“开门”“关门” “上升”“下降”和“停止”。由于电梯每秒上升或下降一层,则可以用周期为1s的信号来作为电梯状态转换的触发时钟。VHDL描述模块流程如下图所示:元件库的说明定义实体结构体端口状态机进程信号灯控制进程结束按键信号灯 三层电梯控制器的VHDL描述模块流程电梯控制器流程图:外部按键请求信号寄存器状态寄存器内部软件执行机构外部硬件执行机构图2.2 总流程图初始化判定电梯运行方向是否有请求?等待电梯运行楼层检测否电梯停止目标层与本层是否同层?是是否目标层?开门延时关门是否停止运行?是否是否是否停止 电梯控制主流程图仿真波形及波形分析:设定仿真时间长度为60s,liftclk信号为周期1s的时钟信号,buttonclk信号为周期0.1s的时钟信号。doorlight信号‘1’表示开门,‘0’表示关门。udsig信号‘1’表示电梯处在上升模式,‘0’表示处在下降模式。fuplight,fdnlight,stoplight是三位二进制向量,波形图中的1代表“001”,表示一层有请求,2代表“010”,表示二层有请求,4代表“100”,表示三层有请求。图3.1所示的波形是在一层有上升请求的仿真波形,在reset信号产生一个脉冲时,电梯回复初始状态,即stopon1状态,然后等待,关门检测没有请求信号,电梯停在一层。当电梯时钟上升沿检测到一层上升请求信号fuplight(1)为‘1’时,电梯开门,fuplight(1)清零,等待4s,关门检测到二层停站请求,电梯上升到二层停止,开门stoplight(2)清零,position信号由1变为2,电梯最终停在二层。 图3.1 有上升请求的仿真波形 图3.2所示的波形是三层有下降请求的波形,当电梯在一层关门后,检测到fdnlight为“100”,则上升到三层,开门等待4s,关门检测到stoplight为‘1’,电梯下降到一层,最终停在一层。 图3.2 有下降请求的仿真波形图3.3所示的波形是二层和三层都有下降请求的仿真波形,当电梯在一层关门后,检测到fdnlight为“110”,则直接上升到三层,开门后fdnlight(3)清零,等待4s后,关门下降到二层停止,开门后fdnlight(2)和stoplight(2)清零,再下降到一层。 图3.3 有多个下降请求的仿真波形 图3.4所示的波形为有多个停站请求的仿真波形,电梯在一层关门后,检测到stoplight为“110”,则上升至二层停止开门,stoplight(2)清零,等待4s后关门,继续上升至三层,开门后stoplight(3)清零,乘客下站后电梯最终停在三层。 图3.4 有多个停站请求的仿真波形图3.5所示,当只有二层有下降请求时,电梯上升至二层,然后下降。 图3.5 只有二层有下降请求时的仿真波形图3.6所示,二层同时有上升和下降请求,电梯上升至二层,门打开等待4s,关门后检测到stoplight(3)和fdnlight(2)都为‘1’,它会先上升至三层,再下降至二层,待有下降请求的乘客上电梯后,最后下降至一层。 3.6同时有上升和下降请求的仿真波形从仿真波形来看,电梯的的运行情况符合它的运行规则,电梯的位置变化合理。源程序:电梯主控程序源代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.all;ENTITY elevator ISPORT(cCLK: IN STD_LOGIC;reset: IN STD_LOGIC; Button : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
原创力文档

文档评论(0)