《空调模拟控制器——汇编语言(.asm)》由会员分享,可在线阅读,更多相关《空调模拟控制器——汇编语言(.asm)(11页珍藏版)》请在金锄头文库上搜索。
1、; 空调模拟控制器;任务:在 pc 机上模拟空调的控制操作。;基本要求:用菜单输出功能选项;通过键盘输入进行各项操作;功能要求:模拟一般空调的所有功能。;扩展要求:图形界面; 硬件定时DATA SEGMENT MASS DB 0DH,0AH, _,0DH,0AHDB |_ |,0DH,0AHDB | | |,0DH,0AHDB | | *O* *C* |,0DH,0AHDB | | *M* |,0DH,0AHDB | | *S* *E* |,0DH,0AHDB |_| |,0DH,0AHDB | *W* *T* *P* |,0DH,0AHDB | |,0DH,0AHDB | *U* *I* *
2、H* |,0DH,0AHDB | |,0DH,0AHDB | *N* *D* *L* |,0DH,0AHDB |_|,0DH,0AH,$MASS1 DB 0DH,0AH,| System start ! ,0DH,0AH,$MASS2 DB 0DH,0AH,| System off ! ,0DH,0AH,$MASS3 DB 0DH,0AH,| Wellcom ! ,0DH,0AH,$MASS4 DB 0DH,0AH,| Temperature ! ,0DH,0AH,$MASS5 DB 0DH,0AH,| Increment ! ,0DH,0AH,$MASS6 DB 0DH,0AH,| Redu
3、ction ! ,0DH,0AH,$MASS7 DB 0DH,0AH,| Contrlling ! ,0DH,0AH,$MASS8 DB 0DH,0AH,| Cool ! ,0DH,0AH,$MASS9 DB 0DH,0AH,| Heating ! ,0DH,0AH,$MASS10 DB 0DH,0AH,| Wind ! ,0DH,0AH,$MASS11 DB 0DH,0AH,| Up prepurge ! ,0DH,0AH,$MASS12 DB 0DH,0AH,| Down prepurge ! ,0DH,0AH,$MASS13 DB 0DH,0AH,| Sleep ! ,0DH,0AH,$
4、MASS14 DB 0DH,0AH,| Quit ! ,0DH,0AH,$MASS15 DB 0DH,0AH,| Error ! ,0DH,0AH,$MASS16 DB 0DH,0AH,| Please enter: ,0DH,0AH,$MASS17 DB 0DH,0AH,| T P W S E C ,0DH,0AH,$MASS18 DB 0DH,0AH,| ,0DH,0AH,$MASS19 DB 0DH,0AH, / ,0DH,0AHDB 0DH,0AH, / ,0DH,0AHDB 0DH,0AH, / ,0DH,0AH,$MASS20 DB 0DH,0AH, ,0DH,0AHDB 0DH,
5、0AH, ,0DH,0AHDB 0DH,0AH, ,0DH,0AH,$MASS21 DB 0DH,0AH, */* ,0DH,0AH DB 0DH,0AH, *-*-* ,0DH,0AHDB 0DH,0AH, */* ,0DH,0AH,$MASS22 DB 0DH,0AH, . ,0DH,0AHDB 0DH,0AH, (+ +)! ,0DH,0AHDB 0DH,0AH, - ,0DH,0AH,$MASS23 DB 0DH,0AH, Z ,0DH,0AH,$MASS231 DB 0DH,0AH, Z ,0DH,0AH,$MASS232 DB 0DH,0AH, Z ,0DH,0AH,$MASS24
6、 DB 0DH,0AH, ,0DH,0AHDB 0DH,0AH, ,0DH,0AHDB 0DH,0AH, ,0DH,0AH,$MASS25 DB 0DH,0AH, | ,0DH,0AHDB 0DH,0AH, - -| ,0DH,0AHDB 0DH,0AH, _ ,0DH,0AH,$MODE DB ?DATA ENDSPRTSTR MACRO X;输出字符串LEA DX,XMOV AH,09HINT 21HENDMSCANSTR MACRO MOV AH,08HINT 21HENDM SETXY MACRO X,Y;设置光标位置,X=行,Y=列XOR BH,BHMOV AH,02HMOV DH,
7、XMOV DL,YINT 10HENDMMASSS MACROSETXY 5,5PRTSTR MASS18ENDMMASS121 MACRO SETXY 16,10PRTSTR MASS21 CALL DELAYSETXY 16,10PRTSTR MASS211 CALL DELAYENDMDRAWWINDOW MACRO ATTR,TOP,LEFT,BOTTOM,RIGHT ;建立窗口PUSH AXPUSH BXPUSH CXPUSH DXMOV AH,06HMOV AL,0MOV BH,ATTRMOV CH,TOPMOV CL,LEFTMOV DH,BOTTOMMOV DL,RIGHTIN
8、T 10HPOP OP CXPOP BXPOP AXENDMCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AH,0FH INT 10H MOV BYTE PTRMODE,AL MOV AH,00 MOV AL,02 INT 10H DRAWWINDOW 81H,0,0,24,200;窗口背景色设置DRAWWINDOW 3EH,3,1,7,20PRTSTR MASSLOP: SCANSTR ;按下按键PUSH AXCMP AL,O ;判断是否打开空调JZ OPENSETXY 4,4PRTSTR MASS15
9、;输入错误重新输入SETXY 16,10PRTSTR MASS25JMP LOPOPEN:SETXY 4,4PRTSTR MASS1 ;打开空调SETXY 16,10 PRTSTR MASS24SCANSTRCMP AL,M ;判断是否进入菜单JZ MENUSETXY 4,4 PRTSTR MASS15SETXY 16,10PRTSTR MASS25JMP OPENMENU:SETXY 4,4 PRTSTR MASS3 ;进入菜单SETXY 16,10PRTSTR MASS24CALL DELAYSETXY 4,4PRTSTR MASS16 ;显示功能SETXY 5,5PRTSTR MASS1
10、7SCANSTRCMP AL,T ;判断是否选择温度控制JNZ LOP1CALL TEMJMP MENULOP1:CMP AL,P ;判断是否选择制冷制热JNZ LOP2CALL PROJMP MENULOP2:CMP AL,W ;判断是否选择扫风JNZ LOP3CALL WINDJMP MENULOP3:CMP AL,S ;判断是否选择择睡眠JNZ LOP4CALL SLEEPJMP MENULOP4:CMP AL,E ;判断是否选择返回菜单JNZ LOP5SETXY 4,4PRTSTR MASS14MASSSCALL DELAYCALL DELAYJMP MENULOP5:CMP AL,C
11、 ;判断是否选择关闭空调 JZ EXITSETXY 4,4PRTSTR MASS15MASSSSETXY 16,10PRTSTR MASS25CALL DELAYCALL DELAYJMP MENUEXIT:SETXY 4,4PRTSTR MASS2MASSSCALL DELAYCALL DELAYMOV AH,0MOV AL,BYTE PTRMODEJMP LOPTEM PROC NEAR ;温度控制SETXY 4,4PRTSTR MASS4MASSSSETXY 16,10PRTSTR MASS24SETXY 5,15MOV CH,32HMOV DL,CHMOV AH,02HINT 21HM
12、OV CL,35HMOV DL,CLMOV AH,02HINT 21HAGAIN:SCANSTRCMP AL,IJZ M5CMP AL,DJZ M6CMP AL,EJZ QUITSETXY 4,4PRTSTR MASS15SETXY 16,10PRTSTR MASS25JMP AGAINQUIT:SETXY 4,4PRTSTR MASS14JMP LOM5: SETXY 4,4 ;增加温度PRTSTR MASS5INC CLCMP CL,39HJNA M51INC CHMOV CL,30H M51: SETXY 5,15MOV DL,CHMOV AH,02HINT 21H MOV DL,CL MOV AH,02HINT 21HJMP AGAINM6: SETXY 4,4 ;降低温度PRTSTR MASS6DEC CLCMP CL,30HJA M61DEC CHMOV CL,39H M61: SETXY