📄 laohua.asm
字号:
RESETF DBIT
WARMFIRSTF DBIT
COMPSECOF DBIT
DJRFANF DBIT
SETRAMF DBIT
EEPROM_READERRF DBIT
EEPROM_WRITEERRF DBIT
EEPROMERRF DBIT
ADOKF DBIT
;****************************MAIN PROGRAM***********************
SUB1 CSEG UNIT
START:
DI
MOVW AX,#0FEFFH
MOVW SP,AX
MOV OSTS,#02H
CLR1 WTIIF
MOV WTM,#01000011B
POWWAIT: NOP
BF WTIIF,$POWWAIT
CLR1 WTIF
CLR1 WTIIF
; MOV WTM,#00000011B
;;;; MOV WTM,#10000011B ;DEBUG,USE 32.768KHZ
;;;; MOV SCKM,#00000010B ;DEBUG,SUB ENABLE,OR 00000011B
MOV SCKM,#00000011B
MOV CSS,#0H
MOV PCC,#0H
MOV TCL2,#00000110B
MOV WDTM,#10011000B
RAMCLR: MOVW HL,#0FD00H
RMCL0: MOV A,#0H
MOV [HL],A
INCW HL
MOVW AX,HL
CMPW AX,#0FF00H
BNZ $RMCL0
SET1 BUZF
SET1 RUN
MOV BUZTIME,#0AH
MOV ADCOUNT,#15H
; MOV ATEMP,#24
; MOV TEMPBUF,#24
; MOV SSTEMP,#24
; MOV DTEMP,#24
; MOV WTEMP,#24
; MOV FTEMP,#24
; MOV TEMP,#8
; MOV CTEMP,#24
; SET1 SAUTOF
SET1 LTORF
SET1 FANOFFF
SET1 AUTOFAN30SY
SET1 WARMFIRSTF
MOV DRIVER,#0FFH
;比70柜机单相少外盘
SET1 OUTERRF
;*******************PORT INITIAL*********************
;;;; SET1 P1.0
;;;; SET1 P1.1
CLR1 P1.0
CLR1 P1.1
MOV P0,#0H
;;;; MOV P2,#01111111B
MOV P2,#00011000B
MOV P5,#0FFH
;;;; MOV P3,#00000111B
MOV P3,#00000001B
MOV PM0,#11000000B
MOV PM1,#11111100B
MOV PM2,#10000000B
MOV PM3,#11110001B
MOV PM5,#11110000B
MOV PU0,#01H
CALL !WRITE_164
MOV ADM0,#00001000B
MOV ADS0,#00000000B ;ANI0
MOV TMC90,#01000010B
MOV BZC90,#00000000B ;BUZ OUTPUT
MOV TMC80,#00000010B ;NO USE
MOV CR80,#0FFH
MOV TMC81,#00000010B ;0.061MS=4.19,0.0512=5.0MHZ
; MOV CR81,#0C3H ;10MS,0.061MS*A4=10MS,0.0512*C3=10MS
MOV CR81,#18H ;21
MOV TMC82,#00000010B ;0.031MS
;;;; MOV TMC82,#00000100B ;0.031MS,DEBUG,USE 32.768KHZ
MOV CR82,#3FH ;1.95MS
CALL !DOG
CALL !IICBUS_START ;测试有无EEPROM
MOV A,#0F1H
CALL !WRITE8BIT
CALL !SLAVEACK
CMP A,#0H
BZ $EEPROMOK ;无EEPROM,不要记忆
BR !EEPROM0
EEPROMOK:
CALL !READ8BIT
CMP A,#0FFH
BNZ $TESTEEPROM1
MOV A,#0H ;有EEPROM则进入读数据,置EEPROMBUF 01
TESTEEPROM1:
MOV EEPROM_ADDR,A
MOV EEPROMBUF,#01H
CALL !IICBUS_STOP
EEPROM1_0: CALL !DOG
SET1 EEPROM_READERRF
CALL !EEPROM_READ
MOV A,EEPROM_ADDR
CMP A,#0F0H
BNZ $EEPROM1_1
; SET1 EEPROMERRF
BR !EEPROM0
EEPROM1_1:
BT EEPROM_READERRF,$EEPROM1_0
MOVW HL,#EEPROM_RAM
MOVW DE,#ATEMP
MOV A,[HL]
CMP A,#16
BC $EEPROM00 ;表明EEPROM使用过,但不遵循本格式
CMP A,#30
BC $EEPROM2
BZ $EEPROM2
BR !EEPROM00
EEPROM2:
MOV A,[HL]
CMP A,#0FFH
BZ $EEPROM00 ;表明此EEPROM未使用过
XCH A,[DE]
INC L
INC E
MOV A,L
CMP A,#LOW EEPROM_RAM+12
BNZ $EEPROM2
BF SAUTOF,$EEPROM21
MOV A,AFANREG
MOV FANREG,A
MOV A,ATEMP
EEPROM20:
MOV SSTEMP,A
MOV TEMPBUF,A
SUB A,#10H
MOV TEMP,A
BR !EEPROM1
EEPROM21: BF SWARMF,$EEPROM22
MOV A,WFANREG
MOV FANREG,A
MOV A,WTEMP
BR !EEPROM20
EEPROM22: BF SFANMF,$EEPROM23
MOV A,FFANREG
MOV FANREG,A
MOV A,FTEMP
BR !EEPROM20
EEPROM24: MOV A,DTEMP
BR !EEPROM25
EEPROM23: BF SCOOLF,$EEPROM24
MOV A,CFANREG
MOV FANREG,A
MOV A,CTEMP
EEPROM25:
MOV SSTEMP,A
MOV TEMPBUF,A
SUB A,#10H
MOV TEMP,A
BR !EEPROM1
;*****************************************
;EEPROM错误处理
;*******************************************
EEPROM0: SET1 EEPROMERRF
EEPROM00:
MOV ATEMP,#24
MOV DTEMP,#24
MOV WTEMP,#24
MOV CTEMP,#24
MOV FTEMP,#24
MOV CFANREG,#0H
MOV FFANREG,#0H
MOV WFANREG,#0H
MOV MODFLG,#10000000B
MOV MODFLG1,#0H
MOV MODFLG2,#0H
MOV FANREG,#0H
MOV TEMP,#8
MOV SSTEMP,#24
MOV TEMPBUF,#24
EEPROM1:CLR1 DJRF
SET1 DJR5MY
;********************INTERRUPT INITIAL**********************
CLR1 TMIF80
CLR1 TMMK80
CLR1 TMIF81
CLR1 TMMK81
SET1 TCE80
SET1 TCE81
EI
RESDIS3S:
MOVW AX,#0FFFFH
CALL !DISALL
SET1 RESETF
NOJP2:
; MOV B,#0FH
;RAD2: CLR1 ADCS0
; CLR1 ADIF0
; MOV ADS0,#0H
; SET1 ADCS0
;RAD1: NOP
; BF ADIF0,$RAD1
; MOV A,ADCR0
; CMP A,X
; BZ $RAD3
; MOV B,#0FH
; MOV X,A
;RAD3: DBNZ B,$RAD2
; CMP A,#00H
; BNZ $RESDIS3S1
BT P6.1,$RESDIS3S1
SET1 COMP
;;;; CALL !WRITE_164
CALL !TEST1S
CLR1 COMP
SET1 STF
;;;; CALL !WRITE_164
CALL !TEST1S
CLR1 STF
SET1 EXTFAN
;;;; CALL !WRITE_164
CALL !TEST1S
CLR1 EXTFAN
SET1 JHQ
;;;; CALL !WRITE_164
CALL !TEST1S
CLR1 JHQ
CLR1 DJR
;;;; CALL !WRITE_164
CALL !TEST1S
SET1 DJR
SET1 BFF
;;;; CALL !WRITE_164
CALL !TEST1S
CLR1 BFF
SET1 LFAN
;;;; CALL !WRITE_164
CALL !TEST1S
CLR1 LFAN
SET1 MFAN
;;;; CALL !WRITE_164
CALL !TEST1S
CLR1 MFAN
CLR1 HFAN
;;;; CALL !WRITE_164
CALL !TEST1S
SET1 HFAN
;;;; CALL !WRITE_164
MOV TIMERC,#0H ;必须加,防止自检后开机的情况下风速显示不正常
BR !TESTEND
RESDIS3S1:
; CALL !REFRESHRAM
; CALL !SCANLED_S
CALL !DOG
BF WTIF,$RESDIS3S1
CLR1 WTIF
INC SEC
CMP SEC,#06H
BNZ $RESDIS3S1
MOV SEC,#0H
TESTEND: CLR1 RESETF
MOVW AX,#0H
CALL !DISALL
DI
CLR1 TMIF82
CLR1 TMMK82 ;ENABLE T2E
SET1 TCE82
EI
;****************************************
GOADSTR: CALL !DOG
BF P6.3,$START0
;;;;;;; BBC OUT0F,START
FIRSTON:
SET1 COMP3MF
START0: CALL !DOG
CALL !AD
BF ADOKF,$START0
CALL !DOG
; CALL !REFRESHRAM
BF ROMERRF,$STARTNORERR
MOV ROMTEMP,#24
BR STARTRERR
STARTNORERR:
;;;;;;;; MOV A,ROMBUF ;MAIN PROGRAM DEAL START
;;;;;;;; MOV ROMTEMP,A
STARTRERR:
;;;;;;;; MOV A,PIPBUF
;;;;;;;; MOV PIPTEMP,A
;;;;;; LDA OUTBUF
;;;;;; STA OUTTEMP
; BBS JP2F,OVCUR
; BBC RA.7,OVCUR
; LDA CURRENTBUF
;; CMP #0D7H ;OVERCURENT DETECT
; CMP #0H
; BEQ OVERCUR
; CMP #0E0H
; BCC NOOVERCUR
;OVERCUR: SET1 OVCURRENTF
; BR OVCUR
;CLRP5FF: CLR1 P5FF
; BR QUITOV1
;NOOVERCUR: BBS P5FF,CLRP5FF
; BBC P53MY,OVCUR
; SET1 P530MF
; CLR1 P53MY
;QUITOV1: CLR1 P5F
; MOV P51MC,#0H
; MOV P53MC,#0H
; CLR1 OVCURRENTF
OVCUR: BT WTIF,$MAIN4_0
BR !MAIN4
HERE1: SET1 SECF
BR !HERE2
MAIN4_0: CLR1 WTIF
BF SECF,$HERE1
CLR1 SECF
HERE2:
CALL !DOG
; CALL !TRYRUN3M
; BT TRYRUNF,$NODIST
CALL !CONKEY1S
CALL !PRESS2S
; CALL !FLA5S
; CALL !WAITMCU
; BT FLA5SF,$NODIST
; BT DIS5SF,$NODIST
; BT DISERRF,$NODIST
; CALL !DISCLO ;BECAUSE REG,SO MUST BE IN MAIN
CALL !DOG
NODIST:
BF SECF,$MAIN4
; BT TRYRUNF,$MAINTRY1
CALL !CUIYURE30S
CALL !DELAY3M
CALL !DEFRO1M
CALL !COMP3M
CALL !COMP5M
CALL !DJRM
; CALL !AGFROST10M
CALL !AGFROST2M
CALL !COMP4M
CALL !ACOFAN30S
; CALL !FANDELAY10S
CALL !FANDELAY30S
; CALL !OVERWARM5M
CALL !OVERWARM10S
CALL !VALVE1M
CALL !COMP40M
CALL !COMPCON15M
CALL !COMP1H
CALL !TIMER3M
CALL !DEFRO8M
; CALL !DIS5S
CALL !DISTMP5S
CALL !SLEEPT
; CALL !P51M
CALL !VALOFF1M
; CALL !WARMT10M
CALL !COOLT10M
CALL !DEFRO30S
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -