版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
四层电梯控制器
实目:1、掌握更复杂的VHDL设计。2、掌握状态机设计方法。实环:EP1C3适配板、装有Quartusii软件的PC机一台。实原:电梯控制器的功能模块如下图所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器客在电梯中选择所要到达的楼层通过主控制器的处理,电梯开始运行态显示器显示电梯的运行状态电梯所在楼层数通过译码器译码从而在楼层显示器中显示控制器把有效的请求传给主控制器进行处理同时显示电梯的运行状态和电梯所在楼层数由于分控制器相对简单很多,所以主控制器是核心部分。
电梯控制器原理图
外部按键
初始化等待请求信号寄存器
否状态寄存器内部软件执行机构外部硬件执行机构图总程图
是否有请求?是目标层与本层是否同层?否判定电梯运行方向电梯运行楼层检测
是否否
是否目标层?是电梯停止开门延时关门是否停止运行?是停止图2.3电梯控制主流程图
四电控器现功及行则eq\o\ac(○,1)
电梯一层入口处设有上升请求开关二三层入口处设有上下请求开关,四层入口处设有下降请求开关,电梯内部设有顾客到达楼层的停站请求开关。eq\o\ac(○,2)
每层电梯入口处设有位置指示装置及电梯运行模式(上升或下降)指示装置。eq\o\ac(○,3)
电梯初始状态为一层开门状态。eq\o\ac(○,4)
电梯每秒上升(下降)一层楼。eq\o\ac(○,5)
电梯到达需要停止的楼层,经过1秒电梯门打开,开门指示灯亮,开门4秒后,电梯门关闭(开门指灯灭),电梯继续运行,直至执行完最后一个请求信号后停留在当前层。eq\o\ac(○,6)
电梯需要寄存器来记忆电梯内外所有请求,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。eq\o\ac(○,7)
电梯的运行规则:当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号和停站请求信号由下而上逐个执行直到最后一个上楼请求执行完毕;如果高层有下楼请求直接上升到有下楼请求的最高层然后进入下降模式。当电梯处于下降模式时则与上升模式相反。四电控器设思:电梯控制器设计两个进程相互配合状态机进程作为主要进程信号灯控制进程作为辅助进程根据电梯的实际工作情况,可以为状态机设置十个状态它们分别是“电梯停在一层“开门“关门“开门等待第一秒“开门等待第二秒”“开门等待第三秒”“开门等待第四秒”“上升”“下降”和“停止”。由于电梯每秒上升或下降一层,则可以用周期为1的信号来作为电梯状态转换的触发时钟态机进程中的很多判断条件是以信号灯控制进程产生的信号灯信号为依据,而信号灯控制进程中信号灯的熄灭又是由状态机进程中传出的信号来控制。四层电梯控制器的设计主要是对实体和结构体的设计,它的VHDL描述模块流程如图3.1所示:
元件库的说明定义实体结构体
端口状态机进程信号灯控制进程
按键信号灯结束图3.1四层电梯控制器的VHDL述模块流程VHDL源码明libraryIEEE;--库的说明use--程序包的说明useusefourlift--------实体名称fourliftport(clk1:in-------按键读取时钟信号clk2:in---------led_7码管显示扫描时钟信号reset:in---------异步复位端口----------关门请求---------层上升请求端口---------层上升请求端口----------层下降请求端口---------层下降请求端口--------三层上升请求端口----------四层下降请求端口stop1button:in-------------一层停站请求端口stop2button:in----------二停站请求端口
stop3button:in--三层停站请求端口stop4button:in--四层停站请求端口stair:buffer1to4;--梯位置信号udsig:buffer--电梯运行模式(上升1或下降0fuplight,fdnlight,stoplight:bufferdownto------上升、下降、停站请求寄存信号doorlight:out--开门状态1’为开门状态)downto0);--数码管显示楼层段码std_logic_vector(20));--数码管显示楼层位码entityfourlift;chioffourlift--结构体typelift_state
--定义十个状态(stop_on_1,door_open,door_close,door_wait1,door_wait2,door_wait3,door_wait4,up,signalsignal--上升和停站请求清除信signal--下降和停站请求清除信signalq:std_logic_vector(3---分频进程中需要的信号signalbuttonclk,liftclk:std_logic;分频后的电梯时钟和按键读取控制时钟beginclklift:process(clk1)分频产生电梯控制时钟beginifandifthenq<="0000";q<=q+1;if;if;
liftclk和按键读取控制时钟
clklift;statelift:process(reset,liftclk)--状态机进程variableposition:integerrange4downto1;beginifreset='1'then--异步复位,电梯的初始状态为一层开门状态state<=stop_on_1;ifliftclk'eventliftclk='1'--个上升沿stateisstop_on_1=>doorlight<='1';
开门position:=1;state<=door_wait1;电梯等待4sif(close='1')如果有关门信号,则转至关门状态等待第二秒if;if(close='1')state<=door_close;state<=door_wait3;等待第三秒if;
if(close='1')state<=door_close;state<=door_wait4;等待第四秒if;state<=door_close;--关门定电梯下一个行方式doorlight<='0';if--梯处在上升模式ifstair=4iffuplight="0000"fdnlight="0000"stoplight="0000"then没有请求信号时,电梯停在当前层udsig<='0';state<=door_close;fdnlight(4)='1'orstoplight(4)='1'then--层有请求信号时,电梯开门udsig<='0';--转为下降--否则下降udsig<='0';state<=down;if;theniffuplight="0000"fdnlight="0000"stoplight="0000"udsig<='1';state<=door_close;fuplight(3)='1'orstoplight(3)='1'then--层有上升或停站请求时,电梯开门udsig<='1';
fuplight="0000"stoplight="0000"fdnlight="0100"then--有3有下降请求时,电梯开门udsig<='0';fdnlight(4)='1'then--4层有停站请求或下降请求,则上升udsig<='1';state<=up;udsig<='0';state<=down;if;theniffuplight="0000"fdnlight="0000"stoplight="0000"udsig<='1';state<=door_close;fuplight(2)='1'orstoplight(2)='1'then--层有上升或停站请求时,电梯开门udsig<='1';fuplight="0000"stoplight="0000"fdnlight="0010"then--有2有下降请求时,电梯开门udsig<='0';orfdnlight(4)='1'orstoplight(3)='1'fdnlight(3)='1'fuplight(3)='1'then--4层有停站请求或下降请求,则上升udsig<='1';
state<=up;udsig<='0';state<=down;if;theniffuplight="0000"stoplight="0000"udsig<='1';state<=door_close;stoplight(1)='1'orfuplight(1)='1'thenudsig<='1';udsig<='1';state<=up;if;if;--电处在下降模式ifstair=4iffuplight="0000"stoplight="0000"udsig<='0';state<=door_close;fdnlight(4)='1'orstoplight(4)='1'thenudsig<='0';udsig<='0';state<=down;
if;theniffuplight="0000"stoplight="0000"udsig<='0';state<=door_close;fdnlight(3)='1'orstoplight(3)='1'thenudsig<='0';
fdnlight="0000"stoplight="0000"fuplight="0100"thenudsig<='1';fuplight(1)='1'stoplight(1)='1'orfuplight(2)='1'fdnlight(2)='1'stoplight(2)='1'--层有停站请求或上升请求,则下降udsig<='0';state<=down;udsig<='1';state<=up;if;theniffuplight="0000"stoplight="0000"udsig<='0';state<=door_close;fdnlight(2)='1'orstoplight(2)='1'thenudsig<='0';
fdnlight="0000"stoplight="0000"
fuplight="0010"thenudsig<='1';fuplight(1)='1'orstoplight(1)='1'then--一层有停站请求或上升请求,则下降udsig<='0';state<=down;udsig<='1';state<=up;if;theniffuplight="0000"stoplight="0000"udsig<='1';state<=door_close;stoplight(1)='1'orfuplight(1)='1'thenudsig<='1';udsig<='1';state<=up;if;if;if;up=>--梯处于上升状态stair<=stair+1;--电梯楼层数加一ifposition<4(stoplight(position)='1'or
--梯在123层,本层有停站或上升请求时,则停止position=4(stoplight(position)='1'fdnlight(position)='1')--电梯处在4,并且有4停站或下降请求,则停止state<=door_close;if;down=>--电梯处在下降状态--电梯楼层数减一position:=position-1;ifposition>1(stoplight(position)='1'position=1(stoplight(position)='1'state<=door_close;if;doorlight<='1';ififstair<4(fuplight(position)='1'orstoplight(position)='1')--清除当前层上升和停站请求
if;ifstair>1(fdnlight(position)='1'orstoplight(position)='1')--清除当前层下降和停站请求if;if;state<=door_wait1;if;if;--号灯控制进程beginifreset='1'then--复位,寄存信号清零fuplight<="0000";fdnlight<="0000";ifbuttonclk='1'ifthen记忆各层上升请求if;ifthen
if;ifthenif;ifthen--上升和站请求清零stoplight(stair)<='0';if;ifthenif;ifthenif;ifthenif;ifthenstoplight(stair)<='0';if;ifstop1button='1'if;ifstop2button='1'if;ifstop3button='1'
--记忆各层下降请求下降和停站请求清零--记忆各层停站请求
if;ifstop4button='1'if;if;if;ctrlight;--楼层显进程begins<="000";ifstair=1dout<="0110000";thendout<="1101101";thendout<="1111001";thendout<="0110011";if;showlift;architecturechi;四电控器仿:在波形仿真中,根据实际,我们有必要做一些假设,即是:eq\o\ac(○,1)
外部请求上升的乘客,进入电梯后一定是按更高层的停站按钮;eq\o\ac(○,2)
外部请求下降的乘客,进入电梯后一定是按更低层的停站按钮;eq\o\ac(○,3)
如果有乘客进入电梯,则一定有停站请求;
eq\o\ac(○,4)
同一时刻有很多人按键的概率很小,所以我们认为请求信号都有一定的先后顺序。设定仿真时间长度为60s,liftclk信号为周期的时钟信号信号为周期0.1s时钟信号doorlight信号逻‘表示开门逻‘0表示关门。信号为逻辑‘’表示电梯处在上升模式,逻辑‘0’表示处在下降模式。是四位二进制向量,波形图中的0001表示一层有请求,0010表示二层有请求,0100表示三层有请求,表示四层有请求。图1所示的波形是在一层有上升请求的仿真波形,在reset
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年甘肃省酒泉市博物馆招聘工作人员备考题库附答案详解(培优b卷)
- 中国中煤能源集团有限公司2026届高校毕业生春季招聘备考题库附答案详解(综合卷)
- 2026福建漳州港务集团有限公司应届毕业生春季招聘6人备考题库含答案详解ab卷
- 2026海南海口市北京师范大学海口附属学校招聘42人备考题库及1套完整答案详解
- 2026新疆克州柔性引进紧缺人才招募82人备考题库含答案详解
- 2026吉林四平市事业单位招聘(含专项招聘高校毕业生)25人备考题库(2号)及1套参考答案详解
- 2026湖北咸宁市消防救援支队招录政府专职消防员、消防文员70人备考题库附参考答案详解(黄金题型)
- 2026北京联合大学招聘45人备考题库及答案详解【必刷】
- 2026江苏扬州大学招聘专职辅导员(硕士、博士)27人备考题库及答案详解【典优】
- 2026四川绵阳市河湖保护中心招聘5人备考题库带答案详解(b卷)
- 黑龙江哈尔滨德强学校2025-2026学年度六年级(五四制)下学期阶段学情调研语文试题(含答案)
- 2026年温州市瓯海区专职社区工作者公开招聘6人笔试参考试题及答案解析
- 医养结合模式下的老年护理策略
- 2026年社会工作者初级真题及答案
- 铁道概论(高职)PPT完整全套教学课件
- 08D800-7 民用建筑电气设计与施工-室外布线
- 车辆技术档案范本(一车一档)
- 0电连接安装施工作业指导书
- FZ/T 73072-2022矿工袜
- GB/T 15242.1-1994液压缸活塞和活塞杆动密封装置用同轴密封件尺寸系列和公差
- 友谊是什么(中文)
评论
0/150
提交评论