微机课程设计电梯仿真程序(2)

2019-08-29 22:26

UP MACRO N,DX1 ;小方块上升的宏 LOCAL UPa,UPb ; 定义标号

MOV AL,N ;小方块从N-1层上升至N层

MOV CH,30 ;小方块上升一层,并且将下一层的小方块清除 MUL CH MOV DX,430 SUB DX,AX MOV [DZ],DX ADD DX,20 MOV DX1,DX

UPa: HENG 170,[DZ],05H,190 INC [DZ]

MOV AX,DX1 CMP [DZ],AX JNZ UPa

ADD DX,11 MOV [DZ],DX ADD DX,20 MOV DX1,DX

UPb: HENG 170,[DZ],00H,190 INC [DZ]

MOV AX,DX1 CMP [DZ],AX JNZ UPb ENDM

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

DOWN MACRO N,DX1 LOCAL DNa,DNb MOV AL,N MOV CH,30 MUL CH MOV DX,430 SUB DX,AX MOV [DZ],DX ADD DX,20 MOV DX1,DX

DNa: HENG 170,[DZ],05H,190 INC [DZ]

MOV AX,DX1

;画小方块 ;画小方块 ;小方块下降的宏 ; 定义标号

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

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

CMP [DZ],AX JNZ DNa

SUB DX,49 MOV [DZ],DX ADD DX,20 MOV DX1,DX

DNb: HENG 170,[DZ],00H,190 ;画小方块 INC [DZ]

MOV AX,DX1 CMP [DZ],AX JNZ DNb ENDM

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

INIT MACRO N,DX1 ;画初始小方块的宏 LOCAL BEG ; 定义标号

MOV AL,N ;小方块最初停在第N层,表示电梯最初停在第N层

MOV CH,30 MUL CH MOV DX,430 SUB DX,AX MOV [DZ],DX ADD DX,20 MOV DX1,DX

BEG: HENG 170,[DZ],05H,190 ;画小方块 INC [DZ]

MOV AX,DX1 CMP [DZ],AX JNZ BEG ENDM

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

CLOSE MACRO ;画电梯关门状态的宏 LOCAL CC ; 定义标号 MOV [DZ],220

CC: HENG 210,[DZ],09H,370 ;电梯关门 INC [DZ]

CMP [DZ],420 JNZ CC

SHU 291,220,02H,420 ;电梯大门缝隙 SHU 290,220,02H,420

SHU 289,220,02H,420 ENDM

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

HALF MACRO ;画电梯半开门状态的宏 LOCAL HA ; 定义标号 MOV [DZ],221

HA: HENG 210,[DZ],09H,250 ;电梯半开门 HENG 252,[DZ],07H,328 HENG 330,[DZ],09H,370 INC [DZ]

CMP [DZ],420 JNZ HA

SHU 251,220,02H,420 ;电梯大门缝隙 SHU 329,220,02H,420 ENDM

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

FULL MACRO ;画电梯全开门状态的宏 LOCAL F ; 定义标号 MOV [DZ],221

F: HENG 210,[DZ],09H,215 ;电梯全开门 HENG 217,[DZ],07H,363 HENG 365,[DZ],09H,370 INC [DZ]

CMP [DZ],420 JNZ F

SHU 216,220,02H,420 ;电梯大门缝隙 SHU 364,220,02H,420 ENDM

;--------------------------------------------- DATA SEGMENT

MESS DB ' elevator model ' ,0AH,0DH,'$'

ME1 DB ' press any key to return DOS.',0AH,0DH,'$' ;当使用者进行非正常操作时,提示使用者手动返回DOS

ME2 DB ' now the floor is:',0AH,0DH,'$' ;提示当前楼层 ME3 DB ' direction: ',0AH,0DH,'$'

ME4 DB 'input the floor(1-8F)(such as 1-3-4-1): $' ME5 DB 'author:LiuXiaoFei',0AH,0DH,'$' ; 输出多个空格键是为了清空上一次的输入

ME6 DB 'data: 2014-1-22',0AH,0DH,'$'

ME7 DB 'TO:',0AH,0DH,'$' ;提示电梯下一站要停的楼层 ME8 DB 'up or down a floor,',0AH,0DH,'$' ;提示使用者用上、下键不连续控制电梯

ME9 DB 'only vailable when elevator',0AH,0DH,'$' ME10 DB 'stop(use w or s )',0AH,0DH,'$' ME11 DB '~now vailable',0AH,0DH,'$' ME12 DB ' ',0AH,0DH,'$'

IBUFF DB 0FFH,0,255 DUP(0) DIDAS EQU 18 DZ DW 0 TIMES DW 0,0 NUM DB 0 NUM1 DB 0 COUNT DB 0 COUNT1 DB 0 DX1 DW 3 DX2 DW 6 DATA ENDS

;--------------------------------------- STAC SEGMENT

STA DW 100 DUP(0) ; 堆栈段 TOP DW ? STAC ENDS

;--------------------------------------- CODE SEGMENT

ASSUME CS:CODE,DS:DATA;ES:DATA,SS:DATA ;---------------------------------------

DELAY1S PROC NEAR ;延时1S的子函数 PUSH DX PUSH CX XOR AX,AX INT 1AH

MOV TIMES,DX MOV TIMES[2],CX read_time:XOR AX,AX INT 1AH

SUB DX,TIMES SBB CX,TIMES[2] CMP DX,DIDAS JB read_time POP CX POP DX RET

DELAY1S ENDP

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

START PROC FAR

MOV AX,DATA ; 主程序 MOV DS,AX MOV AX,STAC MOV SS,AX MOV AX,DATA MOV ES,AX PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI MOV CX,0 MOV DX,2479H MOV BH,7

MOV AX,0601H INT 10H

MOV AX,0012H ; 置图形显示方式 INT 10H ; 640列*480行,16色. MOV DX,0421H ;显示MESS GB

MOV DX,OFFSET MESS MOV AH,9 INT 21H

MOV DX,0432H ;显示ME5 GB

MOV DX,OFFSET ME5 MOV AH,9 INT 21H

MOV DX,0532H ;显示ME6 GB

MOV DX,OFFSET ME6 MOV AH,9 INT 21H MOV DX,0 GB

MOV [DZ],100

SB: HENG 220,[DZ],03,420 ;显示栏 INC [DZ]

CMP [DZ],150


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

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

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

马上注册会员

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