?? sanyo5.asm
字號:
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 (P0).7
JR F,CMPNTO
SET (P0).7 ; SET THE CMP
;/ SET (P0).6 ; SET THE OUTFAN
TEST (FLAG2).ISHTFLG
JR T,CMPNTO
SET (P7).2 ; SET THE VALVE
CMPNTO:
RET
;
;******************** FOR AD CONVERTER ****************
FORAD:
TEST (FLAG1).ADON
JR F,ADFLW
RET
;
ADFLW:
TEST (YKRTMP).5 ; TEST THE FLG OF SENSOR ROOM/REMOTE
JR F,FADFRM
CMP (YKTMIN),0XA ; IF HAV 10MINS NO REMOTE CODE
JR CS,FADFOUT
SET (YKRTMP).5 ; MAKE SENSOR IS ROOM
FADFRM:
CLR (ADCCR).4
LD (ADCCR),0Y00000101 ; FOR RM AD AN5
CALL DLY100U
CALL AD1
FADFOUT:
TEST (FLAG2).ISDLFLG
JR F,FADNOUT
CLR (ADCCR).4
LD (ADCCR),0Y00000000 ; FOR OTP AD AN2 (25PIN)
CALL DLY100U
CALL AD1
FADNOUT:
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,CHKERR
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)
JP CHKCNT
;
HIGDF:
LD (ADTMP),0X4F ; 79C
JP 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
JP ADEND
;
LOW10:
LD (ADTMP),0 ; IF ADTMP LOW0 THEN =0
JP ADEND
;
CHKERR:
LD A,(ADCCR)
AND A,0XF
CMP A,0X0
JR EQ,OTPERR
CMP A,0X5
JR EQ,RMERR
SET (FLAG1).RMPWRN
RET
;
OTPERR:
SET (FLAG1).OTPWRN
RET
;
RMERR:
SET (FLAG1).RMWRN
RET
;
ADEND:
LD A,(ADCCR)
AND A,0XF
CMP A,0X0
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 4.19M/2^10
RETI
LEADA:
LD (TC3CR),0Y01010100
NOP
NOP
LD A,(TREG3B)
CMP A,0X1E ; 7 MS TO 9.5MS
JR CS,ERROR
CMP A,0X27
JR CC,ERROR
INC (MODEP)
LD (TC3CR),0Y00001000 ; STOP & COUNTER CLEAR
LD (TREG3A),0XC0
SET (EINTCR).1 ; SET INT1 FOR FALLING EDGE
LD (TC3CR),0Y00011000 ; RESTART TC3 4.19M/2^7
RETI
;
LEADB:
LD (TC3CR),0Y01011000
LD A,(TREG3B) ;
CMP A,0X69 ; HIGH TIME IS 3.2MS TO 5 MS
JR CS,ERROR
CMP A,0XA5
JR CC,ERROR
LD HL,WORK ; CLEAR WORK
LD C,0X8
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,0X10 ; 0.5MS 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+8
LD C,0X8 ; 9 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
NOP
NOP
CMP (RCVNUM),0X48 ; 72 BITS
JR NE,ERROR
CMP (WORK),0X6A ; GUEST CODE
JR NE,ERROR
LD HL,0X81
LD C,0
LD A,0
INTJYCD:
LD W,(HL+C)
AND W,0XF
ADD A,W
LD W,(HL+C)
AND W,0XF0
SWAP W
ADD A,W
INC C
CMP C,0X8
JR CS,INTJYCD
CMP A,(0X89) ; TEST THE JYCODE
JR NE,ERROR
TEST (FLAG4).ISOFF
JR F,ERROR
TEST (FLAG2).ISDLFLG
JR T,RECNDL ; IF DL MOD THEN NO EFFECT
LD A,(0X85)
AND A,0X30
CMP A,0X10
JR EQ,ERRZZ
RECNDL:
SET (FLAG1).RCVNEW
TEST (0X83).6 ; TEST IF AUTO SEND OR SEND BY HAND
JR T,ERRZZ
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).4
SET (FLAG6).CUTCF
LD (TREG1AL),0X20 ; 1MS
LD (TREG1AH),0X0
LD (TC1CR),0Y00010100 ; RESTART THE TC1
RETI
;
PTCTCF:
CLR (P7).4
CLR (FLAG6).CUTCF
LD (TC1CR),0Y00000100 ; STOP TC1
RETI
;
;***************** THE TC2 INT *************************
PINTTC2:
LD RBS,1
TEST (FLAG2).RSTSTP ; IF HIGH SPEED
JR F,STHSPD
TEST (FLAG2).STPFKJ
JR F,STHSPD
LD A,(KGVAN) ; TEST IF SWING
AND A,0XF
CMP A,0X0
JR EQ,NTRCVF
TEST (FLAG4).HAVSTP
JR F,STHSPD
;
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
TEST (FLAG2).ISHTFLG
JR T,STPISCL
CMP (STPSPD),0X3
JR CS,NTSPZZ
JR STPCNGG
;
STPISCL:
CMP (STPSPD),0X5
JR CS,NTSPZZ
STPCNGG:
CLR (STPSPD)
INC (STPSWN) ; 20MS(COOL,CHSH), OR 12MS(HEAT)
INSTSWM:
;/ INC (FDRMMS)
;/ CMP (FDRMMS),0XFA ; 250 * 3 * 4MS = 3 SECONDS
;/ JR CS,FSTPDS2
;/ CLR (FDRMMS)
;/ INC (FDRSEC)
;/ CMP (FDRSEC),0X14 ; 20 * 3S = 1MIN
;/ JR CS,FSTPDS2
;/ CLR (FDRSEC)
;/ INC (FDRMIN)
;/ CMP (FDRMIN),0X3C ; CMP WITH 60 MINUTES
;/ JR CS,FSTPDS2
;/
;/ CLR (FDRMIN)
;/ SET (FLAG2).STPFKJ
;/ CLR (FLAG2).STPCLS
;/ CLR (FLAG4).HAVSTP
;/ LD A,(VANFAN)
;/ AND A,0XC7
;/ LD (VANFAN),A
;/FSTPDS2:
TEST (FLAG4).HAVSTP
JR T,NTSPZ2
CLR (STPSWN)
JP 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)
JP 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),0X30
JR CS,NTSTEPZ
SET (FLAG2).STPCLS
CMP (STPNUM2),0X60
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
CMP A,(STEPCL)
JR CS,NTSTEP
CLR (STPNUM2)
CLR (FLAG2).STPCLS
CLR (FLAG4).HAVSTP
JP NTSTEP
;
FSTPOPN:
CMP A,(STEPOP)
JR CS,NTSTEP
CLR (STPNUM2)
CLR (FLAG4).HAVSTP
JP NTSTEP
;
STFKJ:
CMP (STPNUM2),0X30 ; OPEN 145 DU
JR CS,NTSTEP
SET (FLAG2).STPCLS ;
LD A,(STPNUM2)
CMP A,(STEPDW)
JR CS,NTSTEP
LD (VANBUF),(STEPDW)
CLR (STPNUM2)
CLR (FLAG2).STPFKJ
CLR (FLAG2).STPCLS
JP NTSTEP
;
NTSTEP:
INC (MMMS)
CMP (MMMS),0X2
JR CC,INCMMS
RETI
INCMMS:
CLR (MMMS)
INC (JGKMS)
TEST (FLAG5).ISSHORT
JR T,MSNSHT
ADD (MMS),0XA ; ?????
ADD (STPMMS),0XA
ADD (FLSMMS),0XA
JP MSISHT
;
MSNSHT:
INC (MMS)
INC (STPMMS)
INC (FLSMMS)
MSISHT:
TEST (FLAG4).FANON
JR T,FRBZFLZ
INC (ZSCNT)
CMP (ZSCNT),0X4B ; 600MS
JR CS,FRBZFLZ
CLR (ZSCNT)
LD (ZZZZ),(ZSBUF)
CLR (ZSBUF)
CMP (ZZZZ),0X3
JR CC,FFKFLW
INC (IFFK)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -