📄 acm6501.asm
字号:
COMP50MY DBIT
;AD4F DBIT
;KEYSTAF DBIT
;RESETF DBIT
SECHALF DBIT
WAITMCUF DBIT
RECF DBIT
;BUZFF DBIT
WARMFIRSTF DBIT
;COMPSECOF DBIT
P530MY DBIT
JP2F DBIT
P5FF DBIT
P530MF DBIT
P53MY DBIT
;OVERWARM1HF DBIT
;OVERWARM1HY DBIT
OVERWARM5MY DBIT
OVERWARM5MF DBIT
AGFROST10MF DBIT
AGFROST10MY DBIT
P3FF DBIT
CUIYURE20SF DBIT
CUIYURE20SY DBIT
;LIGHT10SF DBIT
RLIGHTF DBIT
LED DBIT
LIGHT DBIT
ADDSECF DBIT
;****************************RESET AND INITIAL***********************
SUB1 CSEG AT 80H
; ORG 0080H
START:
DI
MOVW AX,#0FEFFH
MOVW SP,AX
MOV OSTS,#02H
CLR1 TMIF20
; MOV WTM,#01000011B
POWWAIT: NOP
BF TMIF20,$POWWAIT
CLR1 TMIF20
MOV B,#0FFH
PPP: NOP
DBNZ B,$PPP
; 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
; MOV WDTM,#0H
RAMCLR: MOVW HL,#0FE00H
RMCL0: MOV A,#0H
MOV [HL],A
INCW HL
MOVW AX,HL
CMPW AX,#0FF00H
BNZ $RMCL0
; SET1 OUTERRF
SET1 BUZF
SET1 RUN
MOVW AX,#0190H
MOVW BUZTIME,AX
MOV ADCOUNT,#05H
MOV ADCHTCT,#05H
MOV ADKEYVAL,#0FFH
MOV KEYCOUNT,#05H
MOV HOUR,#0CH
MOV ONTIME,#0CH
MOV ONTREG,#0CH
MOV OFTIME,#0CH
MOV OFTREG,#0CH
MOV ATEMP,#24
MOV TEMPBUF,#24
MOV SSTEMP,#24
MOV DTEMP,#24
MOV WTEMP,#20
MOV TEMP,#8
MOV CTEMP,#27
SET1 SAUTOF
MOV FFANREG,#02H
MOV VANESEG,#0H
SET1 LTORF
SET1 P530MY
SET1 FANOFFF
SET1 AUTOFAN30SY
SET1 WARMFIRSTF
SET1 RLIGHTF
SET1 LIGHT
;********************PORT INITIAL*****************************
MOV P0,#00H
MOV P1,#00H
MOV P2,#0001000B ;P2.3 IS RECEIVE,
MOV P5,#0FEH
MOV PM0,#11110000B
MOV PM1,#11111100B
MOV PM2,#11001010B
MOV PM5,#11111000B
MOV PUB2,#0011111B
MOV ADM0,#00001000B
MOV ADS0,#0H
MOV TMC80,#00000010B
MOV CR80,#0FFH
MOV INTM0,#0H
MOV TMC20,#01100010B
CALL !DOG
;********************LCD INITIAL******************
CALL !INITIAL
MOV A,#01000000B ;010X-XXXX-X;TONE 4KHZ
MOV B,#09H
CALL !LCD_WRITE
MOV A,#00001001B ;0000-1001-X,TURN ON TONE OUTPUTS
MOV B,#09H
CALL !LCD_WRITE
CLR1 TMIF80
CLR1 TMMK80
SET1 TCE80
EI
;BUZWAIT: CALL !DOG
; BT BUZF,$BUZWAIT
; MOV A,#00001000B
; MOV B,#09H
; CALL !LCD_WRITE
BT P5.3,$NOJP2
SET1 JP2F
NOJP2:
RESDIS3S:
CALL !DISALL
SET1 CS
CALL !DELAY
CLR1 CS
CALL !DELAY
MOV A,#80H
MOV B,#03H
CALL !LCD_WRITE
; MOV A,#00001110B
; MOV B,#09H ;CLR WDT
; CALL !LCD_WRITE
MOV A,#10001000B ;IRQ EN
MOV B,#09H
CALL !LCD_WRITE
MOV A,#00000111B ;WDT EN
MOV B,#09H
CALL !LCD_WRITE ;SET ON/OFF LED ON
BT P2.1,$RESDIS3S1
SET1 COMP
CALL !TEST1S
CLR1 COMP
SET1 STF
CALL !TEST1S
CLR1 STF
SET1 EXTFAN
CALL !TEST1S
CLR1 EXTFAN
SET1 DJR
CALL !TEST1S
CLR1 DJR
SET1 BFF
CALL !TEST1S
CLR1 BFF
SET1 LFAN
CALL !TEST1S
CLR1 LFAN
SET1 MFAN
CALL !TEST1S
CLR1 MFAN
SET1 HFAN
CALL !TEST1S
CLR1 HFAN
BR !TESTEND
RESDIS3S1:
RESDIS3S11:
; MOV A,#00001110B ;CLR WDT
; MOV B,#09H
; CALL !LCD_WRITE
CALL !DOG
BF SECHALF,$RESDIS3S11
CLR1 SECHALF
INC SEC
CMP SEC,#06H
BNZ $RESDIS3S11
SET1 CS
MOV SEC,#0H
TESTEND: DI
CLR1 PIF0
CLR1 PMK0
EI
CLR1 LED
SET1 SEG27.3
;****************************************
GOADSTR: CALL !DOG
CALL !AD
BF ADSTARTF,$GOADSTR
BF P6.3,$START0
SET1 COMP3MF
START0: CALL !DOG
CALL !AD
BF ROMERRF,$STARTNORERR
MOV ROMTEMP,#20
BR !STARTRERR
STARTNORERR:
;LDA ROMBUF ;MAIN PROGRAM DEAL START
; STA ROMTEMP
STARTRERR:
; LDA PIPBUF
; STA PIPTEMP
MOVW AX,#0FE9EH
MOVW HL,AX
MOV A,[HL]
CMP A,#0H
BZ $START_L
START_L1:
BR !START
START_L:
INC L
MOV A,[HL]
CMP A,#0H
BNZ $START_L1
BT JP2F,$OVCUR
BF COMP,$OVCUR
MOV A,CURRENTBUF
; CMP #0D7H ;OVERCURENT DETECT
;;;; CMP A,#0H
;;;; BZ $OVERCUR
CMP A,#0D9H
BC $NOOVERCUR ;
OVERCUR: SET1 OVCURRENTF
BR $OVCUR
;CLRP5FF: CLR1 P5FF
; BR $QUITOV1
NOOVERCUR: BT P5FF,$OVCUR
BF P53MY,$QUITOV1
SET1 P530MF
CLR1 P53MY
QUITOV1: CLR1 P5F
MOV P51MC,#0H
MOV P53MC,#0H
CLR1 OVCURRENTF
SET1 P530MY
OVCUR: BT SECHALF,$MAIN4_0
BR !MAIN4
HERE1: SET1 SECF
INC SEC
BF ADDSECF,$HERE111
CLR1 ADDSECF
ADD SEC,#10
HERE111:
CMP SEC,#60
BNZ $HERE2
MOV SEC,#0H
INC MIN
CMP MIN,#60
BNZ $HERE2
MOV MIN,#0H
SET1 ADDSECF
;;;;; MOV SEC,#10
INC HOUR
CMP HOUR,#24
BNZ $HERE2
MOV HOUR,#0H
BR !HERE2
MAIN4_0: CLR1 SECHALF
BF SECF,$HERE1
CLR1 SECF
HERE2:
CALL !DOG
CALL !TRYRUN3M
BT TRYRUNF,$NODIST
CALL !CONKEY1S
CALL !FLA5S
CALL !WAITMCU
CALL !FLAERR
BT FLA5SF,$NODIST
BT DIS5SF,$NODIST
BT DISERRF,$NODIST
CALL !DISCLO ;BECAUSE REG,SO MUST BE IN MAIN
NODIST:
BF SECF,$MAIN4
BT TRYRUNF,$MAINTRY1
CALL !LIGHT10S
CALL !DELAY3M
CALL !DEFRO1M
CALL !COMP3M
CALL !COMP5M
CALL !AGFROST10M
CALL !AGFROST2M
CALL !P35M
CALL !ACOFAN30S
CALL !FANDELAY10S
CALL !FANDELAY20S
CALL !OVERWARM5M
CALL !VALVE1M
CALL !COMP40M
CALL !DEFRO8M
CALL !DIS5S
CALL !DISTMP5S
CALL !SLEEPT
CALL !P51M
CALL !VALOFF1M
CALL !WARMT10M
CALL !COOLT10M
CALL !DEFRO30S
CALL !DRYM
CALL !DRY10M
CALL !DRY4M
CALL !COMP30M
CALL !DRY30S
; CALL !COMPCON20M
; CALL !COMPCON5M
; CALL !COMPH
; CALL !COMP3H
; CALL !OVERWARM1H
CALL !AUTOFAN30S
CALL !CUIYURE20S
MAINTRY1:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -