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

📄 ylktst.asm

📁 油烟机的程序说明代码 大厂定制 该型号已经生产几W台 程序稳定
💻 ASM
📖 第 1 页 / 共 5 页
字号:
CLIFMHF:
        TEST    (FLAG6).HGFN
        JR      F,HIGFAN
        JP      MIDFAN
;

HIGFAN:

        SET     (FLAG6).HGFN
        CLR     (FLAG6).MDFN
        CLR     (FLAG6).LWFN

        TEST    (FLAG4).IS30JX
        JR      F,HGFN26
        LD      (FAN1),0X1D           ; 950RPM
        LD      (FAN2),0X1D
        RET
;
HGFN26:
        LD      (FAN1),0X23          ; 1160RPM
        LD      (FAN2),0X24
        RET
;

MIDFAN:
        CLR     (FLAG6).HGFN
        SET     (FLAG6).MDFN
        CLR     (FLAG6).LWFN
        TEST    (FLAG4).IS30JX
        JR      F,MDFN26
        LD      (FAN1),0X1A            ; 850RPM
        LD      (FAN2),0X1A
        RET
;
MDFN26:
        LD      (FAN1),0X1E            ; 990RPM
        LD      (FAN2),0X1E
        RET
;
LOWFAN:
        CLR     (FLAG6).HGFN
        CLR     (FLAG6).MDFN
        SET     (FLAG6).LWFN

        TEST    (FLAG4).IS30JX
        JR      F,LWFN26
        LD      (FAN1),0X17           ; 750RPM
        LD      (FAN2),0X17
        RET
;
LWFN26:
        LD      (FAN1),0X19          ; 820RPM
        LD      (FAN2),0X19
        RET
;

LLWFAN:

        CLR     (FLAG6).HGFN
        CLR     (FLAG6).MDFN
        CLR     (FLAG6).LWFN
        CLR     (LWFNSEC)

        LD      (FAN1),0X13               ; 630RPM
        LD      (FAN2),0X14

        RET

;
;************************ FOR RECEIVE AND DS ***************
FDS:

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

        CLR     (FLAG1).RCVNEW

        LD      W,(SLPDSF)               ; THE DSFLG BUFF

        LD      B,0X0              ; IF CODE IS RIGHT TRANSFER IT TO CODE
        LD      DE,0X82
        LD      HL,0X86
TRNS:
        LD      (HL),(DE)
        INC     DE
        INC     HL
        INC     B
        CMP     B,0X4                     ; 4 WORDS
        JR      CS,TRNS
;

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


        TEST    (SLPDSF).7
        JR      F,IFSWNND               ; TEST IF HAVE SLEEP 
        CLR     (SLPSEC)
        CLR     (SLPMIN)

IFSWNND:

        CLR     (FLAG4).HAVBUZ

        TEST    (SLPDSF).5              ; TEST DSG
        JR      F,FDSHDS
        TEST    (SLPDSF).6
        JR      F,FDSHDS

FCLRTIM:
        CLR     (SECOND)                ;  CLR THE TIME
        CLR     (MINUTE)
        CLR     (HOUR)

        RET
;
FDSHDS:

        AND     W,0X60                 ; BEFORE NO DS
        CMP     W,0
        JR      EQ,FCLRTIM

        LD      A,(SLPDSF)
        AND     A,0X60
        CMP     A,W
        JR      NE,FCLRTIM

        RET
;

;********************** FOR PRESET TMP *************************
FPRTMP:
        LD      (WDTCR2),0X4E             ; Clears the watchdog counter

        LD      C,(SETTMP)
        LD      A,(SETTMP)
        AND     A,0XF

TJSTTMP:                                        ; 16 JZH TO 10JZH
        AND     C,0XF0
        SUB     C,0X10
        JR      CS,TJSTTOK
        ADD     A,0XA
        CMP     C,0X10
        JR      CC,TJSTTMP

TJSTTOK:

        LD      (PRSTMP),A
        LD      HL,ADTABL
        LD      A,(PRSTMP)
        ADD     A,(MDFTMP)                 ; Becouse the tmp form -10c
        LD      C,A
        LD      (PRSVAL),(HL+C)
        RET
;
;***************** FOR COMPRESSOR ON ********************
FCMPON:

        TEST    (FLAG1).DLY3M
        JR      F,CMPNTO

        TEST    (P7).6                  ; TEST THE CMP
        JR      F,CMPNTO

        TEST    (FLAG2).ISHTFLG
        JR      T,CMPNTO1
        SET     (P7).4                ; SET THE VALVE
CMPNTO1:
        SET     (P7).6                ; SET THE CMP
        CLR     (OFFSEC)
        SET     (P7).5

CMPNTO:

        RET
;

;******************** FOR AD CONVERTER ****************
FORAD:
        TEST    (FLAG1).ADON
        JR      F,ADFLW
        RET
;
ADFLW:

        CLR     (ADCCR).4
        LD      (ADCCR),0Y00000101      ; FOR RM AD   AN5  
        CALL    DLY100U
        CALL    AD1

        TEST    (FLAG2).ISDLFLG
        JR      F,ADNOTPW

        CLR     (ADCCR).4
        LD      (ADCCR),0Y00000011      ; FOR OTP AD   AN3  
        CALL    DLY100U
        CALL    AD1
        JR      ADFRMP
;
ADNOTPW:
        CLR     (FLAG1).OTPWRN

ADFRMP:
        CLR     (ADCCR).4
        LD      (ADCCR),0Y00000100      ; FOR RMP AD   AN4  
        CALL    DLY100U

        CALL    AD1

        CLR     (FLAG1).ADON
        RET
;
;***************************************************
AD1:
        SET     (ADCCR).6
        NOP
        NOP
ADWTAD:
        NOP
        TEST    (ADCCR).7
        JRS     T,ADWTAD
        NOP
        LD      (ADVAL),(ADCDR)
        CMP     (ADVAL),0X8
        JR      CS,CHKERR
        CMP     (ADVAL),0X2C              ; CMP WITH -10C
        JR      CS,LOW10
        CMP     (ADVAL),0XF0
        JR      CC,CHKERR2
        CMP     (ADVAL),0XDA              ; CMP WITH THE MAX TMP 79C
        JR      CC,HIGDF
        CLR     (ADTMP)
        LD      HL,ADTABL+1
CHKCNT:
        LD      A,(HL)
        CMP     A,(ADVAL)
        JR      CC,CHKOK
        INC     HL
        INC     (ADTMP)
        JR      CHKCNT
;
HIGDF:
        LD      (ADTMP),0X4F                ; 79C
        JR      ADEND
;
CHKOK:

        INC     (ADTMP)
        SUB     A,(ADVAL)
        LD      C,A
        LD      W,(HL-1)
        LD      A,(ADVAL)
        SUB     A,W
        CMP     A,C
        JR      CC,CKTMOK
        DEC     (ADTMP)

CKTMOK:
        CMP     (ADTMP),0XA                 ; if c > 10
        JR      CS,LOW10
        SUB     (ADTMP),0XA
        JR      ADEND
;
LOW10:
        LD      (ADTMP),0                   ; IF ADTMP LOW0 THEN =0
        JR      ADEND
;
CHKERR:
        LD      (ADTMP),0
        JR      ADHAVW
;
CHKERR2:
        LD      (ADTMP),0X4F               ; MAKE 79C

ADHAVW:
        LD      A,(ADCCR)
        AND     A,0XF
        CMP     A,0X3
        JR      EQ,OTPERR    
        CMP     A,0X5
        JR      EQ,RMERR
        SET     (FLAG1).RMPWRN
        LD      (RMPTMP),(ADTMP)         ; ISRMPTMP
        LD      (RMPVAL),(ADVAL)
        RET
;
OTPERR:
        SET     (FLAG1).OTPWRN
        LD      (OTPTMP),(ADTMP)
        LD      (OTPVAL),(ADVAL)
        RET
;
RMERR:
        SET     (FLAG1).RMWRN
        LD      (RMTMP),(ADTMP)
        LD      (RMVAL),(ADVAL)
        RET
; 

ADEND:
        LD      A,(ADCCR)
        AND     A,0XF
        CMP     A,0X3
        JR      EQ,ISOTPIP  
        CMP     A,0X5
        JR      EQ,ISRMTMP
        CLR     (FLAG1).RMPWRN
        LD      (RMPTMP),(ADTMP)         ; ISRMPTMP
        LD      (RMPVAL),(ADVAL)
        RET
;
ISOTPIP:
        CLR     (FLAG1).OTPWRN
        LD      (OTPTMP),(ADTMP)
        LD      (OTPVAL),(ADVAL)
        RET
;
ISRMTMP:
        CLR     (FLAG1).RMWRN
;/        CLR     (FLAG4).FDS50
        LD      (RMTMP),(ADTMP)
        LD      (RMVAL),(ADVAL)
        RET
;
;******************* the INT1 for receive the remote ***************

PINT1:
        LD     RBS,2
        CMP    (MODEP),1                 ; MODEP=0-->LEAD
        JR     CS,LEAD           
        CMP    (MODEP),2                 ; MODEP=1-->LEADA
        JR     CS,LEADA
        CMP    (MODEP),3                 ; MODEP=2-->LEADB
        JR     CS,LEADB
        CMP    (MODEP),4                 ; MODEP=3-->DATACD
        JR     CS,DATACD
        JP     ERROR
;
LEAD:
        LD     (TC3CR),0Y00000100
        CLR    (EINTCR).1             ; SET INT1 FOR RISING EDGE
        INC    (MODEP)
        LD     (TREG3A),0X3D          ; MAKE TC3 IS 15MS
        LD     (TC3CR),0Y00010100     ; Start TC3 
        RETI

LEADA:
        LD     (TC3CR),0Y01010100
        NOP
        NOP
        LD     A,(TREG3B)
        CMP    A,0X1F                      ; 8 MS TO 10MS
        JR     CS,ERROR
        CMP    A,0X2A
        JR     CC,ERROR
        INC    (MODEP)

        LD     (TC3CR),0Y00001000    ; STOP & COUNTER CLEAR
        LD     (TREG3A),0X83         ; 4MS
        SET    (EINTCR).1            ; SET INT1 FOR FALLING EDGE
        LD     (TC3CR),0Y00011000    ; RESTART TC3
        RETI
;
LEADB:
        LD     (TC3CR),0Y01011000
        LD     A,(TREG3B)           ; 
        CMP    A,0X31               ; HIGH TIME IS 1.5MS TO 2.6MS
        JR     CS,ERROR
        CMP    A,0X56
        JR     CC,ERROR
        LD     HL,WORK              ; CLEAR WORK
        LD     C,0X4                ; 5BYTES
CLRWK:
        LD     (HL),0
        INC    HL
        DEC    C
        JR     F,CLRWK
        LD     (TC3CR),0Y00001000    ; CLEAR THE TIME CNTER
        CLR    (RCVNUM)
        INC    (MODEP)
        LD     (TC3CR),0Y00011000    ;RESTART TC3
        RETI
;
ERROR:
        LD     (TC3CR),0Y00000100    ;STOP THE TC3
        CLR    (MODEP)
        CLR    (RCVNUM)
        SET    (EINTCR).1            ; SET INT1 FOR FALLING EDGE
        RETI
;
DATACD:
        LD     (TC3CR),0Y01011000
        LD     A,(TREG3B)
        CMP    A,0X13                  ; 0.6MS TO 2.5MS IS RIGHT
        JR     CS,ERROR
        CMP    A,0X52
        JR     CC,ERROR
        CMP    A,0X31            ; IF >1.5MS THEN TO "1" <1MS TO "0"
        JR     CC,SET1
        CLR    CF
        JR     DTCDF
;
SET1:
        SET    CF

DTCDF:
        LD     HL,WORK+4
        LD     C,0X4              ; 5 TIMES
WKSHIFT:
        LD     A,(HL)             ; RECEIVE DATA AND RESTORE IN WORK
        RORC   A
        LD     (HL),A
        DEC    HL
        DEC    C
        JR     F,WKSHIFT

        LD     (TC3CR),0Y00001000    ; CLEAR THE TIME CNTER
        INC    (RCVNUM)
        NOP
        NOP
        LD    (TC3CR),0Y00011000         ;RESTART TC3
        RETI


;******************* THE TC3 INT ***********************

PINTTC3:
        LD      RBS,3
        CMP     (RCVNUM),0X28          ; 40 BITS
        JR      NE,ERROR
        CMP     (WORK),0XAA
        JR      NE,ERROR
        LD      W,0
        LD      B,0
        LD      HL,WORK
ADDJYM:
        LD      A,(HL)
        ADD     W,A
        INC     HL
        INC     B
        CMP     B,0X4                 ; 5 WORDS
        JR      CS,ADDJYM

        LD      A,(0X85)
        CMP     A,W
        JR      NE,ERROR

        TEST    (FLAG2).ISDLFLG
        JR      T,RECNDL                ; IF DL MOD THEN NO EFFECT
        LD      A,(0X83)
        AND     A,0X7
        CMP     A,0X3
        JR      EQ,ERRZZ
RECNDL:
        SET     (FLAG1).RCVNEW
        SET     (FLAG3).BUZZEN
        LD      (BUZ),0XC

ERRZZ:
        JP      ERROR


;
;******************* THE TIMER ******************************
;
;          internal clock fc/2^7
;
;************************************************************

PINTTC1:

        TEST   (FLAG6).CUTCF
        JR     F,PTCTCF
        SET    (P7).2

        SET    (FLAG6).CUTCF
        LD     (TREG1AL),0X68
        LD     (TREG1AH),0X0

        LD     (TC1CR),0Y00011000    ; STOP AND CLEAR THE COUTER 1
        RETI
;
PTCTCF:
        CLR    (P7).2
        CLR    (FLAG6).CUTCF
        LD     (TC1CR),0Y00001000
        RETI
;

;***************** THE TC2 INT *************************

PINTTC2:

        LD      RBS,1

        TEST    (FLAG2).RSTSTP            ; IF HIGH SPEED
        JR      F,STHSPD
        TEST    (FLAG2).STPFKJ
        JR      F,STHSPD

        TEST    (FLAG4).FANON
        JR      T,NTSPZ2
        TEST    (FANMOD).4                 ; TEST IF HAVE SWING
        JR      F,NTRCVF
;
NTSPZ2:
        LD      A,(P1)                     ; IF NO STEP THEN CLR ALL PULSE
        AND     A,0XF
        LD      (P1),A
NTSPZZ:
        JP      NTSTEP
;
NTRCVF:

        INC     (STPSPD)                   ; FOR STEP MOTOR
        CMP     (STPSPD),0X5
        JR      CS,NTSPZZ
        CLR     (STPSPD)

        INC     (FDRMMS)
        CMP     (FDRMMS),0XFA              ; 250 * 5 * 4MS = 5 SECONDS
        JR      CS,FSTPDS2
        CLR     (FDRMMS)
        INC     (FDRSEC)
        CMP     (FDRSEC),0XC               ; 12 * 5S = 1MIN
        JR      CS,FSTPDS2
        CLR     (FDRSEC)
        INC     (FDRMIN)
        CMP     (FDRMIN),0X3C               ; CMP WITH 60 MINUTES
        JR      CS,FSTPDS2

        CALL    STPRST                      ; IF VAN RUN 1 HOUR RESET


FSTPDS2:

        JR      STPRUN
;
STHSPD:
        INC     (STPSPD)
        CMP     (STPSPD),0X1
        JR      CS,NTSTEPZ
        CLR     (STPSPD)

STPRUN:

        TEST    (FLAG2).STPCLS            ; FOR SHUN SHI ZHEN
        JR      T,OPENDR
;
CLOSDR:
        LD      HL,STPTBL
        INC     (STEPSW)
        CMP     (STEPSW),0X8
        JR      CS,CLSDRFF
        CLR     (STEPSW)
CLSDRFF:
        LD      C,(STEPSW)
        LD      W,(HL+C)

        JR      STPOK
;

STPTBL:
        DB      0Y00010000        ; STEP 1
        DB      0Y00110000        ; STEP 2
        DB      0Y00100000        ; STEP 3
        DB      0Y01100000        ; STEP 4
        DB      0Y01000000        ; STEP 5
        DB      0Y11000000        ; STEP 6
        DB      0Y10000000        ; STEP 7
        DB      0Y10010000        ; STEP 8


OPENDR:                                   ; FOR  NI SHI ZHEN
        LD      HL,STPTBL
        CMP     (STEPSW),0
        JR      NE,OPDRFF
        LD      (STEPSW),0X8
OPDRFF:
        DEC     (STEPSW)
        LD      C,(STEPSW)
        LD      W,(HL+C)

STPOK:

⌨️ 快捷键说明

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