⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yz285.asm

📁 除湿机的说明程序文件 已经生产几十W台 出口机形 分时操作
💻 ASM
📖 第 1 页 / 共 5 页
字号:

;****************************************************
;  FOR  YZ3S09NV   FEN TI AIR CONDITION    
;  MPU:      TMP87C846
;  CLOCK:    4.19 MHz
;  BY:       AIFUAN
;  ALL RIGHT RESERVED
;****************************************************
;  JINHUAQI ---->    (P7).2
;
;  EXTFAN   ---->    (P7).0
;
;  COMPRESS ---->    (P7).4
;  VALVE    ---->    (P7).1
;
;  ROOM AD     ----> (P6).5
;  ROOM PIP AD ----> (P6).4
;
;  LOW FAN ----->    (P7).7
;  MID FAN ----->    (P7).6
;  HIG FAN ----->    (P7).5
;
;  DIANJIARE ----->  (P7).3
;
;  THE KEY   ----->  (P0).1
;
;  RUN LED   ----->  (P0).3
;  DS  LED   ----->  (P0).4
;  SLEEPLED  ----->  (P0).5
;  CHS LED   ----->  (P0).6
;
;  DL SELECT  ---->  (P2).0        0 IS LN 1 IS DL
;
;
;**********************************************
;      DEFINE THE SFR
;**********************************************

P0       EQU    0X0
P1       EQU    0X1   
P2       EQU    0X2   
P6       EQU    0X6   
P7       EQU    0X7   
P0CR     EQU    0XA
P1CR     EQU    0XB   
P6CR     EQU    0XC   
P7CR     EQU    0XD   
ADCCR    EQU    0XE   
ADCDR    EQU    0XF   
TREG1AL  EQU    0X10  
TREG1AH  EQU    0X11  
TREG1BL  EQU    0X12
TREG1BH  EQU    0X13  
TC1CR    EQU    0X14  
TC2CR    EQU    0X15  
TREG2L   EQU    0X16  
TREG2H   EQU    0X17  
TREG3A   EQU    0X18
TREG3B   EQU    0X19
TC3CR    EQU    0X1A
TREG5    EQU    0X1D
TC5CR    EQU    0X1E
SIOSR    EQU    0X20  
SIOCR1   EQU    0X20  
SIOCR2   EQU    0X21  
HSOSR    EQU    0X24
P7CR2    EQU    0X27  
WDTCR1   EQU    0X34  
WDTCR2   EQU    0X35  
TBTCR    EQU    0X36  
EINTCR   EQU    0X37  
SYSCR1   EQU    0X38
SYSCR2   EQU    0X39  
EIRL     EQU    0X3A  
EIRH     EQU    0X3B  
ILL      EQU    0X3C  
ILH      EQU    0X3D  
;***************** DFINE THE RAM ************************
MODEP     EQU    0X80               
WORK      EQU    0X81              
;     0X81------> 0X8E
;
;     0X8F------>0X94
;

DSCD0     EQU    0X8F
SWNMOD    EQU    0X90
CD0TMP    EQU    0X91
VANFAN    EQU    0X92
STPTIM    EQU    0X93
STRTIM    EQU    0X94

FLAG1     EQU    0X97     ;RMB    1
;*****************************************************
RCVOK     EQU    0
DLY3M     EQU    1
KEYBUF    EQU    2
ADON      EQU    3
RMWRN     EQU    4
CS10MIN   EQU    5
RMPWRN    EQU    6
RCVNEW    EQU    7
;
RCVNUM    EQU    0X98     ;RMB    1
SECOND    EQU    0X99     ;RMB    1
MMS       EQU    0X9A     ;RMB    1
MINUTE    EQU    0X9B     ;RMB    1
S3MCNT    EQU    0X9C
STEPSW    EQU    0X9D
STPSPD    EQU    0X9E
STPNUM    EQU    0X9F
STPNUM2   EQU    0XA0
ADVAL     EQU    0XA1
ADTMP     EQU    0XA2
RMTMP     EQU    0XA3
RMPTMP    EQU    0XA4
LWFNSEC   EQU    0XA5
VALMMS    EQU    0XA6
RMPVAL    EQU    0XA7
FLDCNT    EQU    0XA8
FLAG2     EQU    0XA9
;**********************************************************
AUTCHSH   EQU    0
STPCLS    EQU    1        ; 0 ---> CLOSE 1---> OPEN
RSTSTP    EQU    2
STPFKJ    EQU    3
CSISEND   EQU    4
ISDLFLG   EQU    5
ISATFLG   EQU    6
ISHTFLG   EQU    7
;
CSONM     EQU    0XAA
FLD0SEC   EQU    0XAB
FLD2SEC   EQU    0XAC
CMPSEC    EQU    0XAD
CMPMIN    EQU    0XAE
CYRSEC    EQU    0XAF 
PRSTMP    EQU    0XB0
FLAG3     EQU    0XB1
;****************************************************
VDLY      EQU    0
HI52D     EQU    1
FLDFLG    EQU    2
CHSFLG    EQU    3
HTFCHS    EQU    4       
BUZZEN    EQU    5
ISCOOL    EQU    6
GJFLG     EQU    7
;
VDCNT     EQU    0XB2
CSOFFM    EQU    0XB3
CSTIMS    EQU    0XB4
DJRSEC    EQU    0XB5
MINS10    EQU    0XB6
;/  EQU    0XB7
FADMMS    EQU    0XB8
SLPSEC    EQU    0XB9
SLPMIN    EQU    0XBA
;/   EQU    0XBB
HTWSEC    EQU    0XBC
HTWMIN    EQU    0XBD
CLWSEC    EQU    0XBE
HTCMIN    EQU    0XBF
HTCMSEC   EQU    0XC0
CLWMIN    EQU    0XC1
;/AUTSEC    EQU    0XC2
;/AUTMIN    EQU    0XC3
;/C1H45S    EQU    0XC4
;/C1H45M    EQU    0XC5
;/CLCMIN    EQU    0XC6
;/FRCSEC    EQU    0XC7
;/FRCMIN    EQU    0XC8
DSMIN     EQU    0XC9
MMMS      EQU    0XCA
OFFSEC    EQU    0XCB
OFFMIN    EQU    0XCC
FLAG4     EQU    0XCD
;*****************************************************
FDS50     EQU    0
FLD2FLG   EQU    1
AUTSF     EQU    2
ISCHSH    EQU    3
;/ISFCHT    EQU    4
;/FANON     EQU    5
;/FKERR     EQU    6        
;/HAVSTP    EQU    7
;
FDRSEC    EQU    0XCE
FDRMIN    EQU    0XCF
FDRMMS    EQU    0XD0
;/    EQU    0XD1
STRMIN    EQU    0XD2
BUZZCNT   EQU    0XD3
;/BUZ       EQU    0XD4
;/HI52C     EQU    0XD5
;/      EQU    0XD6
;/      EQU    0XD7
;/      EQU    0XD8
;/     EQU    0XD9
;/     EQU    0XDA
;/WJTSBF    EQU    0XDB
; DC
FLAG5     EQU    0XDD
;**************************************************
CMPBF    EQU    0
RPWCYR   EQU    1
;/CLSCMP    EQU    2
;/ONCMP     EQU    3
;/ISSHORT   EQU    4
;/IS12NV    EQU    5         ; IS 12NV THE FAN IS ....
;/IS1H45M   EQU    6
XTWRN     EQU    7

;/KEYSEC      EQU    0XDE
FANBUF      EQU    0XDF
;/IFFK      EQU    0XE0
;/ZZZZ      EQU    0XE1
FLAG6     EQU    0XE2
;***************************************************
LWFN      EQU    0
MDFN      EQU    1
HGFN      EQU    2

;*********************************************************
CODE_1    SECTION  CODE   ABS=0XE000
;*****************PROGRAM START****************************

RESET:
        LD     SP,0X23F
        DI
        LD     RBS,0
;
        LD     (P0CR),0Y01111000
        LD     (P6CR),0Y00000000
        LD     (P1CR),0Y11111000      ; ENABLE BUZZER 
        LD     (P7CR),0Y11111111

        OR     (P0),0X78

        LD     (WDTCR1),0Y00001101   ; Watch dog time is 62Ms

        LD     (TC2CR),0Y00001100   ; sets the TC1 mode and source clock
        LDW    (TREG2L),0X82F       ; MAKE TC2 IS 4MS

        LD     (EINTCR),0Y0001010    ;sets the falling edge
        NOP                          ;at the INT1,INT3,
        LD     (TBTCR),0Y11100010   ;sets the buzzer 8k
        SET    (EIRL).5             ;enable INT1
        SET    (EIRH).6             ;ENABLE INTTC2
        SET    (EIRH).0             ;ENABLE INTTC3
        LD     (TC2CR),0Y00101100   ; Start TC2 
        EI
;
        LD     A,0
        LD     HL,0X48
        LD     BC,0X1F7
RAMCLR:
        LD     (HL+),A
        DEC    BC
        JRS    F,RAMCLR             ; RAM CLEARED FROM OO48H TO 023FH

;
WAITMS:
        LD      (WDTCR2),0X4E       ; Clears the watchdog counter

        CMP     (MMS),0XA
        JR      CS,WAITMS

IFHVDL:

        TEST    (P2).0              ; Test if for dl
        JR      T,NOTDL
        CALL    DLY100U
        TEST    (P2).0
        JR      T,NOTDL
        SET     (FLAG2).ISDLFLG

NOTDL:

        SET     (FLAG1).ADON
        CALL    FORAD
;

        TEST    (P0).1
        JR      T,BFLLFF
        CALL    DLY100U
        TEST    (P0).1
        JR      T,BFLLFF

        JP      TESTSF
;
BFLLFF:
        SET     (FLAG3).BUZZEN

        SET     (FLAG2).RSTSTP

;***************** THE MAIN PROGRAM *****************
MAIN:

        LD      (WDTCR2),0X4E             ; Clears the watchdog counter

        CALL    FORAD
        CALL    CMPCLS
        CALL    VALCLR
        CALL    FADWRN

        SET     (P0).3                   ; CLEAR THE RUN LED
        TEST    (FLAG2).ISHTFLG
        JR      T,MNNTHT2

        TEST    (FLAG1).RMPWRN
        JR      F,MNRMPW
        CMP     (RMPTMP),0X19            ; CMP WITH 25C
        JR      CS,MNNTHT

MNRMPW:
        TEST    (P7).5                  ; if have fan
        JR      F,MNHCYR
        TEST    (P7).6
        JR      F,MNHCYR
        TEST    (P7).7
        JR      F,MNHCYR
        JR      MNNTHT
;
MNHCYR:
        CMP     (CYRSEC),0X1E            ; CUI YU RE 30S
        JR      CC,MNNTHT
        CALL    LOWFAN
        JR      MNFLW1
;
MNNTHT:
        CLR     (FLAG2).ISHTFLG
        CALL    PSTFGJ

MNNTHT2:
        CMP     (DJRSEC),1              ; IF DJR OFF 15SEC
        JR      CC,MNFLW1
        CALL    FANCLR
;
MNFLW1:

        TEST    (FLAG5).XTWRN
        JR      F,MNXTWRN
        SET     (P0).6                   ; CLEAR THE CHS LED

MNXTWRN:

        CLR     (FLAG3).FLDFLG           ; CLEAR FLG FOR COOL MOD
        CLR     (FLAG4).FLD2FLG
        CLR     (FLD2SEC)
        CLR     (FLD0SEC)


        CLR     (FLAG4).ISCHSH           ; CLEAR FLG FOR CHSH MOD
        CLR     (FLAG3).CHSFLG

        CLR     (FLAG2).ISATFLG

        CLR     (FLAG3).ISCOOL


        CLR     (FLAG3).HTFCHS         ; CLEAR FLG FOR HEAT
        CLR     (HTCMSEC)
        CLR     (HTCMIN)
        CLR     (FLAG2).CSISEND
        CLR     (FLAG5).RPWCYR

        CALL    DJRCLR

        SET     (FLAG3).GJFLG

        TEST    (DSCD0).4                 ; TEST IF HAVE DSK
        JR      T,MNODSK

        TEST    (FLAG1).RMWRN
        JR      F,MNRMWRN

        CLR     (P0).4                    ; LIGHT THE DS LED

MNRMWRN:
        LD      A,(MINS10)
        CMP     A,(STRTIM)
        JR      CS,MNNDSK

        CLR     (DSCD0).4
        JR      MISDSK
;
MNODSK:
        TEST    (FLAG1).RMWRN
        JR      F,MNNDSK
        SET     (P0).4                    ; CLEAR DS LED

MNNDSK:
        TEST    (FLAG1).RCVNEW
        JR      T,MFNRCV
MNHVDS:
        CALL    FDS
        TEST    (DSCD0).2
        JR      T,MFNRCV

        TEST    (DSCD0).4
        JR      T,MISDSK                ; IF DSK THEN

        CMP     (STRTIM),0              ; IF DSK TIM IS 0
        JR      EQ,MISDSK

        TEST    (DSCD0).3               ; TEST IF HAVE DSG
        JR      T,MFNRCV

        LD      A,(STRTIM)
        CMP     A,(STPTIM)
        JR      CS,MFNRCV

        CMP     (STPTIM),0
        JR      EQ,MFNRCV

MISDSK:
        CALL    FMNTKJ

FRMDZ:
        JP      FORMOD
;

MFNRCV:

        TEST    (P0).1                    ; TEST THE KEY
        JR      T,MNNKEY
        CALL    DLY100U
        TEST    (P0).1
        JR      T,MNNKEY
        TEST    (FLAG1).KEYBUF
        JR      T,MAINZ
        CLR     (FLAG1).KEYBUF

        SET     (FLAG3).BUZZEN

        TEST    (DSCD0).4               ; TEST IF HAVE DSK
        JR      T,MNNODSK
        CLR     (DSCD0).4               ; CLEAR THE DSK FLG
        JP      MAIN
;
MNNODSK:

        CLR     (HTWSEC)
        CLR     (HTWMIN)
        CLR     (CLWSEC)
        CLR     (CLWMIN)
        CLR     (FLAG5).XTWRN

        LD      (SWNMOD),0X8            ; MAKE AUTO RUN MOD
        LD      (DSCD0),0X0             ; CLEAR DS FLG
        LD      (CD0TMP),0X7            ; MAKE SETTMP IS 24C
        LD      (VANFAN),0X38           ; MAKE FAN AUTO VAN SWING
        JR      MISDSK
;
MNNKEY:
        SET     (FLAG1).KEYBUF
MAINZ:
        JP      MAIN

;
FMNTKJ:

        TEST    (FLAG2).RSTSTP
        JR      T,STFKJFL
        CMP     (STPNUM2),0X2E          ; IF HAV OPEN 135DU
        JR      CS,STFKNC

STFKJFL:
        CLR     (STPNUM)
        CLR     (STPNUM2)
STFKNC:
        CLR     (FLAG2).RSTSTP
        CLR     (FLAG2).STPCLS
        SET     (FLAG2).STPFKJ
        RET
;

DJRCLR:
        TEST    (P7).3
        JR      T,MNNDJR
        LD      (DJRSEC),0XF
        CLR     (P7).3                  ; CLEAR THE DIANJIARE

MNNDJR:
        RET
;
;
;********************* FOR THE MODE CHANGE *********************
FORMOD:

        LD      (WDTCR2),0X4E             ; Clears the watchdog counter

        LD      A,(SWNMOD)
        AND     A,0XF
        CMP     A,0X8
        JR      EQ,AUTMDZ

        CLR     (FLAG2).ISATFLG
        JR      ALLMOD
;
AUTMDZ:

        TEST    (FLAG2).ISATFLG
        JR      F,HAVAUT
        SET     (FLAG2).ISATFLG

        TEST    (FLAG1).RMWRN
        JR      F,SFMDZZ                   ; IF RMTMP WRN SONG FENG

        CLR     (FLAG4).AUTSF

        CMP     (RMTMP),0X19               ; CMP WITH 25C
        JR      CC,COOLMDZ
        CMP     (RMTMP),0X17               ; CMP WITH 23C
        JR      CC,CHSHMDZ
        TEST    (FLAG2).ISDLFLG            ; IF DL MOD THEN TO CHSH
        JR      F,CHSHMDZ
;
HEATMDZ:
        CLR     (FLAG2).AUTCHSH
        LD      (SWNMOD),0X1
        JR      ALLMOD
;
COOLMDZ:
        NOP                
        CLR     (FLAG2).AUTCHSH
        LD      (SWNMOD),0X3
        JR      ALLMOD
;
CHSHMDZ:
        SET     (FLAG2).AUTCHSH
        LD      (SWNMOD),0X2
        JR      ALLMOD
;
HAVAUT:
        TEST    (FLAG2).ISHTFLG
        JR      F,HEATMDZ
        TEST    (FLAG2).AUTCHSH
        JR      F,CHSHMDZ
        TEST    (FLAG4).AUTSF
        JR      T,COOLMDZ
SFMDZZ:
        CLR     (FLAG2).AUTCHSH
        SET     (FLAG4).AUTSF
        LD      (SWNMOD),0X4
;
;******************** ALL MOD ENTER *******************
ALLMOD:
        NOP
        LD      (WDTCR2),0X4E             ; Clears the watchdog counter

        CALL    FORAD

        CALL    FADWRN
        CLR     (P0).3                    ; LIGHT THE RUN LED

        TEST    (FLAG1).RCVNEW
        JR      T,ALNRCV

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -