📄 yz285.asm
字号:
;
;********************** FOR PRESET TMP *************************
FPRTMP:
LD (WDTCR2),0X4E ; Clears the watchdog counter
LD C,(CD0TMP)
AND C,0XF
LD A,0X1F ; 31
SUB A,C
LD (PRSTMP),A
RET
;
;***************** FOR COMPRESSOR ON ********************
FCMPON:
TEST (FLAG1).DLY3M
JR F,CMPNTO
TEST (P7).4
JR F,CMPNTO
SET (P7).4
NOP
SET (P7).0
NOP
CMPNTO:
RET
;
;******************** FOR AD CONVERTER ****************
FORAD:
TEST (FLAG1).ADON
JR F,ADFLW
RET
;
ADFLW:
CLR (ADCCR).4
LD (ADCCR),0Y00000011 ; FOR RMP AD
CALL DLY100U
CALL AD1
CLR (ADCCR).4
LD (ADCCR),0Y00000101 ; FOR RM AD
CALL DLY100U
CALL AD1
CLR (FLAG1).ADON
RET
;
;***************************************************
AD1:
SET (ADCCR).6
NOP
ADWTAD:
NOP
TEST (ADCCR).7
JRS T,ADWTAD
NOP
LD (ADVAL),(ADCDR)
CMP (ADVAL),0X8
JR CS,CHKERR
CMP (ADVAL),0XF0
JR CC,CHKERR
CMP (ADVAL),0X2E ; CMP WITH -10C
JR CS,LOW10
CMP (ADVAL),0XDC ; CMP WITH THE MAX TMP 79C
JR CC,HIGDF
CLR (ADTMP)
LD HL,ADTABL2+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 =0C
JR ADEND
;
CHKERR:
LD A,(ADCCR)
AND A,0XF
CMP A,0X5
JR EQ,RMERR
SET (FLAG1).RMPWRN
RET
;
RMERR:
SET (FLAG1).RMWRN
RET
;
ADEND:
LD A,(ADCCR)
AND A,0XF
CMP A,0X5
JR EQ,ISRMTMP
CLR (FLAG1).RMPWRN
LD (RMPTMP),(ADTMP) ; IS RMPTMP
LD (RMPVAL),(ADVAL)
RET
;
ISRMTMP:
CLR (FLAG1).RMWRN
LD (RMTMP),(ADTMP)
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,0XC ; 3.0 MS TO 4.32MS
JR CS,ERROR
CMP A,0X12
JR CC,ERROR
INC (MODEP)
LD (TC3CR),0Y00001000 ; STOP & COUNTER CLEAR
LD (TREG3A),0X60
SET (EINTCR).1 ; SET INT1 FOR FALLING EDGE
LD (TC3CR),0Y00011000 ; RESTART TC3
RETI
;
LEADB:
LD (TC3CR),0Y01011000
LD A,(TREG3B) ;
CMP A,0X28 ; HIGH TIME IS 1.22MS TO 2MS
JR CS,ERROR
CMP A,0X42
JR CC,ERROR
LD HL,WORK ; CLEAR WORK
LD C,0XD
CLRWK:
LD (HL),0
INC HL
DEC C
JR F,CLRWK
CLR (RCVNUM)
INC (MODEP)
LD (TC3CR),0Y00001000
LD (TREG3A),0X60
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,0XA ; 0.3MS TO 1.8MS IS RIGHT
JR CS,ERROR
CMP A,0X3B
JR CC,ERROR
CMP A,0X20 ; IF >1MS THEN TO "1" <1MS TO "0"
JR CC,SET1
CLR CF
JR DTCDF
;
SET1:
SET CF
DTCDF:
LD HL,WORK+13
LD C,0XD ; 14 TIMES
WKSHIFT:
LD A,(HL) ; RECEIVE DATA AND RESTORE IN WORK
RORC A
LD (HL),A
DEC HL
DEC C
JR F,WKSHIFT
INC (RCVNUM)
LD (TC3CR),0Y00001000
LD (TC3CR),0Y00011000 ;RESTART TC3
RETI
;******************* THE TC3 INT ***********************
PINTTC3:
LD RBS,3
CMP (RCVNUM),0X70 ; 112 BITS
JR NE,ERROR
CMP (WORK),0X23
JR NE,ERROR
CMP (WORK+1),0XCB
JR NE,ERROR
CMP (WORK+2),0X26
JR NE,ERROR
CMP (WORK+3),0X1
JR NE,ERROR
CMP (WORK+4),0
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,0XD ; 13 WORDS
JR CS,ADDJYM
LD A,(0X8E)
CMP A,W
JR NE,ERROR
TEST (FLAG2).ISDLFLG
JR T,RECNDL ; IF DL MOD THEN NO EFFECT
LD A,(0X87)
AND A,0XF
CMP A,1
JR EQ,ERRZZ
RECNDL:
TEST (WORK+5).0 ; TEST IF HAVE HUANGQI
JR F,ERRZZ
SET (FLAG1).RCVNEW
SET (FLAG3).BUZZEN
ERRZZ:
JP ERROR
;
;******************* THE TC2 INT *************************
;*
;* FOR CLOCK AND STEP MOTOR
;*
;*
;*********************************************************
PINTTC2:
LD RBS,1
TEST (FLAG2).RSTSTP ; IF HIGH SPEED
JR F,STHSPD
TEST (FLAG2).STPFKJ
JR F,STHSPD
TEST (P7).7
JR F,IFSWING
TEST (P7).6
JR F,IFSWING
TEST (P7).5
JR F,IFSWING
JR NTSPZ2
;
IFSWING:
LD A,(VANFAN) ; TEST IF SWING
AND A,0X38
CMP A,0X38
JR EQ,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),0X4
JR CS,NTSPZZ
CLR (STPSPD)
INC (FDRMMS)
CMP (FDRMMS),0XFA ; 250 * 4 * 4MS = 4 SECONDS
JR CS,STPRUN
CLR (FDRMMS)
INC (FDRSEC)
CMP (FDRSEC),0XF ; 15 * 4S = 1MIN
JR CS,STPRUN
CLR (FDRSEC)
INC (FDRMIN)
CMP (FDRMIN),0X3C ; CMP WITH 60 MINUTES
JR CS,STPRUN
CLR (FDRMIN)
CALL STFKJFL ; AFTER 1 HOUR RESET STEP
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:
LD A,(P1)
AND A,0XF
OR A,W
LD (P1),A
INC (STPNUM)
CMP (STPNUM),0X22 ; (0X11) ;20 STEPS * 0.15DU = 3 DU
JR CS,NTSTEPZ
CLR (STPNUM)
INC (STPNUM2)
TEST (FLAG2).RSTSTP
JR T,NTRSTP
CLR (FLAG2).STPCLS
CMP (STPNUM2),0X2E ; 135DU
JR CS,NTSTEPZ
SET (FLAG2).STPCLS
CMP (STPNUM2),0X5C
JR CS,NTSTEPZ
CLR (FLAG2).RSTSTP
CLR (FLAG2).STPCLS
CLR (STPNUM2)
NTSTEPZ:
JP NTSTEP
;
NTRSTP:
TEST (FLAG2).STPFKJ
JR F,STFKJ
LD A,(STPNUM2)
TEST (FLAG2).STPCLS
JR T,FSTPOPN
TEST (FLAG2).ISHTFLG
JR F,STPCLSHT
CMP A,0X12 ; FOR CLOSE 54DU
JR CS,NTSTEP
JR STPCLSOK
;
STPCLSHT:
CMP A,0X11 ; FOR HEAT CLOSE 51DU
JR CS,NTSTEP
STPCLSOK:
CLR (STPNUM2)
CLR (FLAG2).STPCLS
JR NTSTEP
;
FSTPOPN:
TEST (FLAG2).ISHTFLG
JR F,STPOPFHT
CMP A,0X12 ; FOR COOL OPEN 54DU
JR CS,NTSTEP
JR STPOPNOK
;
STPOPFHT:
CMP A,0X11 ; FOR HEAT OPEN 51DU
JR CS,NTSTEP
STPOPNOK:
CLR (STPNUM2)
SET (FLAG2).STPCLS
JR NTSTEP
;
STFKJ:
CMP (STPNUM2),0X2E ; OPEN 135 DU
JR CS,NTSTEP
SET (FLAG2).STPCLS ;
CMP (STPNUM2),0X44 ; CLOSE TO 70DU
JR CS,NTSTEP
CLR (FLAG2).STPFKJ
TEST (FLAG2).ISHTFLG
JR F,OPNISHT
LD (STPNUM2),0X4
JR NTSTEP
;
OPNISHT:
LD (STPNUM2),0X7
NTSTEP:
INC (MMMS)
CMP (MMMS),0X2
JR CC,INCMMS
RETI
INCMMS:
CLR (MMMS)
TEST (P7).7
JR F,OPNJHQ
TEST (P7).6
JR F,OPNJHQ
TEST (P7).5
JR F,OPNJHQ
CLR (P7).2 ; IF NO FAN THEN CLEAR THE JINHUAQI
JR FJHQOK
;
OPNJHQ:
SET (P7).2 ; SET THE JINHUAQI
FJHQOK:
INC (MMS)
TEST (FLAG3).BUZZEN
JR T,NOBUZZ
SET (P1).3
INC (BUZZCNT)
CMP (BUZZCNT),0XC
JR CS,INCHI70
CLR (BUZZCNT)
CLR (FLAG3).BUZZEN
NOBUZZ:
CLR (P1).3
INCHI70:
TEST (P7).1 ; TEST THE VAL
JR T,NOVALTM
INC (VALMMS)
CMP (VALMMS),0XFD
JR CS,FIADMMS
DEC (VALMMS)
JR FIADMMS
;
NOVALTM:
CLR (VALMMS)
FIADMMS:
INC (FADMMS)
CMP (FADMMS),0XFA ; PER 2S AD ONCE
JR CS,FRFLSH1
CLR (FADMMS)
SET (FLAG1).ADON
FRFLSH1:
CMP (MMS),0X7D ; 125 * 8MS = 1 S
JR CC,FINCSC0
RETI
;
FINCSC0:
CLR (MMS)
INC (FLD2SEC)
INC (FLD0SEC)
INC (CYRSEC)
CMP (CYRSEC),0XF0
JR CS,FHTHSTM
DEC (CYRSEC)
FHTHSTM:
TEST (FLAG2).ISHTFLG
JR T,ICMNHT
TEST (P7).4 ; TEST THE CMP
JR T,INCMP11
INC (HTCMSEC)
CMP (HTCMSEC),0X3C
JR CS,INCMP11
CLR (HTCMSEC)
INC (HTCMIN)
CMP (HTCMIN),0XF0
JR CS,INCMP11
DEC (HTCMIN)
JR INCMP11
;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -