微机课程设计电梯仿真程序

2019-08-29 22:26

二○一三~二○一四学年第 一 学期

电子技术学院 电子信息工程系

课程设计计划书

姓 名: 刘珂 学 号: 201112135011 班 级: 电信(DB)1101 课程名称: 微机原理与应用课程设计 指导教师: 杨君

2014年 1月 22日

电梯仿真程序

1、设计要求

(1). 在 1-- 8楼之间一次可输入多个任意楼层号连续控制电梯按指定楼层号

顺序上升与下降.以上过程完成后可重新输入任意楼层号连续控制电梯按指定楼层号顺序上升与下降.只有按ESC键才退出程序返回DOS状态。例如 :

1-3-5-8-6-4-2-1 (可观察教六楼电梯的实际运行情况)。 (2). 在 1 -- 8 楼之间按任意顺序不连续控制电梯上升与下降. 按一次计算机键盘的上箭头电梯上升一楼,按一次计算机键盘的下箭头电梯下降一楼. (上箭头的ASCII码19H , 下箭头的ASCII码1AH 。 )

(3). 在电梯上升与下降过程中,要显示出 1--8 楼之间所要到达的楼层数,同时还要用箭头显示电梯是上升状态还是下降状态。

(4). 电梯运行到指定楼层后,打开电梯门,然后关门继续运行。

(5). 电梯运行时, 在任意时刻遇到紧急情况时应能实时中断电梯运行。也可以在任意时刻恢复电梯运行。(按A/a 键模拟中断发生,电梯停止运行。按B/b 键恢复电梯运行)

(6). 在计算机屏幕上将电梯的平面模型改成三维立体模型。

(7). 在电梯旁画一个小方块.这个小方块随电梯上升而上升,下降而下降。以增加电梯运行时的动感。

(8). 电梯仿真软件运行时,应在计算机屏幕上详细说明其使用方法,以及本软件作者姓名和日期。

2、实验装置

IBM-PC

3、使用方法及功能介绍

①在提示“input the floor(1-8F)(such as 1-3-4-1):”后面输入用户要去的楼层,可从任意楼层开始运行,指定楼层号顺序上升与下降,数字与数字之间用“-”连接,数字范围为1-8。

在一轮运行完以后程序会清空楼层提示后面的数字,用户可再输入要去的楼层,若用户希望停止运行该程序,可以在下一轮开始时在楼层提示后面输入0或非数字键,可返回到DOS ②在 1 -- 8 楼之间按任意顺序不连续控制电梯上升与下降. 按一次计算机键盘的上箭头电梯上升一楼,按一次计算机键盘的下箭头电梯下降一楼. ③电梯上升与下降过程中,在电梯三维模型的正上方的蓝色矩形框内,提示“now the floor is:”后面显示出当前所要在的楼层数,提示“TO:”后面显示1--8 楼之间所要到达的楼层数,提示“direction:”后面显示上下箭头,代表电梯当前是上升状态还是下降状态。

④在电梯旁有一个小方块。这个小方块随电梯上升而上升,下降而下降。增加电梯运行时的动感.。小方块在一个8层的方框内上下移动,电梯每上升一层,小方块在方框内上升一层,

电梯每下降一层,小方块在方框内下降一层。并且小方块在方框内的位置与电梯当前所在楼层时对应的,例如:若当前电梯运行到第3层,则小方块也位于第三层方框。为了使用户能更清晰地看到电梯的运行过程,小方块每到一层会停留1S的时间。电梯运行到指定楼层后,打开电梯门,然后关门继续运行,为了模拟真实的效果,电梯在指定楼层停下,大门依次闭合-半开门-全开门-半开门-闭合。 ⑤在 1 -- 8 楼之间按任意顺序不连续控制电梯上升与下降。按一次计算机键盘的上箭头电梯上升一楼,按一次计算机键盘的下箭头电梯下降一楼。 由于所使用的计算机的某些原因,这里输入“w” 上升一楼,输入“s” 下降一楼。电梯的不连续控制只在电梯停在某一层且关上的门之后。提示是“up or down a floor only vailable when elevator stop(use w or s )”,当用户可以对电梯进行不连续控制时,会出现“~now vailable”的提示。

⑥电梯仿真软件运行时,在计算机屏幕上显示本软件作者姓名“author: LiuKe”和日期“data: 2014-2-22”。

4、程序的设计思路

在主程序的最前面是宏,将具有特定功能的画图代码打包成一个个宏放在住程序的最前面。有清屏的宏,移光标的宏,写横的宏,写竖的宏,画小方块上升的宏,画小方块下降的宏,画初始小方块的宏,画电梯关门状态的宏,画电梯半开门状态的宏,画电梯全开门状态的宏。由于这段画图的代码在程序中会经常使用,所将他们编成宏使用起来更方便。除了主程序外还有一个延时1S的子程序。 开始主程序的运行后,先运行一段初始化程序,然后设置图形显示方式,再显示提示信息以及有关信息,然后再画电梯的三维模型,这样整个初始界面就完成了。然后再提示信息下,用户输入要去的楼层,判断该字符串的第一个字符的ASCII码是否在1-8范围,如果不是则结束并返回DOS界面,如果是则继续进行下一步程序。将第1个数字代表的楼层设为当前站X(n),并赋给COUNT(该变量用来记录当前层)。将下个数字代表的层数设为下一站(如果当前站为最后一站,则重新回到开头提示用户输入信息),将COUNT与下一站X(n+1)相比较,若COUNT大于下一站,则小方块下降一层,COUNT--,并显示当前层和目标层以及下箭头,一直循环直到相等;若COUNT小于下一站,则小方块上升一层,COUNT++,并显示当前层和目标层以及下箭头,一直循环直到相等;相等时,则电梯大门大门依次闭合-半开门-全开门-半开门-闭合。大门关上后,调用MOV AH,1 ; INT 16H检测是否有按键按下,若没有键盘按下,则X(n)=X(n+1),读取下一个字符,将该字符所代表的楼层赋给X(n+1),并回到前面检测X(n)是否为最后目标层的程序段。若有键盘按下,则判断AL的值(该值为输入的字符的ASCII码),若AL为‘w’则小方块上升一层,COUNT++;若AL为‘s’则小方块下降一层,COUNT--;两者最后都回到“X(n)=X(n+1),读取下一个字符,将该字符所代表的楼层赋给X(n+1)”这一步,若AL即不为‘w’也不为‘s’,则直接回到该步骤。

以上是整个程序的大致流程和思路。

5、程序的流程图

开始初始代码设置图形显示方式显示提示信息 画三维电梯图形及初始界面 提示用户出入楼层数判定第一个字符是否为1-8之间的数是是第一个数代表的楼层表示电梯初始位置即X1,设置COUNT记录当前层,X1=COUNT判段该数X(n)是否为最后一个数否下一个数表示电梯下一次要停的楼层X(n+1)小于小方块上升一层,COUNT++,显示当前层和目标层以及上箭头否当前层COUNT和下一层X(n+1)相比较大于小方块下降一层,COUNT--,显示当前层和目标层以及下箭头X(n)=X(n+1)读取下一个字符赋给X(n+1)等于电梯门依次闭合-半开门-全开门-半开门-闭合用MOV AH,1 INT 16H 检测是否有键按下是等于w判断AL的值等于s否小方块上升一层,COUNT++不等于w且不等于s小方块下降一层,COUNT--结束并返回DOS

6、程序清单

;------------ 电梯模拟程序 ----------------------------------------------- CLSS MACRO ; 清屏之宏

MOV BH,7 ; 卷入行属性,黑底白字,正常显示.

MOV AX,0600H ; AH=6 屏幕初始化或上卷.AL=0 整个窗口空白. INT 10H ; CH=左上角行号,CL=左下角列号. ENDM ; DH=右上角行号,DL=右下角列号. ;----------------------------------------------------------- GB MACRO ; 移光标之宏

MOV BH,00H ; BH=页号 DH,DL=行号,列号. MOV AH,02H ; AH=2 置光标位置. INT 10H ENDM

;------------------------------------------------

HENG MACRO X1,Y1,COLOR,X2 ; 写横的宏 LOCAL BH1 ; 定义标号

MOV CX,X1 ; 起始点横作标-->CX MOV DX,Y1 ; 起始点纵作标-->DX BH1: MOV AH,0CH ; 写象素

MOV AL,COLOR ; 设定颜色参数-->AL INT 10H

INC CX

CMP CX,X2 ; 写至终点横作标为止 JNZ BH1 ENDM

;------------------------------------------------

SHU MACRO CX1,CY1,COLOR,CY2 ; 写竖的宏 LOCAL BH2 ; 定义标号 MOV CX,CX1 MOV DX,CY1 BH2: MOV AH,0CH

MOV AL,COLOR ; AL=(00--0FH)共16种颜色. INT 10H INC DX

CMP DX,CY2 JNZ BH2 ENDM

;--------------------------------------


微机课程设计电梯仿真程序.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人民法院诉讼文书立卷归档办法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: