±ÏÒµÂÛÎÄÉè¼Æ
;Èë¿Ú²ÎÊý:KEY_BUF_G,KEY_BUF_S,KEY_BUF_B ;³ö¿Ú²ÎÊý:DIS_BUF_G,DIS_BUF_S,DIS_BUF_B PRO_UP:
CALL K_DELAY
JB K_UP,K_LOOP ;°´Å¥¶¶¶¯´¦Àí INC KEY_BUF_G ;¸öλÔöÒ» MOV A,KEY_BUF_G
CJNE A,#0AH,UPNEXT ;¸öλÔö¼Óµ½10£¬»Ø0 MOV KEY_BUF_G,#00H INC KEY_BUF_S ;ʮλ¼ÓÒ» MOV A,KEY_BUF_S
CJNE A,#0AH,UPNEXT ;ʮ볬¹ý99£¬Òç³öÁË MOV R0,#200
ERROR1: LCALL ERR ;³ö´í£¬ÏÔʾ8888
DJNZ R0,ERROR1
DEC KEY_BUF_S ;ÍË»Ø99 MOV KEY_BUF_G,#09H
UPNEXT:
MOV DIS_BUF_G,KEY_BUF_G MOV DIS_BUF_S,KEY_BUF_S MOV DIS_BUF_B,KEY_BUF_B CALL K_DELAY
RET ;³ÌÐòÃû³Æ:PRO_DOWN ;¹¦ÄÜ:Êýֵϵ÷´¦Àí
;Èë¿Ú²ÎÊý:KEY_BUF_G,KEY_BUF_S,KEY_BUF_B ;³ö¿Ú²ÎÊý:DIS_BUF_G,DIS_BUF_S,DIS_BUF_B PRO_DOWN:
CALL K_DELAY
JB K_DOWN,K_LOOP ;°´Å¥¶¶¶¯´¦Àí DEC KEY_BUF_G ;¸öλ¼õÒ» MOV A,KEY_BUF_G
CJNE A,#0FFH,DOWNNEXT ;¸öλ¼õµ½0£¬»Øµ½9 MOV KEY_BUF_G,#09H
DEC KEY_BUF_S ;ʮλ¼õÒ» MOV A,KEY_BUF_S
CJNE A,#0FFH,DOWNNEXT;ʮλµÍÓÚ0£¬Òç³öÁË MOV R0,#200
ERROR2: LCALL ERR ;³ö´í£¬ÏÔʾ8888
DJNZ R0,ERROR2
INC KEY_BUF_S ;ÍË»Ø00 MOV KEY_BUF_G,#00H
DOWNNEXT:
MOV DIS_BUF_G,KEY_BUF_G ;Ôö¼ÓÍê³Éºó£¬¸³ÖµÍ˳ö£¬È»ºóDISPLAY
;ÏÔʾ³öÀ´
MOV DIS_BUF_S,KEY_BUF_S
µÚ 45 Ò³ ¹² 48 Ò³
±ÏÒµÂÛÎÄÉè¼Æ
MOV DIS_BUF_B,KEY_BUF_B CALL K_DELAY RET
K_DELAY: ;¼üÅ̶¶¶¯ÑÓʱ×Ó³ÌÐò
MOV R6,#250
DL20MS_1:
MOV R7,#200 DJNZ R7,$
DJNZ R6, DL20MS_1 RET
;¿É¿Ø¹è¿ØÖÆ SWITCH:
MOV A,KEY_BUF_G ;Èý¸öBuffer¶¼ÊÇ0µÄ»°£¬ËµÃ÷»¹Ã»ÓÐÊäÈëÊýÖµ£¬Ö±
;½ÓÍ˳ö
JNZ SNEXT
MOV A,KEY_BUF_S JNZ SNEXT
MOV A,KEY_BUF_B
JZ SQUIT
SNEXT: CALL SET_DIS_BUF
MOV A,KEY_BUF_S SUBB A,DIS_BUF_S JC COOL
JNZ HOT ;ʮλÈç¹ûÏàµÈ£¬ÄÇô¼ÌÐø±È½Ï¸öλ MOV A,KEY_BUF_G SUBB A,DIS_BUF_G JC COOL
HOT: CLR P_SWITCH ;P_SWITCHΪ0˵Ã÷µ±Ç°Î¶ÈСÓÚÉ趨ζȣ¬ÒªÉýΣ¬
;ËùÒÔ½Óµç×èË¿
SETB P1.3 ;±¨¾¯ SJMP SQUIT
COOL: SETB P_SWITCH ;P_SWITCH Ϊ1˵Ã÷µ±Ç°Î¶ȴóÓÚÉ趨ÎÂ¶È SETB P1.3 ;±¨¾¯ SQUIT: RET
;³ÌÐòÃû³Æ:SET_DIS_BUF
;¹¦ÄÜ:¸³Öµ¸øDIS_BUF_G, DIS_BUF_S, DIS_BUF_B ;Èë¿Ú²ÎÊý:TEMPERATURE_LC,TEMPERATURE_HC ;³ö¿Ú²ÎÊý:DIS_BUF_G, DIS_BUF_S, DIS_BUF_B
SET_DIS_BUF:
MOV A,TEMPERATURE_LC ANL A,#0FH
MOV DIS_BUF_X,A ;СÊýλ MOV A,TEMPERATURE_LC SWAP A
µÚ 46 Ò³ ¹² 48 Ò³
±ÏÒµÂÛÎÄÉè¼Æ
ANL A,#0FH
MOV DIS_BUF_G,A ;¸öλ MOV A,TEMPERATURE_HC ANL A,#0FH
MOV DIS_BUF_S,A ;ʮλ MOV A,TEMPERATURE_HC SWAP A ANL A,#0FH
MOV DIS_BUF_B,A ;°Ùλ MOV A,TEMPERATURE_HC ANL A,#0F0H
CJNE A,#010H,NEXT0 SJMP NEXT1
NEXT0: MOV A,TEMPERATURE_HC ANL A,#0FH
JNZ NEXT1 ;ʮλÊýÊÇ0
MOV A,TEMPERATURE_HC SWAP A ANL A,#0FH
MOV 73H,#0AH ;·ûºÅλ²»ÏÔʾ MOV 72H,A ;ʮλÊýÏÔʾ·ûºÅ
NEXT1: RET ;³ÌÐòÃû³Æ:DISPLAY
;¹¦ÄÜ:ÏÔʾÊý¾Ýµ½ÊýÂë¹ÜÖС£
;Èë¿Ú²ÎÊý:DIS_BUF_G, DIS_BUF_S, DIS_BUF_B ;³ö¿Ú²ÎÊý:ÎÞ DISPLAY:
MOV DPTR,#DISTAB MOV R3,#0FEH
MOV R1,#DIS_BUF_B
DPLOP: MOV A,@R1
MOVC A,@A+DPTR MOV P2,R3 MOV P0,A
CJNE R3,#0FBH,DPNEXT CLR P0.7
DPNEXT: MOV A,R3
RL A
MOV R3,A DEC R1
CALL DS1M
CJNE R3,#0EFH,DPLOP
MOV P0,#0FFH ;Ò»´ÎÏÔʾ½áÊø£¬P0¿Ú¸´Î» MOV P2,#0FFH ;P2¿Ú¸´Î» RET
µÚ 47 Ò³ ¹² 48 Ò³
±ÏÒµÂÛÎÄÉè¼Æ
DS1M: MOV R7,#0FFH
DJNZ R7,$ RET
;ÊýÂë¹ÜTAB DISTAB:
DB 0C0H ;0 DB 0F9H ;1 DB 0A4H ;2 DB 0B0H ;3 DB 099H ;4 DB 092H ;5 DB 082H ;6 DB 0F8H ;7 DB 080H ;8 DB 090H ;9
DB 0FFH ;NONE END
µÚ 48 Ò³ ¹² 48 Ò³