📄 yz285.asm
字号:
;****************************************************
; FOR YZ3S09NV FEN TI AIR CONDITION
; MPU: TMP87C846
; CLOCK: 4.19 MHz
; BY: AIFUAN
; ALL RIGHT RESERVED
;****************************************************
; JINHUAQI ----> (P7).2
;
; EXTFAN ----> (P7).0
;
; COMPRESS ----> (P7).4
; VALVE ----> (P7).1
;
; ROOM AD ----> (P6).5
; ROOM PIP AD ----> (P6).4
;
; LOW FAN -----> (P7).7
; MID FAN -----> (P7).6
; HIG FAN -----> (P7).5
;
; DIANJIARE -----> (P7).3
;
; THE KEY -----> (P0).1
;
; RUN LED -----> (P0).3
; DS LED -----> (P0).4
; SLEEPLED -----> (P0).5
; CHS LED -----> (P0).6
;
; DL SELECT ----> (P2).0 0 IS LN 1 IS DL
;
;
;**********************************************
; 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------> 0X8E
;
; 0X8F------>0X94
;
DSCD0 EQU 0X8F
SWNMOD EQU 0X90
CD0TMP EQU 0X91
VANFAN EQU 0X92
STPTIM EQU 0X93
STRTIM EQU 0X94
FLAG1 EQU 0X97 ;RMB 1
;*****************************************************
RCVOK EQU 0
DLY3M EQU 1
KEYBUF EQU 2
ADON EQU 3
RMWRN EQU 4
CS10MIN 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
LWFNSEC EQU 0XA5
VALMMS EQU 0XA6
RMPVAL EQU 0XA7
FLDCNT EQU 0XA8
FLAG2 EQU 0XA9
;**********************************************************
AUTCHSH 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
;
CSONM EQU 0XAA
FLD0SEC EQU 0XAB
FLD2SEC EQU 0XAC
CMPSEC EQU 0XAD
CMPMIN EQU 0XAE
CYRSEC 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
CSOFFM EQU 0XB3
CSTIMS EQU 0XB4
DJRSEC EQU 0XB5
MINS10 EQU 0XB6
;/ EQU 0XB7
FADMMS EQU 0XB8
SLPSEC EQU 0XB9
SLPMIN EQU 0XBA
;/ EQU 0XBB
HTWSEC EQU 0XBC
HTWMIN EQU 0XBD
CLWSEC EQU 0XBE
HTCMIN EQU 0XBF
HTCMSEC EQU 0XC0
CLWMIN EQU 0XC1
;/AUTSEC EQU 0XC2
;/AUTMIN EQU 0XC3
;/C1H45S 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
;*****************************************************
FDS50 EQU 0
FLD2FLG EQU 1
AUTSF EQU 2
ISCHSH EQU 3
;/ISFCHT EQU 4
;/FANON EQU 5
;/FKERR EQU 6
;/HAVSTP EQU 7
;
FDRSEC EQU 0XCE
FDRMIN EQU 0XCF
FDRMMS EQU 0XD0
;/ EQU 0XD1
STRMIN EQU 0XD2
BUZZCNT EQU 0XD3
;/BUZ EQU 0XD4
;/HI52C EQU 0XD5
;/ EQU 0XD6
;/ EQU 0XD7
;/ EQU 0XD8
;/ EQU 0XD9
;/ EQU 0XDA
;/WJTSBF EQU 0XDB
; DC
FLAG5 EQU 0XDD
;**************************************************
CMPBF EQU 0
RPWCYR EQU 1
;/CLSCMP EQU 2
;/ONCMP EQU 3
;/ISSHORT EQU 4
;/IS12NV EQU 5 ; IS 12NV THE FAN IS ....
;/IS1H45M EQU 6
XTWRN EQU 7
;/KEYSEC EQU 0XDE
FANBUF EQU 0XDF
;/IFFK EQU 0XE0
;/ZZZZ EQU 0XE1
FLAG6 EQU 0XE2
;***************************************************
LWFN EQU 0
MDFN EQU 1
HGFN EQU 2
;*********************************************************
CODE_1 SECTION CODE ABS=0XE000
;*****************PROGRAM START****************************
RESET:
LD SP,0X23F
DI
LD RBS,0
;
LD (P0CR),0Y01111000
LD (P6CR),0Y00000000
LD (P1CR),0Y11111000 ; ENABLE BUZZER
LD (P7CR),0Y11111111
OR (P0),0X78
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),0Y0001010 ;sets the falling edge
NOP ;at the INT1,INT3,
LD (TBTCR),0Y11100010 ;sets the buzzer 8k
SET (EIRL).5 ;enable INT1
SET (EIRH).6 ;ENABLE INTTC2
SET (EIRH).0 ;ENABLE INTTC3
LD (TC2CR),0Y00101100 ; Start TC2
EI
;
LD A,0
LD HL,0X48
LD BC,0X1F7
RAMCLR:
LD (HL+),A
DEC BC
JRS F,RAMCLR ; RAM CLEARED FROM OO48H TO 023FH
;
WAITMS:
LD (WDTCR2),0X4E ; Clears the watchdog counter
CMP (MMS),0XA
JR CS,WAITMS
IFHVDL:
TEST (P2).0 ; Test if for dl
JR T,NOTDL
CALL DLY100U
TEST (P2).0
JR T,NOTDL
SET (FLAG2).ISDLFLG
NOTDL:
SET (FLAG1).ADON
CALL FORAD
;
TEST (P0).1
JR T,BFLLFF
CALL DLY100U
TEST (P0).1
JR T,BFLLFF
JP TESTSF
;
BFLLFF:
SET (FLAG3).BUZZEN
SET (FLAG2).RSTSTP
;***************** THE MAIN PROGRAM *****************
MAIN:
LD (WDTCR2),0X4E ; Clears the watchdog counter
CALL FORAD
CALL CMPCLS
CALL VALCLR
CALL FADWRN
SET (P0).3 ; CLEAR THE RUN LED
TEST (FLAG2).ISHTFLG
JR T,MNNTHT2
TEST (FLAG1).RMPWRN
JR F,MNRMPW
CMP (RMPTMP),0X19 ; CMP WITH 25C
JR CS,MNNTHT
MNRMPW:
TEST (P7).5 ; if have fan
JR F,MNHCYR
TEST (P7).6
JR F,MNHCYR
TEST (P7).7
JR F,MNHCYR
JR MNNTHT
;
MNHCYR:
CMP (CYRSEC),0X1E ; CUI YU RE 30S
JR CC,MNNTHT
CALL LOWFAN
JR MNFLW1
;
MNNTHT:
CLR (FLAG2).ISHTFLG
CALL PSTFGJ
MNNTHT2:
CMP (DJRSEC),1 ; IF DJR OFF 15SEC
JR CC,MNFLW1
CALL FANCLR
;
MNFLW1:
TEST (FLAG5).XTWRN
JR F,MNXTWRN
SET (P0).6 ; CLEAR THE CHS LED
MNXTWRN:
CLR (FLAG3).FLDFLG ; CLEAR FLG FOR COOL MOD
CLR (FLAG4).FLD2FLG
CLR (FLD2SEC)
CLR (FLD0SEC)
CLR (FLAG4).ISCHSH ; CLEAR FLG FOR CHSH MOD
CLR (FLAG3).CHSFLG
CLR (FLAG2).ISATFLG
CLR (FLAG3).ISCOOL
CLR (FLAG3).HTFCHS ; CLEAR FLG FOR HEAT
CLR (HTCMSEC)
CLR (HTCMIN)
CLR (FLAG2).CSISEND
CLR (FLAG5).RPWCYR
CALL DJRCLR
SET (FLAG3).GJFLG
TEST (DSCD0).4 ; TEST IF HAVE DSK
JR T,MNODSK
TEST (FLAG1).RMWRN
JR F,MNRMWRN
CLR (P0).4 ; LIGHT THE DS LED
MNRMWRN:
LD A,(MINS10)
CMP A,(STRTIM)
JR CS,MNNDSK
CLR (DSCD0).4
JR MISDSK
;
MNODSK:
TEST (FLAG1).RMWRN
JR F,MNNDSK
SET (P0).4 ; CLEAR DS LED
MNNDSK:
TEST (FLAG1).RCVNEW
JR T,MFNRCV
MNHVDS:
CALL FDS
TEST (DSCD0).2
JR T,MFNRCV
TEST (DSCD0).4
JR T,MISDSK ; IF DSK THEN
CMP (STRTIM),0 ; IF DSK TIM IS 0
JR EQ,MISDSK
TEST (DSCD0).3 ; TEST IF HAVE DSG
JR T,MFNRCV
LD A,(STRTIM)
CMP A,(STPTIM)
JR CS,MFNRCV
CMP (STPTIM),0
JR EQ,MFNRCV
MISDSK:
CALL FMNTKJ
FRMDZ:
JP FORMOD
;
MFNRCV:
TEST (P0).1 ; TEST THE KEY
JR T,MNNKEY
CALL DLY100U
TEST (P0).1
JR T,MNNKEY
TEST (FLAG1).KEYBUF
JR T,MAINZ
CLR (FLAG1).KEYBUF
SET (FLAG3).BUZZEN
TEST (DSCD0).4 ; TEST IF HAVE DSK
JR T,MNNODSK
CLR (DSCD0).4 ; CLEAR THE DSK FLG
JP MAIN
;
MNNODSK:
CLR (HTWSEC)
CLR (HTWMIN)
CLR (CLWSEC)
CLR (CLWMIN)
CLR (FLAG5).XTWRN
LD (SWNMOD),0X8 ; MAKE AUTO RUN MOD
LD (DSCD0),0X0 ; CLEAR DS FLG
LD (CD0TMP),0X7 ; MAKE SETTMP IS 24C
LD (VANFAN),0X38 ; MAKE FAN AUTO VAN SWING
JR MISDSK
;
MNNKEY:
SET (FLAG1).KEYBUF
MAINZ:
JP MAIN
;
FMNTKJ:
TEST (FLAG2).RSTSTP
JR T,STFKJFL
CMP (STPNUM2),0X2E ; IF HAV OPEN 135DU
JR CS,STFKNC
STFKJFL:
CLR (STPNUM)
CLR (STPNUM2)
STFKNC:
CLR (FLAG2).RSTSTP
CLR (FLAG2).STPCLS
SET (FLAG2).STPFKJ
RET
;
DJRCLR:
TEST (P7).3
JR T,MNNDJR
LD (DJRSEC),0XF
CLR (P7).3 ; CLEAR THE DIANJIARE
MNNDJR:
RET
;
;
;********************* FOR THE MODE CHANGE *********************
FORMOD:
LD (WDTCR2),0X4E ; Clears the watchdog counter
LD A,(SWNMOD)
AND A,0XF
CMP A,0X8
JR EQ,AUTMDZ
CLR (FLAG2).ISATFLG
JR ALLMOD
;
AUTMDZ:
TEST (FLAG2).ISATFLG
JR F,HAVAUT
SET (FLAG2).ISATFLG
TEST (FLAG1).RMWRN
JR F,SFMDZZ ; IF RMTMP WRN SONG FENG
CLR (FLAG4).AUTSF
CMP (RMTMP),0X19 ; CMP WITH 25C
JR CC,COOLMDZ
CMP (RMTMP),0X17 ; CMP WITH 23C
JR CC,CHSHMDZ
TEST (FLAG2).ISDLFLG ; IF DL MOD THEN TO CHSH
JR F,CHSHMDZ
;
HEATMDZ:
CLR (FLAG2).AUTCHSH
LD (SWNMOD),0X1
JR ALLMOD
;
COOLMDZ:
NOP
CLR (FLAG2).AUTCHSH
LD (SWNMOD),0X3
JR ALLMOD
;
CHSHMDZ:
SET (FLAG2).AUTCHSH
LD (SWNMOD),0X2
JR ALLMOD
;
HAVAUT:
TEST (FLAG2).ISHTFLG
JR F,HEATMDZ
TEST (FLAG2).AUTCHSH
JR F,CHSHMDZ
TEST (FLAG4).AUTSF
JR T,COOLMDZ
SFMDZZ:
CLR (FLAG2).AUTCHSH
SET (FLAG4).AUTSF
LD (SWNMOD),0X4
;
;******************** ALL MOD ENTER *******************
ALLMOD:
NOP
LD (WDTCR2),0X4E ; Clears the watchdog counter
CALL FORAD
CALL FADWRN
CLR (P0).3 ; LIGHT THE RUN LED
TEST (FLAG1).RCVNEW
JR T,ALNRCV
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -