?? sanyo5.asm
字號:
;***********************************************************
;*
;* MOD: SANYO22 DL FEN TI AIR CONDITION
;* MPU: TMP87C846
;* CLOCK: 4.19 MHz
;* BY: AIFUAN HANGZHOU DAFENG
;* ALL RIGHT RESERVED
;***********************************************************
;
;************************************************************
;
; EXTFAN ----> ??
;
; COMPRESS ----> (P0).7
; VALVE ----> (P7).2
;
; ROOM AD ----> (P6).5
; OUT PIP AD ----> ??
; ROOM PIP AD ----> (P6).4
;
; ROOM FAN ----> (P7).4
;
; SHORT -----> (P6).6 (PIN 29)
; DL -----> (P6).3 (PIN 33)
;
;**********************************************
; 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------> 0X89
;
; 0X8A------>0X94
SETTMP EQU 0X8A
YKRTMP EQU 0X8B
ONEHR EQU 0X8C
DSMDFN EQU 0X8D
KGVAN EQU 0X8E
SLPFLG EQU 0X8F
;
FLAG1 EQU 0X97 ;RMB 1
;*****************************************************
RCVOK EQU 0
DLY3M EQU 1
ISOFBF 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
CSLWFN EQU 6
ISHTFLG EQU 7
;
VANBUF 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
;********************************************88
LWFN EQU 0
MDFN EQU 1
HGFN EQU 2
SWJWRN EQU 3
CSSTP EQU 4
CUTCF EQU 5
;
FADSEC EQU 0XB8
SLPSEC EQU 0XB9
SLPMIN EQU 0XBA
CMPSEC2 EQU 0XBB
FLDSEC EQU 0XBC
CLH25M EQU 0XBD
FKWSEC EQU 0XBE
HTCMIN EQU 0XBF
CLSSEC EQU 0XC0
FKWMIN EQU 0XC1
YKTSEC EQU 0XC2
YKTMIN EQU 0XC3
JGKMS 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
;*****************************************************
HAVBUZ EQU 0
ISOFF EQU 1
;/ EQU 2
ISCHSH EQU 3
ISTEST EQU 4
FANON EQU 5
FKERR EQU 6
HAVSTP 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
;/ 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
STPMMS EQU 0XE6
FLDMIN EQU 0XE7
CSOFFM EQU 0XE8
CSONM EQU 0XE9
STEPOP EQU 0XEA
STEPCL EQU 0XEB
STEPDW EQU 0XEC
VNFNBF EQU 0XED
STPSWN EQU 0XEE
CSSTBF EQU 0XEF
CLH25C EQU 0XF0
H52MIN EQU 0XF1
;*********************************************************
CODE_1 SECTION CODE ABS=0XE000
;*****************PROGRAM START****************************
RESET:
LD SP,0X23F
DI
LD RBS,0
;
LD (P0CR),0Y10111000
LD (P6CR),0Y00000000
LD (P1CR),0Y11111000 ; ENABLE BUZZER
LD (P7CR),0Y00010000
NOP
NOP
SET (P0).5
SET (P0).4
SET (P0).3
LD A,0
LD HL,0X48
LD BC,0X1F7
RAMCLR:
LD (HL+),A
DEC BC
JRS F,RAMCLR ; RAM CLEARED FROM OO48H TO 023FH
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),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
EI
;
WAITMS:
LD (WDTCR2),0X4E ; Clears the watchdog counter
CMP (MMS),0XA
JR CS,WAITMS
TEST (P0).0 ; IF HAVE 3MINS DELAY
JR T,IFHVDL
TEST (P0).0
JR T,IFHVDL
SET (FLAG1).DLY3M
IFHVDL:
;/ TEST (P1).2 ; Test if for dl
;/ JR F,NOTDL
;/ CALL DLY100U
;/ TEST (P1).2
;/ JR F,NOTDL
SET (FLAG2).ISDLFLG
NOP
NOP
SET (FLAG2).ISDLFLG
;
;/ TEST (P6).6
;/ JR F,BFLLFF
;/ CALL DLY100U
;/ TEST (P6).6
;/ JR F,BFLLFF
;/ JP TESTSF
;/BFLLFF:
SET (FLAG3).BUZZEN
LD (BUZ),0XC
SET (FLAG1).ADON
CALL FORAD
;
NOP
LD (VANBUF),0XFE
SET (FLAG2).RSTSTP
;***************** THE MAIN PROGRAM *****************
MAIN:
LD (WDTCR2),0X4E ; Clears the watchdog counter
CALL FORAD
CALL CMPCLS
CALL VALCLR
CALL JUGKEY
CALL FANCLR
SET (P0).3 ; CLEAR THE LED OF RUN
CLR (FLAG3).FLDFLG ; CLEAR FLG FOR COOL MOD
CLR (FLDMIN)
CLR (FLAG4).ISCHSH ; CLEAR FLG FOR CHSH MOD
CLR (FLAG3).CHSFLG
CLR (FLAG6).CSSTP
CLR (FLAG3).ISCOOL
CLR (FLAG2).ISHTFLG
NTCLMOD:
CLR (FLAG3).HTFCHS ; CLEAR FLG FOR HEAT
CLR (HTCMIN)
CLR (FLAG2).CSISEND
SET (FLAG2).CSFRST
CLR (FLAG5).HTHI62
CLR (FLAG6).SWJWRN
CLR (CLH25C)
CLR (CLH25M)
SET (FLAG3).GJFLG
CLR (FLAG4).FKERR ; CLEAR FKERR
CLR (IFFK)
TEST (FLAG4).ISOFF
JR F,MNODSK
TEST (DSMDFN).3 ; TEST IF HAVE DSK
JR T,MNODSK
CLR (P0).5 ; LIGHT THE TIME LED
JR MNNDSK
;
MNODSK:
SET (P0).5 ; NO DSK THEN CLEAR THE LED OF TIME
MNNDSK:
TEST (FLAG1).RCVNEW
JR T,MFNRCV
MNHVDS:
CALL FDS
TEST (KGVAN).7
JR T,MFNRCV
TEST (FLAG4).ISTEST
JR T,MISDSK
TEST (YKRTMP).6
JR T,MFNRCV ; IF ON "TEST" AUTO REMOTE NO EFFECT
MISDSK:
CALL FMNTKJ
JP FORMOD
;
MFNRCV:
TEST (FLAG4).ISOFF
JR F,MNNKEY
TEST (FLAG1).ISOFBF
JR T,MAINZ
CLR (FLAG1).ISOFBF
TEST (FLAG4).ISTEST ; IF" OFF--> TEST "THEN NO EFFECT
JR F,MAINZ
;/ SET (FLAG3).BUZZEN ; IF " OFF ---> ON " THEN TO RUN COOL
;/ LD (BUZ),0XC
SET (YKRTMP).5 ; MAKE SENSOR BY ROOM
CMP (SETTMP),0X60 ; TEST IF HAVE REC BEFORE
JR CC,MISDSK
CALL FMNTKJ ; FIRST POWER ON
LD (DSMDFN),0X20 ; MAKE FAN AUTO COOL MOD
LD (KGVAN),0X87 ; MAKE VAN 6- AND KAIJI
LD (SETTMP),0X74 ; MAKE SET TMP IS 24C
JP COOLMD
;
MNNKEY:
SET (FLAG1).ISOFBF
;
MAINZ:
JP MAIN
;
FMNTKJ:
CLR (FLAG4).HAVSTP
TEST (FLAG2).RSTSTP
JR T,STFKJFL
CMP (STPNUM2),0X30 ; IF HAV OPEN 145DU
JR CS,STFKNC
STFKJFL:
CLR (STPNUM)
CLR (STPNUM2)
STFKNC:
CLR (SLPSEC)
CLR (SLPMIN)
CLR (FLAG2).RSTSTP
CLR (FLAG2).STPCLS
SET (FLAG2).STPFKJ
RET
;
;********************* FOR THE MODE CHANGE *********************
FORMOD:
NOP
;********************* ALL MOD ENTER ***************************
ALLMOD:
NOP
LD (WDTCR2),0X4E ; Clears the watchdog counter
TEST (FLAG1).RCVNEW
JR T,ALNRCV
CALL FDS
TEST (KGVAN).7 ; judge if off or on
JR F,ALANON
ALTOMN:
CALL PSTFGJ
JP MAIN
;
ALANON:
JP FORMOD
;
ISRMPWZ:
JP ISRMPW
;
ISOTPWZ:
JP ISOTPW
;
ISRMWZ:
JP ISRMW
;
ISFKWZ:
JP ISFKW
;
ISHWJWZ:
JP ISHWJW
;
ALNRCV:
CALL FORAD
CALL ALFSTEP
CALL JUGKEY
TEST (FLAG4).ISOFF
JR F,ALTOMN
TEST (FLAG4).FKERR
JR F,ISFKWZ
TEST (FLAG6).SWJWRN ; IF SHIWAIJI WRN
JR F,ISHWJWZ
TEST (FLAG1).RMWRN
JR F,ISRMWZ
TEST (FLAG1).RMPWRN
JR F,ISRMPWZ
TEST (FLAG2).ISDLFLG ; IF DL THEN NO OTPWRN
JR F,AOTISDL
TEST (FLAG1).OTPWRN
JR F,ISOTPWZ
AOTISDL:
CLR (FLSMMS)
CLR (FLSCNT)
TEST (DSMDFN).2 ; TEST IF HAVE DSG
JR T,ALLNDSG
CLR (P0).5 ; SET THE LED OF TIME
LD A,(HOUR)
LD W,(ONEHR)
AND W,0XF
CMP A,W
JR CS,ALHVJG
CMP (SECOND),0X3 ; AFTER 3S CLOSE
JR CS,ALHVJG
CLR (DSMDFN).2 ; CLEAR THE DSG FLG
JP ALTOMN
;
ALLNDSG:
SET (P0).5 ; CLEAR THE LED OF TIME
ALHVJG:
LD A,(DSMDFN)
AND A,0X30
CMP A,0X20
JR EQ,CLMDZZ
JP CHSHMD
CLMDZZ:
CLR (FLAG2).CSLWFN ; IS NOMAL COOL MOD NOT NEED LOWFAN
JP COOLMD
;
HTMDZZ:
JP HEATMD
;
;******************** FOR AD WRONG *********************
ISRMW:
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -