模拟电梯接口技术课设Word文件下载.docx

上传人:b****6 文档编号:8540394 上传时间:2023-05-11 格式:DOCX 页数:23 大小:122.46KB
下载 相关 举报
模拟电梯接口技术课设Word文件下载.docx_第1页
第1页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第2页
第2页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第3页
第3页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第4页
第4页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第5页
第5页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第6页
第6页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第7页
第7页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第8页
第8页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第9页
第9页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第10页
第10页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第11页
第11页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第12页
第12页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第13页
第13页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第14页
第14页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第15页
第15页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第16页
第16页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第17页
第17页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第18页
第18页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第19页
第19页 / 共23页
模拟电梯接口技术课设Word文件下载.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

模拟电梯接口技术课设Word文件下载.docx

《模拟电梯接口技术课设Word文件下载.docx》由会员分享,可在线阅读,更多相关《模拟电梯接口技术课设Word文件下载.docx(23页珍藏版)》请在冰点文库上搜索。

模拟电梯接口技术课设Word文件下载.docx

电梯运行到指定楼层后,打开电梯门,然后关门继续运行,为了模拟真实的效果,电梯在指定楼层停下,大门依次闭合-半开门-全开门-半开门-闭合。

⑤在1--8楼之间按任意顺序不连续控制电梯上升与下降。

按一次计算机键盘的上箭头电梯上升一楼,按一次计算机键盘的下箭头电梯下降一楼。

由于所使用的计算机的某些原因,这里输入“w”上升一楼,输入“s”下降一楼。

电梯的不连续控制只在电梯停在某一层且关上的门之后。

提示是“upordownaflooronlyvailablewhenelevatorstop(usewors)”,当用户可以对电梯进行不连续控制时,会出现“~nowvailable”的提示。

⑥电梯仿真软件运行时,在计算机屏幕上显示本软件作者姓名“wustzhengliming”和日期“2014.12.18”。

五、原理分析

1、在主程序的最前面是宏,将具有特定功能的画图代码打包成一个个宏放在住程序的最前面。

有清屏的宏,移光标的宏,写横的宏,写竖的宏,画小方块上升的宏,画小方块下降的宏,画初始小方块的宏,画电梯关门状态的宏,画电梯半开门状态的宏,画电梯全开门状态的宏。

由于这段画图的代码在程序中会经常使用,所将他们编成宏使用起来更方便。

除了主程序外还有一个延时1S的子程序。

2、开始主程序的运行后,先运行一段初始化程序,然后设置图形显示方式,再显示提示信息以及有关信息,然后再画电梯的三维模型,这样整个初始界面就完成了。

3、然后再提示信息下,用户输入要去的楼层,判断该字符串的第一个字符的ASCII码是否在1-8范围,如果不是则结束并返回DOS界面,如果是则继续进行下一步程序。

将第1个数字代表的楼层设为当前站X(n),并赋给COUNT(该变量用来记录当前层)。

将下个数字代表的层数设为下一站(如果当前站为最后一站,则重新回到开头提示用户输入信息),将COUNT与下一站X(n+1)相比较,若COUNT大于下一站,则小方块下降一层,COUNT--,并显示当前层和目标层以及下箭头,一直循环直到相等;

若COUNT小于下一站,则小方块上升一层,COUNT++,并显示当前层和目标层以及下箭头,一直循环直到相等;

相等时,则电梯大门大门依次闭合-半开门-全开门-半开门-闭合。

大门关上后,调用MOVAH,1;

4、INT16H检测是否有按键按下,若没有键盘按下,则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’,则直接回到该步骤。

六、硬件设计

生成文件

(1).我使用的运行环境为虚拟机下的xp系统,汇编软件使用的是轻松汇编。

(2).打开轻松汇编,输入代码,保存为.asm格式文件。

(3).编译程序。

可以直接使用轻松汇编菜单栏的按键运行—编译和运行—生成按钮进行编译,也可以进入dos环境,使用masm.exe编译源程序生成OBJ文件和一些交叉文件。

格式:

masmexam1.asm;

如果结尾不加分号,那么回车后会有一个提示,提示将生成的OBJ文件名和相应的其他一些文件名是什么?

可以一路回车取默认值,即与源文件同文件名。

如果加上分号,既可避免这些提示。

直接生成同文件名的OBJ文件。

(4).连接程序。

用LINK.exe连接OBJ文件,生成可执行的exe文件。

格式:

linkexam1.obj;

如果原程序无堆栈段,则在连接完后,有一个警告提示,提示程序无堆栈段。

(5).运行。

直接在轻松汇编菜单栏中单击运行按钮或在dos环境中执行debug将生成的可执行exe文件装入内存后,用G命令来运行

(6).查看程序运行结果。

BIOS显示功能调用

显示器是微型机系统重要的输出设备。

显示器与微型机之间的接口电路又称做显示适配器(显示卡)。

显示卡的种类很多,有MDA卡、HGC卡、CGA卡、EGA卡和VGA卡等。

IBM-PC和PC/XT单色显示器使用单色显示器适配器MDA(MonochromeDisplayAdapter)卡,它不支持图形方式,只支持80列和25行的文本方式。

文本方式又称为字符方式、字符/数字方式。

IBM-PC和PC/XT彩色显示器使用彩色/图形适配器CGA(ColorGraphicsAdapter)卡,支持文本和图形两种方式且有单色、彩色两种显示。

有关显示输出的DOS功能调用不多,而BIOS调用(INT10H)的功能很强,主要包括设置显示方式,设置光标大小和位置,设置调色板号,显示字符和显示图形等

七、软件分析

程序功能示意图↑

初始界面示意图↑

流程图:

程序清单:

CLEARMACRO;

清屏的宏

MOVBH,7;

卷入行属性,黑底白字,正常显示.

MOVAX,0600H;

AH=6屏幕初始化或上卷.AL=0整个窗口空白.

INT10H;

CH=左上角行号,CL=左下角列号.

ENDM;

DH=右上角行号,DL=右下角列号.

;

---------------------------------------

POSMACRO;

移动光标的宏

MOVBH,00H;

BH=页号DH,DL=行号,列号.

MOVAH,02H;

AH=2置光标位置.

INT10H

ENDM

;

HENGMACROX1,Y1,COLOR,X2;

写横的宏

LOCALBH1;

定义标号

MOVCX,X1;

起始点横作标-->

CX

MOVDX,Y1;

起始点纵作标-->

DX

BH1:

MOVAH,0CH;

写象素

MOVAL,COLOR;

设定颜色参数-->

AL

INCCX

CMPCX,X2;

写至终点横作标为止

JNZBH1

SHUMACROCX1,CY1,COLOR,CY2;

写竖的宏

LOCALBH2;

MOVCX,CX1

MOVDX,CY1

BH2:

MOVAH,0CH

AL=(00--0FH)共16种颜色.

INCDX

CMPDX,CY2

JNZBH2

DELAYMACRO;

延时1s的宏

LOCALREAD

PUSHDX;

入栈,保护原有DX、CX中的数据

PUSHCX

SUBAX,AX

INT1AH;

INT1AH的0号功能读当前时钟值,CX:

DX=时钟计数值

MOVTIME,DX

MOVTIME[2],CX

READ:

INT1AH

SUBDX,TIME

SBBCX,TIME[2]

CMPDX,DLY

JBREAD

POPCX;

出栈,恢复现场

POPDX

UPMACRON,DX1;

小方块上升的宏

LOCALUPA,UPB;

MOVAL,N;

小方块从N-1层上升至N层

MOVCH,30;

小方块上升一层,并且将下一层的小方块清除

MULCH;

30*N个像素

MOVDX,430

SUBDX,AX;

430-30*N个像素得到画小方块的纵坐标下限值

MOV[DZ],DX

ADDDX,20;

每个小方块边长为20个像素

MOVDX1,DX;

得到纵坐标上限值

UPA:

HENG170,[DZ],0CH,190;

画小方块

INC[DZ]

MOVAX,DX1

CMP[DZ],AX

JNZUPA

ADDDX,11;

坐标调整到移动之前的坐标

ADDDX,20

MOVDX1,DX

UPB:

HENG170,[DZ],00H,190;

擦原小方块

JNZUPB

DOWNMACRON,DX1;

小方块下降的宏

LOCALDOWNA,DOWNB;

小方块从N+1层下降至N层

小方块下降一层,并且将上一层的小方块清除

MULCH

SUBDX,AX

DOWNA:

JNZDOWNA

SUBDX,49

DOWNB:

擦原有小方块

JNZDOWNB

CLOSEMACRO;

画电梯关门状态的宏

LOCALCE

MOV[DZ],220

CE:

HENG210,[DZ],09H,370;

电梯关门

CMP[DZ],420

JNZCE

SHU291,220,02H,420;

电梯大门缝隙

SHU290,220,02H,420

SHU289,220,02H,420

HALFMACRO;

画电梯半开门状态的宏

LOCALHF

MOV[DZ],221

HF:

HENG210,[DZ],09H,250;

电梯半开门

HENG252,[DZ],07H,328

HENG330,[DZ],09H,370

JNZHF

SHU251,220,02H,420;

SHU329,220,02H,420

FULLMACRO;

画电梯全开门状态的宏

LOCALFL

FL:

HENG210,[DZ],09H,215;

电梯全开门

HENG217,[DZ],07H,363

HENG365,[DZ],09H,370

JNZFL

SHU216,220,02H,420;

SHU364,220,02H,420

PAUSEMACRO;

电梯紧急暂停的宏

LOCALWAIT,WAN

MOVAH,1

INT16H

CMPAL,'

a'

读取键盘缓存中是否有"

a"

,有就进入暂停等待循环,没有则退出

JNZWAN

MOVDX,0301H

POS

MOVDX,OFFSETMSG7;

显示MSG7

MOVAH,9

INT21H

清空键盘缓存

WAIT:

CLC;

CF=0

b'

检测键盘缓存中是否有"

b"

,有就退出暂停等待循环,没有则继续循环

JNZWAIT

WAN:

MOVDX,OFFSETMSG6;

用于将MSG7的信息擦除

DATASEGMENT

MSG1DB'

Pleasepress"

1-8"

or"

w/s"

rootherstoterminate.(eg:

1-3-8/w):

$'

输出多个空格是为了清空上一次的输入

MSG2DB'

Pleasepressanykey.'

'

$'

MSG3DB'

Floor:

MSG4DB'

Direction:

MSG5DB'

To:

MSG6DB'

Whentheelevatorrunning,pleasepress"

toemergencystop.$'

MSG7DB'

tocontinue.$'

MSG8DB'

zhengliming2014.12.18$'

DATDB0FFH,0,255DUP(0)

DLYEQU18

DZDW0

TIMEDW0,0

NUM1DB1

NUM2DB1

COUNTDB0

DX1DW0

DX2DW0

DATAENDS

STACKSSEGMENT

STADW100DUP(0)

TOPDW?

STACKSENDS

---------------------------------------

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACKS

STARTPROCFAR

MOVAX,DATA

MOVDS,AX

MOVAX,STACKS

MOVSS,AX

MOVES,AX

PUSHAX

PUSHBX

PUSHDX

PUSHSI

PUSHDI

MOVCX,0

MOVDX,2479H

MOVBH,7

MOVAX,0601H

MOVAX,0012H;

置图形显示方式

640列*480行,16色.

MOVDX,0;

光标位置初始化

HENG220,99,0AH,420;

信息栏外边框

HENG220,151,0AH,420

SHU220,99,0AH,151

SHU420,99,0AH,151

HENG223,102,0AH,417;

信息栏内边框

HENG223,148,0AH,417

SHU223,102,0AH,148

SHU417,102,0AH,148

CLOSE;

电梯大门处于关闭状态

HENG210,220,02H,370;

电梯大门缝隙边框

HENG210,420,02H,370

SHU210,220,02H,420

SHU370,220,02H,420

HENG209,219,02H,371;

加粗边框

SHU209,220,02H,420

SHU371,220,02H,420

MOV[DZ],219

MOVDX1,210

MOVDX2,370

SB1:

HENGDX1,[DZ],03H,DX2;

三维电梯上侧面

DEC[DZ]

INCDX1

INCDX2

CMP[DZ],180

JNZSB1

MOV[DZ],371

MOVDX1,220

MOVDX2,420

SB2:

SHU[DZ],DX1,03H,DX2;

三维电梯右侧面

DECDX1

DECDX2

CMP[DZ],410

JNZSB2

MOV[DZ],421

SB3:

HENG160,[DZ],0EH,200;

画电梯框架

SUB[DZ],30

CMP[DZ],151

JNZSB3

SHU160,181,0EH,422

SHU200,181,0EH,422

MOV[DZ],400

BRICK:

画初始小方块

MOVAX,420

JNZBRICK

MOVDX,072BH

MOVDL,NUM1

ADDDL,30H

MOVAH,2

INT21H;

初始楼层显示"

1"

MOVDX,1C3BH

MOVDX,OFFSETMSG8;

显示MSG8

MOVDX,0723H

MOVDX,OFFSETMSG3;

显示MSG3

MOVDX,081DH

MOVDX,OFFSETMSG4;

显示MSG4

MOVDX,082DH

MOVDX,OFFSETMSG5;

显示MSG5

显示MSG6

INPUT:

MOVDX,0101H

MOVDX,OFFSETMSG1;

显示MSG1

MOVDX,0143H

MOVDX,OFFSETDAT;

输入并显示字符串

MOVAH,10

MOVAL,DAT+1

MOVCOUNT,AL;

记录输入的字符个数

MOVBP,2

MOVAL,DAT[BP]

w'

输入w则上升一层

JEA1

JMPB1

A1:

JMPUP1

B1:

s'

输入s则下降一层

JEA2

JMPB2

A2:

JMPDOWN1

B2:

CMPAL,31H;

输入小于1的ACSⅡ码则退出

JBA3

JMPB3

A3:

JMPOVER

B3:

CMPAL,38H;

输入大于8的ACSⅡ码则退出

JAA4

JMPB4

A4:

B4:

ANDAL,0FH;

输入1至8则进入多楼层控制命令循环TARGET1

MOVNUM1,AL

TARGET1:

ADDBP,2;

因为输入格式为"

1-2-6"

,每次BP偏移两位起到了仅取有效位数字的作用

将字符转换为数字

CMPAL,1;

检测后续输入的字符是否合法,超出1~8范围则返回输入界面

JBINPUT

CMPAL,8

JAINPUT

MOVNUM2,AL

MOVDX,0831H

MOVDL,DAT[BP];

显示电梯下一站要停的楼层数

DELAY

TARGET2:

MOVAL,NUM2

CMPAL,NUM1;

若下一站楼层大于当前楼层,则跳至上升命令段

JAA5

JMPB5

A5:

JMPTARGET3;

若下一站楼层小于当前楼层,则

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2