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

📄 ylktst.asm

📁 油烟机的程序说明代码 大厂定制 该型号已经生产几W台 程序稳定
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;**************************************************************
;*
;*   MOD:      YLKS322 FEN TI AIR CONDITION
;*   MPU:      TMP87C846
;*   CLOCK:    4.19 MHz
;*   BY:       AIFUAN  HANGZHOU DAFENG
;*   ALL RIGHT RESERVED     
;**************************************************************
;
;   EXTFAN   ---->    (P7).5
;
;   COMPRESS ---->    (P7).6
;   VALVE    ---->    (P7).4   
;
;   THE TIME  LED----> (P0).5
;   THE SLEEP LED----> (P0).4
;   THE POWER LED----> (P0).6
;   THE RUN   LED----> (P0).3
;
;   ROOM AD     ----> (P6).2
;   OUT PIP AD  ----> (P6).0
;   ROOM PIP AD ----> (P6).1
;
;   SHORT  -----> (P6).6      
;   IS 30  -----> (P1).0      
;   TEST   -----> (P6).7
;   DL     -----> (P7).3
;
;
;   AUTO KEY  ----> (P0).1
;   FORCE KEY ----> (P0).2
;
;*****************************************************************
;  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------> 0X85
;
;     0X86------>0X88


SLPDSF    EQU    0X86

FANMOD    EQU    0X87

SETTMP    EQU    0X88
;

HTCMSEC   EQU    0X96
FLAG1     EQU    0X97     ;RMB    1
;*****************************************************************
RCVOK     EQU    0
DLY3M     EQU    1
KEYBUF    EQU    2
ADON      EQU    3
RMWRN     EQU    4
OTPWRN    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
OTPTMP    EQU    0XA5
RMVAL     EQU    0XA6
RMPVAL    EQU    0XA7
OTPVAL    EQU    0XA8
FLAG2     EQU    0XA9
;***************************************************************
CSFRST    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
;
AUTMMS    EQU    0XAA
FLSCNT    EQU    0XAB
FLSMMS    EQU    0XAC
CMPSEC    EQU    0XAD
CMPMIN    EQU    0XAE
PRSVAL    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
MDFTMP    EQU    0XB3
CHSSEC    EQU    0XB4
CHSMIN    EQU    0XB5
HOUR      EQU    0XB6
FLAG6     EQU    0XB7
;**************************************************************
LWFN      EQU    0
MDFN      EQU    1
HGFN      EQU    2
SWJWRN    EQU    3
CSSTP     EQU    4
CUTCF     EQU    5
;

FADMMS    EQU    0XB8
SLPSEC    EQU    0XB9
SLPMIN    EQU    0XBA
CMPSEC2   EQU    0XBB
CLH25M    EQU    0XBC
LWFNSEC   EQU    0XBD
FKWSEC    EQU    0XBE
HTCMIN    EQU    0XBF
CLSSEC    EQU    0XC0
FKWMIN    EQU    0XC1
AUTSEC    EQU    0XC2
FLDSEC    EQU    0XC3
FLFSEC    EQU    0XC4
FLFMIN    EQU    0XC5
CLCMIN    EQU    0XC6
TSTSEC    EQU    0XC7
TSTMIN    EQU    0XC8
;/DSMIN     EQU    0XC9
MMMS      EQU    0XCA
OFFSEC    EQU    0XCB
OFFMIN    EQU    0XCC
FLAG4     EQU    0XCD
;*****************************************************
HAVBUZ    EQU    0
IS30JX    EQU    1
ISTEST    EQU    2
ISCHSH    EQU    3
KEY2BF    EQU    4
FANON     EQU    5
FKERR     EQU    6        
TSTRUN    EQU    7
;
FDRSEC    EQU    0XCE
FDRMIN    EQU    0XCF
FDRMMS    EQU    0XD0
INTCNT    EQU    0XD1
STRMIN    EQU    0XD2
BUZZCNT   EQU    0XD3
BUZ       EQU    0XD4
;/HI52C     EQU    0XD5
FDTM      EQU    0XD6
WJTS      EQU    0XD7
RECV      EQU    0XD8
ZSCNT     EQU    0XD9
ZSBUF     EQU    0XDA
WJTSBF    EQU    0XDB
; DC
FLAG5     EQU    0XDD
;**************************************************
SWNBUF    EQU    0
STPFLF    EQU    1
CLSCMP    EQU    2
ONCMP     EQU    3
ISSHORT   EQU    4
HTHI62    EQU    5         
IS1H45M   EQU    6
STPAUT    EQU    7
;
FAN1      EQU    0XDE
FAN2      EQU    0XDF
IFFK      EQU    0XE0
ZZZZ      EQU    0XE1
;
;/CLSTBF    EQU    0XE3
;/HTSTBF    EQU    0XE4
CLAMIN    EQU    0XE5
FLFMMS    EQU    0XE6
AUTSTP    EQU    0XE7
FLDMIN    EQU    0XE8
CSOFFM    EQU    0XE9 
CSONM     EQU    0XEA
CLH25C    EQU    0XEB

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

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

        LD     (WDTCR1),0Y00001101  ; Watch dog time is 62Ms
        LD     (TC2CR),0Y00001100   ; Sets the TC2 mode and source clock 
        LDW    (TREG2L),0X82F       ; Make TC2 is 4MS
        LD     (EINTCR),0Y0011010   ; Sets the falling edge
        NOP                         ; At the INT1,INT3,INT4
        LD     (TBTCR),0Y11100010   ; Sets the buzzer 8k
        SET    (EIRL).5             ; Enable INT1
        SET    (EIRL).4             ; ENABLE INTTC1
        SET    (EIRH).6             ; ENABLE INTTC2
        SET    (EIRH).0             ; ENABLE INTTC3
        SET    (EIRH).3             ; ENABLE INT3
        SET    (EIRH).4             ; ENABLE INT4
        LD     (TC2CR),0Y00101100   ; Start TC2 

        LD     A,0
        LD     HL,0X48
        LD     BC,0X1F7
RAMCLR:
        LD     (HL+),A
        DEC    BC
        JRS    F,RAMCLR             ; RAM CLEARED FROM OO48H TO 023FH

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

        CMP     (MMS),0XA
        JR      CS,WAITMS

IFHVDL:
        TEST    (P1).0              ; Test if for 26
        JR      F,NOT26
        CALL    DLY100U
        TEST    (P1).0
        JR      F,NOT26
        SET     (FLAG4).IS30JX
;
NOT26:

        TEST    (P7).3
        JR      F,NOTDL
        CALL    DLY100U
        TEST    (P7).3
        JR      F,NOTDL

        SET     (FLAG2).ISDLFLG

NOTDL:

        TEST    (P0).1
        JR      T,BFLLFF
        CALL    DLY100U
        TEST    (P0).1
        JR      T,BFLLFF
        JP      TESTSF
;
BFLLFF:
        TEST    (P0).2
        JR      T,BFNTST
        CALL    DLY100U
        TEST    (P0).2
        JR      T,BFNTST
        JP      TESTSF
;
BFNTST:

        SET     (FLAG3).BUZZEN
        LD      (BUZ),0XC
        SET     (FLAG1).ADON
        CALL    FORAD
;
        NOP
;/        SET     (FLAG1).DLY3M          ; FIRST FOR DLAY 3MINUTES
        SET     (FLAG2).RSTSTP
        SET     (FLAG2).STPCLS

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

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

        CALL    FORAD

        CALL    FADWRN

        CALL    CMPCLS

        CALL    VALCLR

        CALL    FANCLR

        SET     (P0).3                   ; CLEAR THE RUN LED
        SET     (P0).4                   ; CLEAR THE SLEEP LED
        SET     (P0).6                   ; CLEAR THE POWER LED


        CLR     (FLAG3).FLDFLG           ; CLEAR FLG FOR COOL MOD
        CLR     (FLDSEC)
        CLR     (FLDMIN)

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

;/        TEST    (FLAG2).ISATFLG
;/        JR      T,ATCLMOD
;/        CMP     (AUTMIN),0X78
;/        JR      CS,NTCLMOD
;/
;/ATCLMOD:

        CLR     (FLAG2).ISATFLG

        CLR     (AUTMMS)
        CLR     (AUTSEC)

        CLR     (FLAG3).ISCOOL
        CLR     (FLAG2).ISHTFLG

NTCLMOD:

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

        CLR     (FLAG4).TSTRUN           ; CLEAR THE TEST RUN FLG
        CLR     (TSTSEC)
        CLR     (TSTMIN)

        SET     (FLAG3).GJFLG


;/        CLR     (FLAG6).SWJWRN             ; CLEAR SHWJWRN FLG CNT
;/         CLR     (CLH25C)
;/        CLR     (CLH25M)

        TEST    (SLPDSF).6                 ; TEST IF HAVE DSK
        JR      T,MNODSK

;/        CLR     (P0).5                     ; LIGHT THE TIME LED
        CALL    TMLEDON 

        LD      A,(HOUR)
        LD      W,(SLPDSF)
        AND     W,0XF
        CMP     A,W
        JR      CS,MNNDSK
        CLR     (SLPDSF).6

        JR      MISDSK
;
MNODSK:

;/        SET     (P0).5                 ; CLEAR THE TIME LED
        CALL    TMLEDOFF

MNNDSK:         

        TEST    (FLAG1).RCVNEW
        JR      T,MFNRCV
MNHVDS:

        CALL    FDS
        TEST    (SLPDSF).4                 ; TEST ON/OFF
        JR      T,MFNRCV

        TEST    (SLPDSF).6
        JR      T,MISDSK                ; IF DSK THEN

        LD      A,(SLPDSF)              ; IF DSK TIME IS 0 THEN 
        AND     A,0XF
        CMP     A,0
        JR      EQ,MISDSK

        JR      MFNRCV
;
MISDSK:
        CALL    FMNTKJ
        JP      FORMOD
;
MFNRCV:
        TEST    (P0).1                  ; TEST THE AUTO KEY
        JR      T,MNNKEY
        CALL    DLY100U
        TEST    (P0).1
        JR      T,MNNKEY
        TEST    (FLAG1).KEYBUF
        JR      T,MNTSTFC
        CLR     (FLAG1).KEYBUF

        SET     (FLAG3).BUZZEN
        LD      (BUZ),0XC

        TEST    (SLPDSF).6                  ; TEST IF HAVE DSK
        JR      T,MATNDSK
        CLR     (SLPDSF).6
        JP      MAIN
;
MATNDSK:
        CALL    FMNTKJ
        LD      (SETTMP),0X24         ; MAKE SET TMP IS 24C
        LD      (FANMOD),0X10         ; MAKE MOD IS AUTO FAN AUTO VAN SWING
        LD      (SLPDSF),0X0
        JP      FORMOD
;
MNNKEY:
        SET     (FLAG1).KEYBUF
;
MNTSTFC:
        TEST    (P0).2                  ; TEST THE AUTO KEY
        JR      T,MNNKEY2
        CALL    DLY100U
        TEST    (P0).2
        JR      T,MNNKEY2
        TEST    (FLAG4).KEY2BF
        JR      T,MAINZ

        CLR     (FLAG4).KEY2BF

        SET     (FLAG3).BUZZEN
        LD      (BUZ),0XC

        TEST    (SLPDSF).6                  ; TEST IF HAVE DSK
        JR      T,MFCNDSK
        CLR     (SLPDSF).6
        JP      MAIN
;
MFCNDSK:

        CALL    FMNTKJ

        JP      FTSTCMP
;
MNNKEY2:
        SET     (FLAG4).KEY2BF

MAINZ:
        JP      MAIN
;

FMNTKJ:

        CLR     (FLAG6).SWJWRN            ; CLEAR SWJWRN FLG
        CLR     (FLFMIN)
        CLR     (FLFSEC)


;/        TEST    (FLAG2).RSTSTP
;/        JR      T,STFKJFL
;/
;/        CMP     (STPNUM2),0X26          ; IF HAV OPEN 115DU
;/        JR      CS,STFKNC
;/
;/STFKJFL:

        CLR     (STPNUM)
        CLR     (STPNUM2)
STFKNC:

        CLR     (FDRMMS)
        CLR     (FDRSEC)
        CLR     (FDRMIN)

        CLR     (FLAG2).RSTSTP
        CLR     (FLAG2).STPCLS
        SET     (FLAG2).STPFKJ
        RET

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

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

        LD      A,(FANMOD)
        AND     A,0X7
        CMP     A,0
        JR      EQ,AUTMDZ

        CLR     (FLAG2).ISATFLG
        CLR     (AUTMMS)
        CLR     (AUTSEC)

        JP      ALLMOD
;
AUTMDZ:

        TEST    (FLAG2).ISATFLG
        JR      F,HVATBF

        CALL    CMPCLS
        CALL    VALCLR
        SET     (FLAG4).FANON
        CALL    LLWFAN

        CMP     (AUTSEC),0X14              ; IF HAVE 20SECONDS
        JR      CS,ALLMOD

        CALL    FANCLR2

        SET     (FLAG2).ISATFLG

        CALL    FPRTMP
        LD      A,(RMTMP)
        CMP     A,(PRSTMP)           ; IF RMTMP >= PRSTMP TO COOL ELSE HEAT
        JR      CC,COLMDZ

        TEST    (FLAG2).ISDLFLG
        JR      F,COLMDZ             ; IF DL THEN TO COOLMOD

        JR      HATMDZ
;
HVATBF:
        TEST    (FLAG3).ISCOOL
        JR      F,COLMDZ
        TEST    (FLAG2).ISDLFLG
        JR      F,COLMDZ

HATMDZ:
        LD      A,(FANMOD)
        AND     A,0XF8
        OR      A,0X3
        LD      (FANMOD),A

⌨️ 快捷键说明

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