1、空调模拟控制器汇编语言ASM; 空调模拟控制器;任务:在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
2、 | *U* *I* *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 0D
3、H,0AH,| Reduction ! ,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
4、! ,0DH,0AH,$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,0AH DB 0DH,0AH, / ,0DH,0AH DB 0DH,0AH, / ,0DH,0AH,$MASS20 DB 0DH,0AH, ,
5、0DH,0AH DB 0DH,0AH, ,0DH,0AH DB 0DH,0AH, ,0DH,0AH,$MASS21 DB 0DH,0AH, */* ,0DH,0AH DB 0DH,0AH, *-*-* ,0DH,0AH DB 0DH,0AH, */* ,0DH,0AH,$MASS22 DB 0DH,0AH, . ,0DH,0AH DB 0DH,0AH, (+ +)! ,0DH,0AH DB 0DH,0AH, - ,0DH,0AH,$MASS23 DB 0DH,0AH, Z ,0DH,0AH,$MASS231 DB 0DH,0AH, Z ,0DH,0AH,$MASS232 DB 0DH,0AH,
6、 Z ,0DH,0AH,$MASS24 DB 0DH,0AH, ,0DH,0AH DB 0DH,0AH, ,0DH,0AH DB 0DH,0AH, ,0DH,0AH,$MASS25 DB 0DH,0AH, | ,0DH,0AH DB 0DH,0AH, - -| ,0DH,0AH DB 0DH,0AH, _ ,0DH,0AH,$MODE DB ?DATA ENDSPRTSTR MACRO X;输出字符串 LEA DX,X MOV AH,09H INT 21HENDMSCANSTR MACRO MOV AH,08H INT 21HENDM SETXY MACRO X,Y;设置光标位置,X=行,Y=
7、列 XOR BH,BH MOV AH,02H MOV DH,X MOV DL,Y INT 10HENDMMASSS MACRO SETXY 5,5 PRTSTR MASS18ENDMMASS121 MACRO SETXY 16,10 PRTSTR MASS21 CALL DELAY SETXY 16,10 PRTSTR MASS211 CALL DELAYENDMDRAWWINDOW MACRO ATTR,TOP,LEFT,BOTTOM,RIGHT ;建立窗口 PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,06H MOV AL,0 MOV BH,ATTR MOV
8、 CH,TOP MOV CL,LEFT MOV DH,BOTTOM MOV DL,RIGHT INT 10H POP DX POP CX POP BX POP 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,20 PRTSTR MASSLOP: SCANSTR ;按
9、下按键 PUSH AX CMP AL,O ;判断是否打开空调 JZ OPEN SETXY 4,4 PRTSTR MASS15 ;输入错误重新输入 SETXY 16,10 PRTSTR MASS25 JMP LOPOPEN:SETXY 4,4 PRTSTR MASS1 ;打开空调 SETXY 16,10 PRTSTR MASS24 SCANSTR CMP AL,M ;判断是否进入菜单 JZ MENU SETXY 4,4 PRTSTR MASS15 SETXY 16,10 PRTSTR MASS25 JMP OPENMENU:SETXY 4,4 PRTSTR MASS3 ;进入菜单 SETXY 1
10、6,10 PRTSTR MASS24 CALL DELAY SETXY 4,4 PRTSTR MASS16 ;显示功能 SETXY 5,5 PRTSTR MASS17 SCANSTR CMP AL,T ;判断是否选择温度控制 JNZ LOP1 CALL TEM JMP MENULOP1:CMP AL,P ;判断是否选择制冷制热 JNZ LOP2 CALL PRO JMP MENULOP2:CMP AL,W ;判断是否选择扫风 JNZ LOP3 CALL WIND JMP MENULOP3:CMP AL,S ;判断是否选择择睡眠 JNZ LOP4 CALL SLEEP JMP MENULOP4:
11、CMP AL,E ;判断是否选择返回菜单 JNZ LOP5 SETXY 4,4 PRTSTR MASS14 MASSS CALL DELAY CALL DELAY JMP MENULOP5:CMP AL,C ;判断是否选择关闭空调 JZ EXIT SETXY 4,4 PRTSTR MASS15 MASSS SETXY 16,10 PRTSTR MASS25 CALL DELAY CALL DELAY JMP MENUEXIT:SETXY 4,4 PRTSTR MASS2 MASSS CALL DELAY CALL DELAY MOV AH,0 MOV AL,BYTE PTRMODE JMP L
12、OPTEM PROC NEAR ;温度控制 SETXY 4,4 PRTSTR MASS4 MASSS SETXY 16,10 PRTSTR MASS24 SETXY 5,15 MOV CH,32H MOV DL,CH MOV AH,02H INT 21H MOV CL,35H MOV DL,CL MOV AH,02H INT 21HAGAIN:SCANSTR CMP AL,I JZ M5 CMP AL,D JZ M6 CMP AL,E JZ QUIT SETXY 4,4 PRTSTR MASS15 SETXY 16,10 PRTSTR MASS25 JMP AGAINQUIT:SETXY 4,
13、4 PRTSTR MASS14 JMP LOM5: SETXY 4,4 ;增加温度 PRTSTR MASS5 INC CL CMP CL,39H JNA M51 INC CH MOV CL,30H M51: SETXY 5,15 MOV DL,CH MOV AH,02H INT 21H MOV DL,CL MOV AH,02H INT 21H JMP AGAINM6: SETXY 4,4 ;降低温度 PRTSTR MASS6 DEC CL CMP CL,30H JA M61 DEC CH MOV CL,39H M61: SETXY 5,15 MOV DL,CH MOV AH,02H INT 2
14、1H MOV DL,CL MOV AH,02H INT 21H JMP AGAINLO: RETTEM ENDPSLEEP PROC NEAR ;进入睡眠状态 PUSH CX MOV CX,1 SETXY 4,5 PRTSTR MASS13 MASSS SETXY 16,10 PRTSTR MASS23 CALL DELAY SETXY 16,12 PRTSTR MASS231 CALL DELAY SETXY 16,14 PRTSTR MASS232 CALL DELAY SETXY 16,10 PRTSTR MASS23 CALL DELAY SETXY 16,12 PRTSTR MASS
15、231 CALL DELAY SETXY 16,14 PRTSTR MASS232 CALL DELAY RETSLEEP ENDP PRO PROC NEAR ;进入制冷制热 SETXY 4,4 PRTSTR MASS7 MASSS SETXY 16,10 PRTSTR MASS24AGAIN1:SCANSTR CMP AL,H JZ M9 CMP AL,L JZ M8 CMP AL,E JZ QUIT1 SETXY 4,4 PRTSTR MASS15 SETXY 16,10 PRTSTR MASS25 JMP AGAIN1M8: SETXY 4,4 ;制冷 PRTSTR MASS8 SET
16、XY 16,10 PRTSTR MASS21 JMP AGAIN1M9: SETXY 4,4 PRTSTR MASS9 ;制热 SETXY 16,10 PRTSTR MASS22 JMP AGAIN1QUIT1:SETXY 4,4 PRTSTR MASS14 RETPRO ENDPWIND PROC NEAR ;进入扫风功能 SETXY 4,4 PRTSTR MASS10 MASSS SETXY 16,10 PRTSTR MASS24AGAIN2:SCANSTR CMP AL,U JZ M11 CMP AL,N JZ M12 CMP AL,E JZ QUIT2 SETXY 4,4 PRTSTR
17、 MASS15 SETXY 16,10 PRTSTR MASS25 JMP AGAIN2M11: SETXY 4,4 ;上扫风 PRTSTR MASS11 SETXY 16,10 PRTSTR MASS19 JMP AGAIN2M12: SETXY 4,4 ;下扫风 PRTSTR MASS12 SETXY 16,10 PRTSTR MASS20 JMP AGAIN2QUIT2:SETXY 4,4 PRTSTR MASS14 RET JMP AGAIN2WIND ENDPDELAY PROC PUSH AX PUSH DX PUSH BXGOT: MOV AH,00H INT 1AH ADD DL,9 MOV BL,DLWAITING: MOV AH,00H INT 1AH CMP DL,BL JNZ WAITING POP BX POP DX POP AX RETDELAY ENDPCODE ENDSEND START (注:可编辑下载,若有不当之处,请指正,谢谢!)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1