汇编语言模拟电梯实验报告书

合集下载

实验:五层电梯模拟实训

实验:五层电梯模拟实训

实验:五层电梯模拟实训
一、实验目的
1.了解电梯设备的组成部分
2.掌握电梯的点动操作
3.熟悉电梯的基本操作
4.掌握电梯的运行原理及在组态界面的运行状态
5.了解电梯运行的顺序逻辑
二、实验器材
五层五站电梯教学模型
三、实验步骤
1.按操作流程做好实训前的准备工作;
2.认识电梯设备的各组成部分。

3.将“运行/检修”选择开关置到“检修”档位;
4.通过点动按钮实验电梯的点动上升、下降、开门、关门等动作;
5.通过点动控制了解电梯的升降速度和开关门的动作情况和变速过程;
6.将“运行/检修”选择开关置到“运行”档位;
7.反复按下内呼或外呼按钮,观察电梯的升降情况,总结出电梯的运行
顺序逻辑关系;
8.打开station软件,,确认接线和通讯正常,依次启动电梯1-5F信号,
观察电梯运行状态与组态界面显示是否一致。

9.实训结束后按操作流程整理实训平台。

四、实验报告要求
1. 写出该电梯设备的组成部分
2. 写出开关置到“检修”档位时,具体操作步骤和电梯运行过程。

3、写出开关置到“自动”档位时,具体操作步骤和电梯运行过程。

4. 总结出电梯的升降速度和开关门的动作情况和变速情况。

5、依次启动电梯1-5F信号,总结电梯运行状态与组态界面显示是否一
致。

5、总结出电梯的运行顺序逻辑关系。

模拟电梯问题实验报告

模拟电梯问题实验报告

电梯模拟问题一、目的与要求1. 掌握线性结构的逻辑特点及存储实现;2. 根据选题,按规范化流程完成课程设计报告:⑴.提供需求分析。

(15分)⑵.列出概要设计。

(包括:抽象数据类型的描述;程序结构图或功能模块图)(20分)⑶.给出详细设计。

(包括:①存储结构的描述;②算法的详细设计,对复杂算法,最好画出其N-S流程图;③函数的调用关系图)(30分)⑷.进行调试分析(注:调试时遇到的问题及解决方法,程序的输出结果及对结果的分析)。

(15分)⑸. 整理设计总结。

(设计心得体会,以及其他总结信息等)(10分)⑹.附有程序清单(注:代码可具有适当注释,用来说明程序的功能、结构)。

(10分)二、设计步骤1、线性结构是有序数据元素的集合,存在着“一对一”的线性关系且只有一个首结点,一个尾结点,首结点只有后继没有前趋,尾结点只有前趋没有后继。

顺序表的存储结构包括顺序表和链表,顺序存储是指将线性表元素按照逻辑顺序依次存储在一组连续的地址单元中。

链式存储是通过结点中的链域将线性表中n个结点按其逻辑顺序链接在一起。

分为:单向链表,双向链表,循环链表。

2、(1)设计一个电梯模拟系统。

这是一个离散的模拟程序,因为电梯系统是乘客和电梯等“活动体”够成的集合,虽然他们彼此交互作用,但是他们的行为是基本独立的。

在离散的模拟中,一模拟时钟决定每个活动体的动作发生的时刻和顺序,系统在某个模拟瞬间处理有待完成的各种事情,然后把模拟时钟推进到某个动作预定要发生的下一个时刻。

可模拟某校五层教学楼的电梯系统,或者九层教学楼的电梯系统。

此程序的关键是模拟好电梯运行状态的转换与乘客进出的同步进行,需要一个函数判断电梯的运行状态,决定电梯的下一个运行状态如电梯的开门,关门,上升,下降,减速,加速等,也需要模拟时钟的函数来判断该运行哪个函数,也需要定义几个结构体存放结点信息。

(2)时钟函数:void DoTime(){//此函数用于模拟时钟while(1){if(Time>MaxTime)return;TestPeople();//两个始终都会被调用的函数Controler();struct Activity* p=activity.next;if(p==NULL){Time=MaxTime;}if(p&&Time>=p->time){//取出活动队头的,检测定时是否到了activity.next=p->next;p->fn();free(p);}Time++;}}其中activity是关键,它是一个链表在链表的头部是计时器时间最小的函数,根据模拟时钟判断是否调用这个函数以及删除这个节点。

电梯的实习报告(精选6篇)

电梯的实习报告(精选6篇)

电梯的实习报告电梯的实习报告(精选6篇)随着个人的素质不断提高,报告的使用频率呈上升趋势,其在写作上具有一定的窍门。

写起报告来就毫无头绪?下面是小编整理的电梯的实习报告5篇,欢迎阅读,希望大家能够喜欢。

电梯的实习报告篇1电梯中,门是掌管电梯出入的生命线。

门本身的质量与安装,保养的好差直接影响到电梯的舒适度与安全性!所以电梯门方面的实训是大家不容忽视的一课。

目前门电机使用较广的:有三相异步电机和三相同步电机。

原理就不便多说了。

此次实训主要是拆装门吊板,要求保证尺寸,垂直度、水平度及间隙、噪声等。

持续一个星期的实训让我受益匪浅,学到书本不能传授的知识,懂得实际与理论间的差距。

在此,谢谢指导老师对我的教诲,没有你们的帮助我们可能到现在还不能把那个中分双折门调整好,至少是不合格。

在老师的提示与帮助下我们能较快,较准确、有技巧地将轿门,层门安装好。

最终结果也比较满意。

这次实训我们的任务是一拆一装,谁都知道拆是三分钟的事。

足足装了两天我们组遇到的问题多多,到处走弯路,处处碰壁。

但是,我们还是坚持,因为我们相信只要坚持就一定能成功!我们边看书,边思考,必要时还会询问老师。

轿门安装需要注意的事项有:1门槛水平度,2门扇两个方向的垂直度(小于千分之一),3门扇与门扇间隙(1——6mm),4门扇无明显喇叭口,5开关门噪音,6门刀安装要求。

等等还有很多需要注意的要求。

很多时候理论与实际操作往往相差很大。

就像调整门扇的垂直度,如果没有一定的技巧没有一定的经验会觉得很吃力,到头来效果还很不客观。

刚开始指导老师没有给我们讲解需要注意的问题前我们就干活,做了很久,很累,但是还是没成效。

因为我们没有经验,不知道应该怎样走捷径也不知道技巧。

后来在不断的摸索中找到了技巧,懂得在干每个部位时需要注意的细节!需要把握的尺寸。

最后我们分组比赛!我就采用老师教我们的技巧。

在门板下塞垫片的方案,不但减少了测量的时间同时准确度更高。

同时,引用一紧二靠(即先把一扇门调节准确作为基准,再采用靠近贴紧的原则安装对应的门)就这样使我们在短短的四十分钟完成。

电梯的实习报告四篇

电梯的实习报告四篇

电梯的实习报告四篇电梯的实习报告四篇在人们素养不断提高的今天,报告使用的次数愈发增长,报告具有语言陈述性的特点。

你知道怎样写报告才能写的好吗?以下是小编精心整理的电梯的实习报告4篇,仅供参考,希望能够帮助到大家。

电梯的实习报告篇1一、电梯故障应对法电梯发生故障时,应首先切断电梯电源。

为了使电梯尽快重新运行,电梯管理员要把故障情况及时、详细的报告给专业维修人员。

二、简单故障诊断法管理员可以排除一些简单的故障。

1、关不上电梯门时,检查开关盒内的开关设定位置是否正常。

2、电梯门不能完全关上时,检查门槛槽内有无故障物。

3、检查电梯是否有人为阻碍,例如杂物阻止门的关闭,轿厢门的安全触板被强行动作等。

三、乘客被关在轿厢内时1、打电话告诉维修人员。

管理员应尽最大努力消除乘客的紧张情绪.与乘客通电话,直到维修人员赶来现场.告诉乘客轿厢内很安全,不要试图自行逃出轿厢。

2、切勿尝试强行释放乘客。

3、若确有已受过培训的电梯管理人员,在确保安全的情况下按“困人救援法”救出被困乘客。

四、谨防事故1、停电时。

告诉乘客停电的实际情况,劝乘客不要试图逃出轿厢(轿厢内辅助照明灯会自动照亮),电源恢复接通后,只要按轿厢内或门厅的楼层按钮,轿厢就会起动。

2、发生水灾时。

应当停用电梯,并采取行动阻截水流入电梯。

电梯再运行前,要先联络电梯维修员来进行检查。

3、发生火灾时。

指引所有乘客离开电梯到安全地方。

确认轿厢内无人后,切断电梯的电源开关。

火灾时,除消防人员执行援救任务外其他人员不许使用电梯逃难。

五、困人救援法电梯发生故障时,应及时通知电梯维修部门。

在专业维修人员到达之前,由经过训练的电梯管理救援人员,根据需要,依照下列步骤释放被困乘客。

1、故障电梯的轿厢位置确认。

在进行救援被困乘客时,先要确保自己安全,由机房控制柜或厅外的轿厢位置指示器确认轿厢位置。

(但在停电时,轿厢位置指示器不能指示,为确认轿厢位置,可用专用钥匙小心开启厅门,再用电筒于井道内确认轿厢位置。

VHDL电梯实验报告

VHDL电梯实验报告

三层电梯实验报告一、设计课题的任务要求题目三简易二层电梯控制器模拟真实电梯的运行情况,设计制作一个简易电梯控制器控制二层电梯的运行。

基本要求:1、电梯设有一层、二层外部呼叫按钮和内部一层、二层指定按钮(BTN)。

2、利用数码管显示电梯所在楼层,用LED显示电梯运行状态如上行、下行、开门、关门等。

提高要求:1、点阵显示楼层;2、用点阵显示楼层的上下滚动移出移入表示电梯的上行或下行运行方向3、增加为三层电梯控制器二、系统设计(包括设计思路、总体框图、分块设计)设计思路:直接做三层的电梯,用点阵显示楼层。

运用有限状态机,按电梯所在的状态进行讨论。

状态有:stopon1(电梯停在1层)、dooropen(开门),doorclose (关门),doorwait1(开门等待第1秒),doorwait2(开门等待第2秒),up(上升),down(下降),stop(停止)总体框图:分块设计:没有用分块设计,只是用了多个进程。

三、波形分析:起初有个三楼内部停楼请求,电梯开始上升,uplight亮,停在三楼,uplight灭,doorlight亮,保持开门3秒后关门,doorlight灭。

接着先后收到一个二楼外部上升请求和一个一楼外部上升请求,电梯开始下降,downlight亮,但电梯没有停在二楼而是直接下到一楼,downlight灭,doorlight亮,保持开门3秒后关门,doorlight灭,接着再开始上升,uplight 亮,上升到二楼,uplight灭,doorlight亮,保持开门3秒后关门。

这完全符合现实中电梯运行的方式。

四、源程序(要有注释)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY dianti ISPORT(clk:IN STD_LOGIC; --50M时钟信号reset:IN STD_LOGIC;--重置f1upbutton:IN STD_LOGIC;--一楼外部上升请求f2upbutton:IN STD_LOGIC;--二楼外部上升请求f2dnbutton:IN STD_LOGIC;--二楼外部下降请求f3dnbutton:IN STD_LOGIC;--三楼外部下降请求stop1button,stop2button,stop3button:IN STD_LOGIC;--内部停站请求uplight:OUT STD_LOGIC;--向上运行指示灯downlight:OUT STD_LOGIC;--向下运行指示灯doorlight:OUT STD_LOGIC;--开门关门指示灯灯亮表示开门灯灭表示关门row:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--点阵行col:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));--点阵列END dianti;ARCHITECTURE a OF dianti ISTYPE lift_state IS(stopon1,dooropen,doorclose,doorwait1,doorwait2,up,down,stop );--有限状态机SIGNAL nowlift,nextlift :lift_state:=stopon1;SIGNAL liftclk :STD_LOGIC;--1S电梯时钟信号SIGNAL tmp :INTEGER RANGE 0 TO 49999999:=0; SIGNAL position:INTEGER RANGE 1 TO 3:=1;--电梯位置SIGNAL fuplight :STD_LOGIC_VECTOR(3 DOWNTO1):="000";--外部上升请求按键指示灯SIGNAL fdnlight :STD_LOGIC_VECTOR(3 DOWNTO1):="000";--外部下降请求按键指示灯SIGNAL stoplight: STD_LOGIC_VECTOR(3 DOWNTO1):="000";--停站请求指示灯SIGNAL udsig :STD_LOGIC:='0';--0表示上升过程,1表示下降过程SIGNAL cnt:INTEGER RANGE 1 TO 5:=1;SIGNAL tmp2:INTEGER RANGE 0 TO 6:=1;SIGNAL po:INTEGER RANGE 1 TO 3:=1;BEGINfenpin :PROCESS(clk,reset)BEGINIF clk'EVENT AND clk='1' THENIF tmp=49999999 THEN tmp<=0;ELSE tmp<=tmp+1; END IF;IF tmp<25000000 THEN liftclk<='0';ELSF liftclk<='1'; END IF; END IF;END PROCESS fenpin;p1 :PROCESS(reset,liftclk)BEGINIF reset='1' THENnowlift<=stopon1; po<=1;ElSIF liftclk'EVENT AND liftclk='1' THENIF nowlift=up THENIF position=1 THEN po<=2;ELSIF position=2 THEN po<=3; END IF;ELSIF nowlift=down THENIF position=2 THEN po<=1;ELSIF position=3 THEN po<=2;END IF; END IF; nowlift<=nextlift;END IF;END PROCESS p1;p2:PROCESS(clk,reset,nowlift,position,f1upbutton,f2dnbutton,f 2upbutton,f3dnbutton,stop1button,stop2button,stop3button,fdnlight,fuplight,stoplight)BEGINIF clk'EVENT AND clk='1' THENIF f1upbutton='1' THEN fuplight(1)<='1';END IF;IF f2upbutton='1' THEN fuplight(2)<='1';END IF;IF f2dnbutton='1' THEN fdnlight(2)<='1';END IF;IF f3dnbutton='1' THEN fdnlight(3)<='1';END IF;IF stop1button='1' THEN stoplight(1)<='1';END IF;IF stop2button='1' THEN stoplight(2)<='1';END IF;IF stop3button='1' THEN stoplight(3)<='1';END IF;CASE nowlift ISWHEN stopon1=>fuplight<="000";fdnlight<="000";stoplight<="000";doorlight<='0';uplight<='0';downlight<='0';udsig<='0';position<=1;tmp2<=1;nextlift<=doorclose;WHEN doorwait1=>nextlift<=doorwait2;WHEN doorwait2=> nextlift<=doorclose;WHEN doorclose=>doorlight<='0';IF udsig='0' THENIF position=3 THENIF stoplight="000" AND fuplight="000" ANDfdnlight="000" THEN nextlift<=doorclose; ELSIF stoplight(3)='1' OR fdnlight(3)='1' THENnextlift<=stop;ELSE nextlift<=down;END IF;tmp2<=3;END IF;IF position=2 THENIF stoplight="000" AND fuplight="000"AND fdnlight="000"THEN nextlift<=doorclose;ELSIF stoplight(2)='1' OR fuplight(2)='1' THEN nextlift<=stop;ELSIF stoplight(3)='1' OR fdnlight(3)='1' THEN nextlift<=up;ELSIF fdnlight(2)='1' THEN nextlift<=stop;ELSIF stoplight(1)='1'OR fuplight(1)='1' THEN nextlift<=down;END IF; tmp2<=2;END IF;IF position=1 THENIF stoplight="000" AND fuplight="000" AND fdnlight="000"THEN nextlift<=doorclose;ELSIF stoplight(1)='1' OR fuplight(1)='1' THEN nextlift<=stop;ELSE nextlift<=up; END IF;tmp2<=1;END IF;END IF;IF udsig='1' THENIF position=3 THENIF stoplight="000" AND fuplight="000" AND fdnlight="000"THEN nextlift<=doorclose;ELSIF stoplight(3)='1' OR fdnlight(3)='1' THEN nextlift<=stop;ELSE nextlift<=down; END IF; tmp2<=3;END IF;IF position=2 THENIF stoplight="000" AND fuplight="000"AND fdnlight="000"THEN nextlift<=doorclose;ELSIF stoplight(2)='1' OR fdnlight(2)='1' THEN nextlift<=stop;ELSIF stoplight(1)='1' OR fuplight(1)='1' THEN nextlift<=down;ELSIF fuplight(2)='1' THEN nextlift<=stop;ELSIF stoplight(3)='1'OR fdnlight(3)='1' THEN nextlift<=up; END IF; tmp2<=2;END IF;IF position=1 THENIF stoplight="000" AND fuplight="000" AND fdnlight="000" THEN nextlift<=doorclose;ELSIF stoplight(1)='1' OR fuplight(1)='1' THEN nextlift<=stop;ELSE nextlift<=up;END IF;tmp2<=1;END IF;END IF;WHEN up =>udsig<='0';uplight<='1';position<=po;IF position=1 THENIF (stoplight(2)='1' OR fuplight(2)='1')THEN nextlift<=stop;ELSIF(stoplight(3)='1'OR fdnlight(3)='1')THEN nextlift<=up;ELSIF fdnlight(2)='1'THEN nextlift<=stop;ELSIF(stoplight(1)='1'ORfuplight(1)='1')THENnextlift<=down;END IF; tmp2<=4; END IF;IF position=2 THENIF (stoplight(3)='1' OR fdnlight(3)='1')THEN nextlift<=stop;ELSE nextlift<=down;END IF; tmp2<=6; END IF;WHEN down=>udsig<='1'; downlight<='1'; position<=po; IF position=3 THENIF (stoplight(2)='1' OR fdnlight(2)='1')THEN nextlift<=stop;ELSIF(stoplight(1)='1'OR fuplight(1)='1')THEN nextlift<=down;ELSIF ( fuplight(2)='1')THEN nextlift<=stop;ELSIF(stoplight(3)='1'OR fdnlight(3)='1')THENnextlift<=up; END IF;tmp2<=0;END IF;IF position=2 THENIF (stoplight(1)='1' OR fuplight(1)='1')THEN nextlift<=stop;ELSE nextlift<=up;END IF;tmp2<=5;END IF;WHEN stop=> uplight<='0';downlight<='0';nextlift<=dooropen;position<=po;IF position=1 THEN tmp2<=1;END IF;IF position=2 THEN tmp2<=2; END IF;IF position=3 THEN tmp2<=3; END IF;WHEN dooropen=>IF udsig='0' THENIF position=1 THEN fuplight(1)<='0';stoplight(1)<='0'; ELSIF position=3 THENstoplight(3)<='0';fdnlight(3)<='0';ELSIF position=2 THENIF stoplight(3)='0'AND fdnlight(3)='0'AND fuplight(2)='0' THEN fdnlight(2)<='0';END IF; fuplight(2)<='0';stoplight(2)<='0';END IF;ELSIF udsig='1' THENIF position=1 THEN fuplight(1)<='0';stoplight(1)<='0'ELSIF position=3 THENstoplight(3)<='0';fdnlight(3)<='0';ELSIF position=2 THENIF stoplight(1)='0'AND fuplight(1)='0'AND fdnlight(2)='0' THENfuplight(2)<='0';END IF;fdnlight(2)<='0';stoplight(2)<='0';END IF;END IF;doorlight<='1';nextlift<=doorwait1;END CASE;END IF;END PROCESS p2;P5:PROCESS(tmp,clk) --控制点阵的进程BEGINIF clk'EVENT AND clk='1' THEN --上升沿有效IF cnt=5 THEN cnt<=1;ELSE cnt<=cnt+1;END IF;CASE TMP2 ISWHEN 1=> CASE cnt ISWHEN1=>ROW<="01111111";COL<="10000000";WHEN2=>ROW<="10111111”;COL<="10000000";WHEN3=>ROW<="11011111";COL<="10000000";WHEN4=>ROW<="11101111";COL<="10000000";WHEN 5=>ROW<="11110111"COL<="10000000";--1END CASE;WHEN 2=> CASE cnt ISWHEN1=>ROW<="01111111";COL<="11100000";WHEN2=>ROW<="10111111";COL<="10000000";WHEN3=>ROW<="11011111";COL<="11100000";WHEN4=>ROW<="11101111";COL<="00100000";WHEN5=>ROW<="11110111";COL<="11100000";--2END CASE;WHEN 3=> CASE cnt ISWHEN1=>ROW<="01111111";COL<="11100000";WHEN2=>ROW<="10111111";COL<="10000000";WHEN3=>ROW<="11011111";COL<="11100000";WHEN4=>ROW<="11101111";COL<="10000000";WHEN5=>ROW<="11110111";COL<="11100000";--3END CASE;WHEN 4=> CASE cnt ISWHEN1=>ROW<="01111111";COL<="10001100";WHEN2=>ROW<="10111111";COL<="10001100";WHEN3=>ROW<="11011111";COL<="10000100";4=>ROW<="11101111";COL<="10000100";WHEN5=>ROW<="11110111";COL<="10000100";--shang1END CASE;WHEN 5=> CASE cnt ISWHEN1=>ROW<="01111111";COL<="11100100";WHEN2=>ROW<="10111111";COL<="10000100";WHEN3=>ROW<="11011111";COL<="11100110";WHEN4=>ROW<="11101111";COL<="00100110";WHEN5=>ROW<="11110111";COL<="11100100";--xia2END CASE;WHEN 6=> CASE cnt ISWHEN1=>ROW<="01111111";COL<="11101100";2=>ROW<="10111111";COL<="10001100";WHEN3=>ROW<="11011111";COL<="11100100";WHEN4=>ROW<="11101111";COL<="00100100";WHEN5=>ROW<="11110111";COL<="11100100";--shang2END CASE;WHEN 0=> CASE cnt ISWHEN1=>ROW<="01111111";COL<="11100100";WHEN2=>ROW<="10111111";COL<="10000100";WHEN3=>ROW<="11011111";COL<="11100110";WHEN4=>ROW<="11101111";COL<="10000110";WHEN5=>ROW<="11110111";COL<="11100100";--xia3END CASE;END CASE;END IF;END PROCESS;END a;五、功能说明该电梯系统实现的是三层点阵显示电梯系统。

单片机实验报告-模拟电梯设计

单片机实验报告-模拟电梯设计

单片机实验报告-------------------------模拟电梯设计目录一、基本摘要-------------------------------------------------------二、实验要求-------------------------------------------------------三、实验方案-------------------------------------------------------四、实验流程图----------------------------------------------------五、实验代码-------------------------------------------------------六、实验总结-------------------------------------------------------------基本摘要:该实验在ADEK5196实验箱上实现电路设计。

采用8255控制键盘查询,8279控制的8段数码管(HL6,HL7)显示来表示当前电梯所在层,LED控制楼层亮灯情况,串行口扩展并行输出接口的8段数码管(HL5)显示电梯运行状态“U”或“P”。

通过编写的汇编程序来控制实现电梯的模拟。

实验要求:用键盘、按钮、八段码和LED模拟电梯工作过程。

楼层设为8层,键盘数字键1-8用来键入希望停的楼层,8个LED显示希望停的楼层,八段码指示电梯当前所在楼层,按扭用来启、停电梯。

电梯正常运行时以每2秒1层的速度上升或下降。

要求“电梯”能按以下方式运行:(1)设当前电梯停在某层(八段码显示相应楼层,8个LED全灭)。

键入1-8数字键,如键入的数字与当前电梯停层同,则不发生任何动作;若不同则相应楼层的LED亮。

如再按运行键,则电梯自动判别上升或下降(在运行过程中八段码显示楼层变化)一直到达希望停的楼层(八段码显示该楼层,相应LED灭);(2)设当前电梯正在上升或下降运行(此时八段码显示楼层变化,LED指示希望抵达的楼层),若键入新的希望停的楼层数字(相应的LED亮),则对同方向(上升或下降)未到的楼层能停,对其他情况则先停原希望停的楼层,然后按运行键后继续进行)。

单部电梯设计与仿真实验报告

单部电梯设计与仿真实验报告

单部电梯设计与仿真实验报告
【原创版】
目录
1.实验目的
2.实验内容
3.实验设计
4.实验结果与分析
5.总结
正文
一、实验目的
本实验旨在通过设计与仿真实验,使学生深入理解电梯控制系统的工作原理,掌握电梯控制电路的设计方法,并提高学生的实际操作能力。

二、实验内容
本次实验主要分为两个部分:电梯控制电路设计与电梯运行仿真实验。

1.电梯控制电路设计:根据电梯的工作原理,设计出电梯控制电路,包括电梯的上下行控制、楼层显示、电梯门控制等部分。

2.电梯运行仿真实验:通过编写仿真程序,模拟电梯的运行过程,验证电梯控制电路的设计是否合理。

三、实验设计
1.硬件设计:搭建电梯控制电路的硬件平台,包括电源、电机、传感器、控制器等元器件。

2.软件设计:编写电梯控制电路的软件程序,实现电梯的自动控制。

3.仿真实验:使用仿真软件,模拟电梯的运行过程,观察电梯控制电
路的工作情况。

四、实验结果与分析
1.实验结果:在完成电梯控制电路设计和仿真实验后,电梯能够按照预期进行上下行运行,楼层显示和电梯门控制等功能也正常工作。

2.结果分析:通过实验结果可以得出,电梯控制电路设计合理,软件程序运行稳定,能够满足电梯的正常运行需求。

五、总结
本次实验使学生深入了解了电梯控制系统的工作原理,掌握了电梯控制电路的设计方法,并通过仿真实验验证了设计方案的可行性。

数据结构——电梯模拟的报告

数据结构——电梯模拟的报告

数据结构——电梯模拟的报告数据结构——电梯模拟的报告⒈引言在现代社会,电梯已经成为了人们生活中不可或缺的一部分。

电梯的运行和调度涉及到众多复杂的算法和数据结构。

为了提高电梯的运行效率和用户体验,本报告将介绍一种电梯模拟的数据结构设计。

⒉背景和目标在城市高楼大厦中,电梯的运行和调度是一个极其重要的问题。

每天数以万计的乘客需要借助电梯上下楼,所以我们需要设计一种电梯调度算法来保证乘客能够快速、方便地到达目的地。

本报告旨在介绍一种基于数据结构的电梯模拟方案,提高电梯的运行效率和用户体验。

⒊系统架构在电梯模拟系统中,主要包括以下几个部分:电梯控制器、电梯队列、乘客请求队列和电梯状态管理模块。

电梯控制器负责接收乘客的请求并将其分配给特定的电梯,电梯队列记录电梯所在楼层和运行方向,乘客请求队列保存尚未得到满足的乘客请求,电梯状态管理模块负责监控电梯的状态和运行情况。

⒋数据结构设计⑴电梯队列电梯队列使用循环数组来保存电梯所在楼层和运行方向。

每个电梯对应一个循环数组,数组中的每个元素表示一个楼层的状态,包括空闲、上升和下降。

⑵乘客请求队列乘客请求队列使用链表来保存尚未得到满足的乘客请求。

每个节点表示一个乘客请求,包括乘客所在楼层和目标楼层。

⑶电梯状态管理模块电梯状态管理模块使用状态机来管理电梯的状态和运行情况。

状态机包括电梯的空闲状态、运行状态和停止状态。

⒌算法设计⑴电梯调度算法电梯调度算法负责根据乘客的请求选择最佳的电梯响应。

常用的电梯调度算法包括最短路径算法、最佳负载均衡算法等。

⑵电梯运行算法电梯运行算法负责根据电梯的状态和所运载乘客的请求,确定电梯下一步的行动。

常用的电梯运行算法包括最近停靠楼层算法、深度优先搜索算法等。

⒍实现和测试在本章节中,将介绍电梯模拟系统的实现细节和测试方法。

主要包括编程语言的选择、具体实现算法的具体实现和性能测试。

⒎总结和展望在本章节中,将总结本文提出的电梯模拟方案的优点和不足,提出可能的改进方向,并展望未来可能的研究方向。

数据结构——电梯模拟的报告

数据结构——电梯模拟的报告

数据结构——电梯模拟的报告数据结构——电梯模拟的报告1. 简介本文档将介绍电梯模拟的实现过程和基本原理。

通过模拟电梯的行为,我们可以更好地理解数据结构在实际应用中的作用和效果。

2. 问题描述在楼房中,电梯通常被用来运送乘客。

电梯内部有多个按钮,表示不同楼层的乘客需求。

乘客可以按下按钮来请求乘坐电梯到达特定楼层。

电梯的运行顺序应该是合理的,比如不会从高楼层下降到低楼层。

本模拟的电梯系统需要满足以下要求:- 电梯能接收来自乘客的请求。

- 电梯能根据请求的楼层,按照合理的顺序运行,将乘客送到目标楼层。

- 当电梯到达目标楼层,乘客可以进入或离开电梯。

- 电梯需要实时更新运行状态,如目标楼层、当前楼层等。

3. 数据结构设计为了实现电梯模拟,我们需要设计合适的数据结构来存储电梯的状态和乘客请求。

以下是我们设计的关键数据结构:3.1 电梯状态电梯的状态包括当前楼层、目标楼层和运行方向等信息。

我们可以使用一个结构体来表示电梯的状态:```c++struct ElevatorState {int currentFloor;int targetFloor;Direction direction;};```其中,`currentFloor`表示当前所在楼层,`targetFloor`表示目标楼层,`direction`表示电梯的运行方向。

3.2 乘客请求乘客请求包括乘客所在楼层和目标楼层。

我们可以使用一个结构体来表示乘客请求:```c++struct Request {int fromFloor;int toFloor;};```其中,`fromFloor`表示乘客所在楼层,`toFloor`表示目标楼层。

3.3 电梯控制器电梯控制器用于管理电梯的状态和乘客请求。

我们可以使用一个队列来存储乘客请求,使用一个变量来保存电梯的当前状态。

以下是电梯控制器的设计:```c++class ElevatorController {private:std::queue<Request> requests;ElevatorState state;public:void addRequest(Request request);void processRequests();};```其中,`addRequest`方法用于添加乘客请求到队列中,`processRequests`用于处理乘客请求并控制电梯的运行。

8086微机汇编实验报告

8086微机汇编实验报告

电梯模拟实验一、实验目的通过综合实验使学员复习并熟练掌握各个模块电路功能、基本原理、线路连接和驱动方法。

自己编写嵌入式代码进行驱动,掌握相关的程序设计、电路测试的基本能力。

通过动手实践进一步加深对理论知识的理解,提高动手能力。

二、实验原理1.使用模块:本实验使用了8254、8255、七段数码管、4*4键盘、步进电机、喇叭6大模块来进行模拟电梯的综合实验。

2.连接电路:(1).使用8255的C口的PC0~PC7连接4*4键盘的行3~列0,接收4*4键盘输入;(2).将8255的A口PA0~PA7分别与七段数码管的段码驱动输入端a~dp相连,位码驱动输入端S0接+5V,S1~S3接GND,编程实现在其显示电梯所处的楼层;(3).使用8255的B口的PB0~PB3分别与步进电机的驱动输入端BA~BD相连,编程实现根据键盘输入实现顺时针(反时针)转动;(4).8254的CLK0接1MHz时钟,GATE0接8255的PB5,OUT0和8255的PB4分别接与门的两个输入端A和B,与门输出端Y连接喇叭,编程实现电梯到达所要求的楼层后发出设定的声音进行提示,具体实验电路如下图.3.接线:4.程序流程三、关键点及难点1.关键点(1).8255的控制方式8255是通用并行接口芯片,但在具体应用时,要根据实际情况选择工作方式,连接硬件电路(外设),待进行初始化编程之后才能成为某一专用的接口电路。

8255的初始化编程比较简单,只需要一个方式控制字就把3个端口设置完成。

方式控制字决定端口A、B和C的工作方式,如下图所示。

(2).I/O端口值的读写实验中,会对大量的I/O端口进行读写操作,我们通过I/O端口对相关的硬件进行数据的读写,在进行数据读写的过程中,要清楚相关的函数操作以及写入的bit位的值对硬件起到怎样的控制。

下面是C语言方式对I/O端口读写进行操作的相关函数:(3).七段数码管工作原理实验所用的七段数码管为共阴型,段码采用同相驱动,输入加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。

仿真电梯实训报告

仿真电梯实训报告

一、实训目的随着城市化进程的加快,电梯作为高层建筑中不可或缺的交通工具,其安全性、舒适性和智能化水平越来越受到人们的关注。

为了提高我国电梯行业从业人员的专业技能,本实训旨在通过仿真电梯系统的操作和调试,让学生掌握电梯的基本结构、工作原理和操作技能,提高学生的实际动手能力和故障排除能力。

二、实训时间2023年3月15日——2023年3月20日三、实训地点XX职业技术学院电气工程系电梯实训室四、实训内容1. 仿真电梯系统概述仿真电梯系统主要由以下几部分组成:控制系统、驱动系统、轿厢、门系统、井道等。

通过仿真电梯系统,学生可以了解电梯的基本结构和工作原理,掌握电梯的安装、调试和维护技能。

2. 仿真电梯控制系统操作(1)系统启动:打开电源,进入电梯控制系统界面。

(2)设置参数:根据实际需求设置电梯的运行参数,如速度、楼层、开门时间等。

(3)操作电梯:通过控制面板上的按钮进行电梯的启动、停止、开门、关门等操作。

(4)故障排除:根据电梯运行过程中的故障现象,分析故障原因,进行相应的处理。

3. 仿真电梯驱动系统操作(1)检查驱动系统:检查电机、电缆、减速器等部件的完好情况。

(2)调整驱动系统:根据实际需求调整驱动系统的参数,如电机转速、减速器传动比等。

(3)运行测试:启动电梯,进行驱动系统的运行测试,确保系统运行正常。

4. 仿真电梯轿厢、门系统和井道操作(1)检查轿厢、门系统和井道:检查轿厢、门系统和井道的完好情况。

(2)调整轿厢、门系统和井道:根据实际需求调整轿厢、门系统和井道的参数,如轿厢尺寸、门开合速度等。

(3)运行测试:启动电梯,进行轿厢、门系统和井道的运行测试,确保系统运行正常。

五、实训成果1. 学生掌握了仿真电梯的基本结构和工作原理。

2. 学生熟悉了仿真电梯控制系统的操作方法。

3. 学生具备了一定的故障排除能力。

4. 学生提高了实际动手能力和团队协作能力。

六、实训心得1. 仿真电梯实训有助于提高学生的专业技能,为今后从事电梯行业打下坚实基础。

模拟电梯的设计与实现实验报告(微机原理)

模拟电梯的设计与实现实验报告(微机原理)

2011年9月目录一理论部分 (2)1课题要求与内容 (2)2 系统方案设计 (3)3 系统硬件设计 (3)4 系统软件设计 (5)二实践部分 (5)1 系统硬件原理简介 (6)2 系统硬件调试中出现的问题及解决措施 (6)3 系统软件 (6)3.1 软件设计 (6)3.2软件调试中出现的问题及解决措施 (6)三附录 (10)一、理论部分理论设计课题名称:模拟电梯的设计与实现1课题要求与内容1.1设计基本要求用键盘、按钮、发光二极管和LED显示单元来模拟电梯工作过程。

楼层设为8层,用键盘键入希望停的楼层,8 个发光二极管显示希望停的楼层,LED 指示电梯当前所在楼层,按钮用来启、停电梯。

电梯正常运行时以每 2 秒1层的速度上升或下降。

并在到达相关楼层时发错声音提示。

1.2提高要求设计几个按钮,模拟更多的电梯运行功能,如:直达按钮。

若按此按钮,电梯按直达方式运行,即对运行期间新键入的停靠楼层(即使是同方向未到楼层)亦不停,直达终点楼层;急停按钮。

电梯运行中,若按此按钮,则电梯立即停在下一到达的楼层。

2.实验内容电梯工作按以下方式运行:2.1假设当前电梯停在某层(LED显示相应楼层,8个发光二极管全灭)。

键入数字键,如键入的数字与当前电梯停靠层相同,则什么也不做,若不同则相应楼层的发光二极管亮;电梯自动判别上升或下降(在运行过程中用八段码来显示楼层变化)一直到达希望停的楼层(八段码显示该楼层,相应LED 灭)。

2.2假设当前电梯正在上升或下降运行(此时八段码显示楼层变化,LED 指示希望抵达的楼层),若键入新的希望停靠的楼层数字(相应的LED 亮),则对同方向(上升或下降)未到的楼层能停靠,对其它情况则先停靠原先希望停的楼层,然后继续运行)。

如下几例:1)设电梯当前在2层,向上运行,LED指示希望在4层停,此时若键入3,则电梯将在3楼停,然后继续运行至4层停;2)同上情况,若键入的不是3而是5,则电梯将先停在4层,然后运行至5层停;同上情况,若键入的不是3(或5),而是1,则电梯先停在4层,然后运行至1层停。

单部电梯设计与仿真实验报告

单部电梯设计与仿真实验报告

单部电梯设计与仿真实验报告
摘要:
一、实验目的
二、实验原理
三、实验环境和设备
四、实验步骤
五、实验结果与分析
六、实验总结
正文:
一、实验目的
本次实验的主要目的是通过设计和仿真一部电梯,了解电梯的运行原理和控制系统,熟悉电梯设计和仿真实验的方法和流程。

二、实验原理
电梯是一种垂直运输工具,通过电机驱动电梯轿厢上下运动,实现人员的升降。

电梯控制系统通过对电梯轿厢的位置和速度进行实时监控和调节,确保电梯的安全和稳定运行。

三、实验环境和设备
实验环境:计算机仿真软件
实验设备:计算机
四、实验步骤
1.了解电梯的构造和原理
2.确定电梯的设计参数和性能要求
3.选择合适的电梯控制系统
4.进行电梯仿真实验
5.分析实验结果
五、实验结果与分析
1.电梯仿真实验结果:电梯能够正常运行,响应速度和稳定性良好。

2.结果分析:通过仿真实验,验证了电梯控制系统的有效性和可靠性,同时也证明了电梯设计的合理性。

六、实验总结
本次实验通过对电梯的设计和仿真实验,深入了解了电梯的运行原理和控制系统,熟悉了电梯设计和仿真实验的方法和流程。

完整7层电梯课程设计实验报告

完整7层电梯课程设计实验报告

摘要本系统为简单的电梯模型,采用AT89C51作为信号的检测和控制核心,利用KEIL编写控制电梯的汇编语言程序,并使用PROTUS软件对电梯模型的按键,屏幕显示,马达运行状态进行仿真。

在电梯模型中电梯状态的显示采用了连接有3-8译码器连接七个发光二极管分别表示一到七楼,LED点亮表示电梯处于当前楼层,楼层显示采用4段码LED,楼层按键采用七个按键式开关,以及一个拨动开关,利用直连法与AT89C51连接,分别表示一到七层以及紧急开关。

电梯运行的速度控制采用直流减速电机。

当电梯上行时马达正转,下行时马达反转,到达目的楼层后马达停转。

基于这些完备而可靠地硬件设计,使用了一套独特的软件算法,实现了对模拟电梯运动的精确控制。

【关键词】:汇编语言 PROTUS 电梯模型 AT89C51 3-8译码器紧急开关目录摘要--------------------------------------------------------------------------------Ⅰ第1章概述--------------------------------------1 1.1专业课程设计题目-----------------------------------1 1.2 专业课程设计的目的与内容--------------------------1 1.2.1 目----------------------------------------------1 1.2.2 内容--------------------------------------------1 1.3 方案的研讨与制定----------------------------------1 1.4人员分工及项目功能模块化设计----------------------2 1.4.1 人员分工----------------------------------------2 1.4.2功能模块化设计----------------------------------2 第2章项目硬件方案----------------------------------5 2.1 系统方框图----------------------------------------5 2.2 系统器件选型--------------------------------------5 2.3 系统整体原理图------------------------------------6 2.3.1 整体原理综述-----------------------------------6 2.3.2 各模块原理综述---------------------------------7 第3章系统软件方案-----------------------------------8 3.1 系统I/O分配--------------------------------------8 3.2主程序及流程图------------------------------------83.3主要功能模块程序及流程图--------------------------8 第4章联机调试过程中的问题及解决---------------------11 第5章课程设计扩展和小结-----------------------------12 致谢----------------------------------------------13 参考文献----------------------------------------------14 附录--------------------------------------------------15第1章概述1.1课程设计题目基于单片机的电梯运行控制1.2 目的、内容1.2.1目的运用所学的计算机、传感器、电子电路、自动控制等知识,在教师的指导下,结合某一专题独立地开展自动化专业的综合设计与实验,锻炼学生对实际问题的分析和解决能力,提高工程意识,为以后的毕业设计和今后从事相关工作打下一定的基础。

《汇编语言》实验报告模板实验一

《汇编语言》实验报告模板实验一

成 绩 评 定 教师签名: 2015 年 月 日
1. 熟练操作宏汇编的开发环境,熟悉汇编语言的编译工具(MASM6.11)及调试器
(Windbg)的使用。
2. 掌握汇编语言的寻址方式和常用指令。 3. 掌握汇编语言基本的程序设计方法和调试手段。 4. 掌握子程序和宏指令的设计和调试手段。
实验要求:
1. 上机前应做好充分的准备。对选定的实验题要先进行设计包括程序框图、数据
2、执行结果截图
内容包括:总结经验提高编程及调试能力。调试情况,如上机时遇到的问题及解决的办 法,观察到的现象及其分析,对程序设计技巧的总结及分析等;程序的输出结果及对结 果的分析;实验的心得体会等。
实 验 结 果 分 析 及 心 得 体 会
通过本次实验熟悉了汇编语言的寻址方式和一些常用指令(运算,循环,过程及 其调用) ,了解了汇编语言中程序的特点,掌握了汇编语言中程序编写的方法,完善了 编写一个完整的简单程序的整体思维结构。
grade 2 ? percent 2 ? grade 3 ? percent 3 ? 75 20 82 60
score is : 81 提示: 总评成绩 = (期中成绩×百分比 1+实验成绩×百分比 2+期末成绩×百分比 3)/100
1、程序清单。 数据段:
.DATA ; reserve storage for data grade1 DWORD ? grade2 DWORD ? grade3 DWORD ? string BYTE 20 DUP (?) prompt1 BYTE "Please input the grade1 : ",0 prompt2 BYTE "Please input the percent of the grade1 : ",0 prompt3 BYTE "Please input the grade2 : ",0 prompt4 BYTE "Please input the percent of the grade2 : ",0 prompt5 BYTE "Please input the grade3 : ",0 prompt6 BYTE "Please input the percent of the grade3 : ",0 prompt7 BYTE "The result is : ",cr,lf,0 sum DWORD ? result BYTE 20 DUP (?) BYTE cr,lf,0

电梯控制系统的模拟实验

电梯控制系统的模拟实验

电梯控制系统的模拟
在电梯控制系统的模拟实验区完成本实验。

一、实验目的
1、通过对工程实例的模拟,熟练地掌握PLC的编程和程序调试方法。

2、进一步熟悉PLC的I/O连接。

3、熟悉五层楼电梯采用轿厢外按钮控制的编程方法。

二、控制要求
电梯由安装在各楼层厅门口的上升和下降呼叫按钮进行呼叫操纵,其操纵内容为电梯运行方向。

电梯轿箱内设有楼层内选按钮S1~S5,用以选择需停靠的楼层。

L1为一层指示、L2为二层指示、L3为三层指示、L4为四层指示、L5为五层指示,SQ1~SQ5为到位行程开关。

电梯上升途中只响应上升呼叫,下降途中只响应下降呼叫,任何反方向的呼叫均无效。

例如,电梯停在一层,在三层轿箱外呼叫时,必须按三层上升呼叫按钮,电梯才响应呼叫(从一层运行到三层),按三层下降呼叫按钮无效;反之,若电梯停在四层,在三层轿箱外呼叫时,必须按三层下降呼叫按钮,电梯才响应呼叫(从四层运行到三层),按三层上升呼叫按钮无效,依此类推。

输入/输出的分配如下:
(一)输入:
(二)输出:
三、编制梯形图并写出实验程序,实验梯形图参考图。

单片机实验报告-模拟电梯设计

单片机实验报告-模拟电梯设计

单片机实验报告-------------------------模拟电梯设计目录一、基本摘要-------------------------------------------------------二、实验要求-------------------------------------------------------三、实验方案-------------------------------------------------------四、实验流程图----------------------------------------------------五、实验代码-------------------------------------------------------六、实验总结-------------------------------------------------------------基本摘要:该实验在ADEK5196实验箱上实现电路设计。

采用8255控制键盘查询,8279控制的8段数码管(HL6,HL7)显示来表示当前电梯所在层,LED控制楼层亮灯情况,串行口扩展并行输出接口的8段数码管(HL5)显示电梯运行状态“U”或“P”。

通过编写的汇编程序来控制实现电梯的模拟。

实验要求:用键盘、按钮、八段码和LED模拟电梯工作过程。

楼层设为8层,键盘数字键1-8用来键入希望停的楼层,8个LED显示希望停的楼层,八段码指示电梯当前所在楼层,按扭用来启、停电梯。

电梯正常运行时以每2秒1层的速度上升或下降。

要求“电梯”能按以下方式运行:(1)设当前电梯停在某层(八段码显示相应楼层,8个LED全灭)。

键入1-8数字键,如键入的数字与当前电梯停层同,则不发生任何动作;若不同则相应楼层的LED亮。

如再按运行键,则电梯自动判别上升或下降(在运行过程中八段码显示楼层变化)一直到达希望停的楼层(八段码显示该楼层,相应LED灭);(2)设当前电梯正在上升或下降运行(此时八段码显示楼层变化,LED指示希望抵达的楼层),若键入新的希望停的楼层数字(相应的LED亮),则对同方向(上升或下降)未到的楼层能停,对其他情况则先停原希望停的楼层,然后按运行键后继续进行)。

电梯实习报告合集7篇

电梯实习报告合集7篇

电梯实习报告电梯实习报告合集7篇随着个人素质的提升,需要使用报告的情况越来越多,报告具有语言陈述性的特点。

一听到写报告就拖延症懒癌齐复发?以下是小编整理的电梯实习报告7篇,仅供参考,大家一起来看看吧。

电梯实习报告篇11、目的通过执行定期保养规程,保证电梯设备的正常、稳定、可靠运行。

2、适用范围适用于各管理处管辖的电梯定期保养工作。

3、职责3.1电梯维修保养单位负责参考本规程具体执行电梯定期保养工作,并填写《电梯定期保养记录》,交设备部保管。

3.2管理处之机电主管和电梯工负责跟踪检查,并填写《公共设施设备维修保养验证记录表》、《公共设施设备维修保养过程记录表》。

4、保养规程4.1机房4.1.1先关闭电源:控制柜扫尘、各接电点清洁、主要接触器、电阻、电抗器等的清洁及引线螺丝收紧。

4.1.2电动机、测速发电机、卷扬机、曵引轮的检查及油质油量的检查。

4.1.3卷扬机牙箱、油量、油质的检查。

4.1.4限速器及限速器的开关的检查、清扫,活动部注油。

4.1.5制动器的行程、动作、灵活性,制动瓦磨耗的检查及活动部位注油。

4.1.6选层器详细检查及清扫注油。

4.1.7电动机冷却风扇注油。

4.1.8各回路绝缘电阻测量(半年一次)。

4.2机身及井道:4.2.1保养时从最高层向下保养(用检修速度)。

4.2.2轿顶清扫及轿顶各操作开关有效确认。

(安全窗开关、急停开关、安全钳开关、检修开关、钢带防断开关等)。

4.2.3内外门开闭动作及门脚胶检查。

4.2.4内外门藕合检查,清扫注油.开关门轮、传动装置、吊门轮、限位轮、门联锁、门头链条、路轨检查清扫。

4.2.5内外门闸销及厅轿门联锁开关内部检查及接点清洁,厅轿门联锁开关接线检查。

4.2.6接合开关装置、快慢门的各活动部位清扫、注油。

4.2.7各种撞动开关、刀、接点检查。

4.2.8钢带清扫、抹油,钢带开关检查。

4.2.9超重开关清扫、注油。

4.2.10行车情况检查。

(起动、行车、加减速及停车之平稳性、振动、噪音程度、平层差等)4.2.11各讯号灯检查及灯泡更换。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.实训目的 (1)二.实训内容与要求 (1)1.基本内容 (2)2.实训要求 (2)三.实训设计思路 (1)1.总体思路 (3)2.硬件设计 (4)3.软件设计 (6)四.模拟电梯源代码 (9)五.加载调试 (28)六.实训总结 (30)1.出现的问题及排除方法 (30)2.实训注意事项 (30)3.心得体会 (1)七.参考文献 (31)一.实训目的1.了解电梯调度算法,运用汇编语言编写程序。

2.利用微机实验系统来模拟电梯,实现电梯功能。

3.进一步掌握微机接口的设计方法,正确连各芯片引脚。

4. 加强学生实际应用能力及综合知识运用能力的培养。

二.实训内容与要求绘制流程图、根据流程图编写程序、选用硬件电路编制应用软件、自主选择硬编制应用软件,并画出详细原理图。

2.实训要求用键盘、按钮、八段码和LED模拟电梯工作过程。

楼层设为8层,键盘数字键1~8用来键入希望停的楼层,8个LED显示希望停的楼层,八段码指示电梯当前所在楼层,按钮用来启、停电梯。

电梯正常运行时以每2秒1层的速度上升或下降。

要求“电梯”能按以下方式运行:(1)设电梯停在某层。

键入1~8数字键,如数字与当前电梯停层同,则什么亦不动作,若不同则相应楼层的LED亮;如按运行键,则电梯自动判别上升或下降一直到达希望停的楼层。

(2)设电梯正在上升或下降运行,若键入新的希望停的楼层数字,则对同方向未到的楼层能停,对其它情况则先停原希望停的楼层,然后按运行键后继续运行)。

如下几例:电梯在2层,向上运行,LED希望在6层停,若键入4,则将在4楼停,若按运行键,则运行至6层停;若键入的不是4而是8,则电梯将先停在6层,再按运行键,运行至8层停若键入的不是4(或8),而是1,则电梯先停在6层,再按运行键,运行至1层停。

三.实训设计思路利用非编码键盘、LED显示器、八段数码管等模块。

有8个楼层,用8个按键模拟电梯中的请求按钮,用8个按键模拟8个楼层每层向上请求的按钮,再用8个模拟8个楼层每层向下请求的按钮。

非编码键盘有16个键,可以用1-8号键模拟电梯内的按钮。

当电梯静止状态时,无论外部哪一层有请求,电梯都由静止状态转入向上或向下运行的状态,直到到达请求的楼层;当电梯处于向上运行的状态时,此时高于该楼层向上的请求和内部请求级别最高,其次是所有楼层向下的请求,再次是低于该楼层向上的请求;当电梯处于向下运行的状态时则情况相反。

由于中断级别在随着电梯所处楼层的不同而变化,定义三个单字节变量REQ_U、REQ_D和REQ_IN分别存储电梯每一层向上、向下和内部的请求,每一个变量用低8位,每一位代表一层。

8253定时器每隔20ms产生一次中断,中断程序便去执行扫描键盘,当扫描到有电梯内部或者外部按键时,将请求存储到变量中。

每到一个状态时再检查请求变量REQ_U、REQ_D和REQ_IN的值,根据电梯的运行方向和变量中的请求,来决定电梯下一步的运行。

设电梯的当前楼层为floor(floor=1~8),运行方向为dir(dir=0,向上;dir=1,向下),在电梯运行的工程中,用数码管输出floor值显示当前的楼层。

LED输出REQ_IN的值显示电梯内已经请求的楼层。

图1 系统结构框图2.硬件设计由于采用了PC 机资源和微机实验平台,不需要其他的硬件电路。

利用了微机平台上的8253定时/计数器、8255并行接口单元、LED 单元、非编码键盘、数码管显示单元等等。

图2 硬件结构图主要的模块如下: 可编程定时/计数器8253定时/计数器8253主要是用于定时20ms ,触发中断进行键盘扫描。

电路连线是CLOCK0接Q6,分频后频率为46875Hz ,OUT0接中断IRQ2,每20ms 中断一次,GATE0接5v 。

计数器的初值应该是3A9H 。

8255并行接口单元8255主要是用于键盘的扫描和发光二极管的数据输出。

所以用8255A 口的低5位接5个发光二极管,B 口低4位接非编码键盘的列线,高4位接键盘的行线。

LED 显示系统用1格LED 显示器,选用动态显示方式。

,显示程序在循环过程中一直被调用,从而实时地被显示出来。

已知用于LED 数码管显示的编码表为: LEDtable DB 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hDB 80h,90h,88h,83h,0c6h,0c1h,86h,8eh 它依次表示0~9,A ~F 这16个数码的显示编码。

数字对应数码管显示控制转换字节(共阴编码)显示--HGFE,DCBA --编码 0 --0011,1111--0x3F; 1 --0000,0110--0x06;2 --0101,1011--0x5B;3 --0100,1111--0x4F;4 --0110,0110--0x66;5 --0110,1101--0x6D;6 --0111,1101--0x7D;7 --0000,0111--0x07;8 --0111,1111--0x7F;9 --0110,1111--0x6F; 非编码键盘采用的是行反转法来扫描键盘的,调用键盘扫描的程序TESTFLOOR 后,程序中的变量FLOOR 的值就是按下的键的值,如果FLOOR 为0FFH 则表示无键盘输入,为0~15 则按照上往下从左往右的顺序分别代表每一个按键按下的信息。

5.74ls273带有清除端的8D 触发器,在清除端保持高电平时,具有锁存功能,锁存控制端为11脚CLK ,采用上升沿锁存。

1D ~8D 为数据输入端,1Q ~8Q 为数据输出端,正脉冲触发,低电平清除。

3.软件设计设计思路:通过软件编程使8253输出定时信号申请中断,在中断服务程序中扫描键盘,如果有按键,修改相应的变量位,并输出内部请求变量REQ_IN 到发光二极管显示当前的内部请求楼层。

在主程序中,查询变量的值,根据电梯调度算法运行电梯。

(1)主要设计模块程序主要包括以下主要模块:键盘扫描程序、LED 显示程序、电梯调度算法。

1)键盘扫描程序:采用的是行反转法来扫描键盘的。

2)LED 显示程序:只用到了一个LED ,只要将floor 转换为相应的段码。

先输出位码,再输出段码,循环输出就可以动态显示。

为了循环的显示,将LED显示程序3)电梯调度算法:在设计时将电梯一次从下到上视为一次运行(注意不一定从底层到顶层),同理,电梯一次从上到下也视为一次运行(注意不一定从顶层到底层)。

当电梯向上运行时:位于当前层以下的向上请求都被忽略留到下次向上运行时处理;位于当前层以上的向上请求都被记录留到此次运行处理;无论哪层的向下请求都被忽略留到下次向下运行时处理。

当电梯向下运行时:位于当前层以上的向下请求都被忽略留到下次向下运行时处理;位于当前层以下的向下请求都被记录留到此次运行处理;无论哪层的向上请求都被忽略留到下次向上运行时处理。

(2)程序流程图1)主程序框图如图2图3 主程序框图2)中断服务程序框图如图3图4 中断服务程序框图3)电梯算法流程图如图4其中,dir 代表电梯的运行方向,0代表电梯向上运行,1代表向下运动。

设REQ_U(n)代表第n 层向上的请求,同样,REQ_D(n) 代表第n 层向下的请求,REQ_IN(n) 代表第n 层内部的请求。

求next 的方法为:电梯向上时,next 为内部请求的最小值和向上请求的大于floor 的最小值之间的小者。

电梯向下时,next 为内部请求的最大值和向下请求中小于floor 的最大值之间的大者。

没有满足要求的时返回0。

图5 电梯算法流程图四.模拟电梯源代码data segmentioport equ 0c400h-0280hls273 equ ioport+2a8h;74ls273芯片地址io8255a equ ioport+288h;8255控制端以及a,c端口地址Array io8255b equ ioport+28bhio8255c equ ioport+28ahio8253a equ ioport+280h;8253控制端以及0,1计数端口地址io8253b equ ioport+281hio8253c equ ioport+283hled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;七段码data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,io8255b;8255初始化,a口输出,c口输入mov al,8bhout dx,almov cl,31h;cl代表当前电梯所在楼层,初始值设为1 main: mov al,0call disp;显示当前楼层mov bl,0;bl为第一次输入的要去的楼层mov ch,0;ch为在中途中再次输入的要去的楼层call disp8ledmov ah,01;键盘输入blint 21hcmp al,1bh;是esc则退出je exitcmp al,31h;在1-8之间?如不是重新输入jl maincmp al,38hjg main Array mov bl,alcall disp8led;8led显示bl对应的楼层cmp bl,cl;bl与cl比较je main;相等则返回重新输入jg up;大于则向上运行jl down;小于则向下运行up: call stop;调用暂停子程goup:add cl,1call updelay;调用向上运行延时子程序call disp;调用显示子程序,用于显示当前楼层clcmp cl,bl;cl,bl不等则继续je main;相等则返回jmp gouptomain:jmp mainupgetch:mov ah,1;在上升过程中如在有按键则跳转此处int 21hcmp al,73h;s键断电待修,验收时改用开关改变8253门控信号实现该功能je uprepaircmp al,70h;p键急停键je urgentcmp al,31h;在1-8之间?如不是继续上行jl gotoupcmp al,38hjg gotoupmov ch,alcall disp8led;显示cl对应楼层ledcall delay2;两秒计时时间到Array call disp;显示当前楼层call blequcl;判断bl与cl是否相等cmp ch,cl;比较ch与cl的区别je stopupbl;相等着在该层停,等待运行信号输入jl upbldownch;ch小于cl则先上行至bl在下行至chcmp ch,bl;ch大于cl则在判断ch与bl的大小关系je jmpupbl;相等则一直上行至bljl upchupbl;ch大于cl小于bl则先上行到ch在上行到bl jg toupblupch;ch大于bl则先上行到bl在上行到ch gotoup:call delay2jmp goupuprepair:mov al,0;验收时未用mov ah,1int 21hcmp al,73hjne uprepaircall delay2call dispjmp goupurgent:call delay2;急停功能call dispjmp mainupdelay proc near;向上运行延时子程序call delay;用于初始化8253push dxud: mov ah,1;键盘是否有输入int 16hjne upgetch;如有则跳转到输入处理in al,dxand al,01;是否计时结束jz udpop dxretupdelay endptoupblupch:jmp upblupchdown: call stop;调用暂停子程序godown:sub cl,1call downdelay;调用向下运行延时子程序call disp;调用显示子程序,用于显示当前楼层clcmp cl,bl;cl,bl不等则继续je tomain;相等则返回jmp godownstopupbl:call dispmov ch,0call disp8ledcall stop2call upbljmp mainupbldownch:call disp8ledcall upblmov bl,0call disp8ledcall stop2call downchjmp maincall disp8ledcall upbljmp mainupchupbl:call disp8ledcall upchmov ch,0call disp8ledcall stop2call upbljmp mainupblupch:call disp8ledcall upblmov bl,0call disp8ledcall stop2call upchjmp maindowndelay proc near;向下运行延时子程序,与向上运行延时子程序大体相同call delaypush dxdd: mov ah,1int 16hjne downgetchmov dx,io8255cin al,dxand al,01pop dxretdowndelay endpdowngetch:mov ah,1;在下降过程中如在有按键则跳转此处int 21hcmp al,73h;s键断电待修,验收时改用开关改变8253门控信号实现该功能je downrepaircmp al,70h;p键急停键je urgent2cmp al,31h;在1-8之间?如不是继续下降jl gotodowncmp al,38hjg gotodownmov ch,alcall disp8led;显示cl对应楼层ledcall delay2;两秒计时时间到call disp;显示当前楼层call blequcl;判断bl与cl是否相等cmp ch,cl;比较ch与cl的区别je stopdownbl;相等着在该层停,等待运行信号输入jg downblupch;ch大于cl则先下行至bl在上行至chcmp ch,bl;ch小于cl则在判断ch与bl的大小关系je jmpdownbl;相等则一直下行至bljl downbldownch;ch小于cl小于bl则先下行到bl在下行到ch jg downchdownbl;ch大于bl则先下行到ch在下行到bl gotodown:call delay2jmp godowndownrepair:mov al,0 Array mov ah,1int 21hcmp al,73hjne downrepaircall delay2call dispjmp godownstopdownbl:call disp8ledmov ch,0call disp8ledcall stop2call downbljmp maindownblupch:call disp8ledcall downblmov bl,0call disp8ledcall stop2call upchjmp mainurgent2:call delay2;急停功能 call dispjmp main jmpdownbl:mov ch,0call disp8ledcall downbljmp main Array downbldownch:call disp8led call downblmov bl,0call disp8led call stop2call downchjmp main downchdownbl:call disp8led call downchmov ch,0call disp8led call stop2call downbljmp mainvip: cmp bl,cl;直达功能jl vipdownjg vipupjmp mainvipup:add cl,1call vipdelaycall dispjmp vipvipdown:sub cl,1call vipdelaycall dispjmp vipvipgetch:mov ah,1;直达过程中对急停以及断电待修的处理int 21h Array cmp al,73hje viprepaircmp al,70hje urgent2call delay2jmp vipviprepair:mov al,0mov ah,1int 21hcmp al,73hjne viprepaircall delay2call dispjmp vipvipdelay proc near;直达的延时子程序call delaypush dxvd: mov ah,1int 16hjne vipgetchmov dx,io8255cin al,dxand al,01jz vdpop dxretvipdelay endp Array stop proc near;暂停子程序,实现按回车继续和判断是否为直达键gostop:mov al,0mov ah,1int 21hcmp al,76h;是否为直达键je vipcmp al,13;是否为运行键jne gostopmov al,0retstop endpupbl proc near;上行到bl的子程序upbl1:add cl,1call dirdelaycall dispcmp cl,bljl upbl1retupbl endpupch proc near;上行到ch的子程序upch1:add cl,1call dirdelaycall dispcmp cl,chjl upch1retupch endpdownbl proc near;下行到bl的子程序downbl1:sub cl,1call dirdelaycmp cl,bljg downbl1retdownbl endpdownch proc near;下行到ch的子程序downch1:sub cl,1call dirdelaycall dispcmp cl,chjg downch1retdownch endpdelay proc near;初始化8253的子程序,两计数器连级push dxmov dx,io8253c;8253的计数器0置方式3mov al,36hout dx,almov dx,io8253a;计数器0初始值为10000mov ax,10000out dx,almov al,ahout dx,almov dx,io8253c;8253的计数器1置方式0mov al,70hout dx,almov dx,io8253b;计数器1初始值为200 Array mov ax,200out dx,almov al,ahout dx,alpop dxretdelay endpurgent3:call delay2call dispjmp mainblequcl proc nearcmp bl,cljne backcmp bl,chje blequchmov bl,0call dispcall disp8ledcall stop2cmp ch,cljg upchherejl downchhereupchhere:call upchjmp maindownchhere:call downchjmp mainblequch:mov ch,0call disp8ledjmp mainback: retblequcl endpdirdelay proc near;直接上下行的延时子程序call delaypush dxdirback:mov ah,1int 16hjne dirgetchmov dx,io8255cin al,dxand al,01jz dirbackpop dxretdirdelay endpdirgetch:mov ah,1;直接上下行对按键的处理int 21hcmp al,73hje dirrepaircmp al,70hje urgent3jmp dirbackdirrepair:mov al,0mov ah,1int 21hjne dirrepaircall delay2call dispjmp dirbackstop2 proc near;没有直达键的暂停子程序gostop2:mov al,0mov ah,1int 21hcmp al,13jne gostop2mov al,0retstop2 endpdelay2 proc near;判断延市时是否结束的子程序push dxdelay3:mov dx,io8255cin al,dx ;查询8255的Pc0是否为高电平 and al,01jz delay3pop dxretdelay2 endpdisp proc near;显示当前楼层的子程序mov dl,clmov ah,2int 21h;用于在屏幕上显示mov dl,0dhmov ah,2 ;回车符int 21hmov dl,0ahmov ah,2 ;换行符int 21hsub cl,30h;七段码显示mov al,clpush bxpush dxmov bx,offset ledxlatmov dx,io8255aout dx,alpop dxpop bxadd cl,30hmov al,0retdisp endpdisp8led proc near;8led显示,显示bl与cl对应的楼层push axcmp bl,0hje n0cmp bl,31hje n1cmp bl,32hje n2cmp bl,33hje n3cmp bl,34hje n4cmp bl,35hje n5cmp bl,36hje n6cmp bl,37hje n7cmp bl,38hje n8n0: mov al,0bjmp chledn1: mov al,1bjmp chledn2: mov al,10bjmp chledn3: mov al,100bjmp chledn4: mov al,1000bjmp chledn5: mov al,10000bjmp chledn6: mov al,100000bjmp chledn7: mov al,1000000bjmp chledn8: mov al,10000000bjmp chledje m0cmp ch,31hje m1cmp ch,32hje m2cmp ch,33hje m3cmp ch,34hje m4cmp ch,35hje m5cmp ch,36hje m6cmp ch,37hje m7cmp ch,38hje m8m0: add al,0bjmp displedm1: add al,1bjmp displedm2: add al,10bjmp displedm3: add al,100bjmp displedm4: add al,1000bm5: add al,10000bjmp displedm6: add al,100000bjmp displedm7: add al,1000000bjmp displedm8: add al,10000000bjmp displed displed:push dx mov dx,ls273 out dx,al pop dxpop axmov al,0 ret disp8led endp exit:mov ah,4ch int 21h code ends end start五.加载调试1.打开实验箱,插上电源线和数据线,数据线的两端分别插到pc 的串口和实验箱的,仿真机通讯口2.打开实验箱右侧电源,打开实验箱里的电源。

相关文档
最新文档