📄 laohua.asm
字号:
CLR1 GODRYF
SET1 GOCOOLF
BF STF,$GOCOOL00
SET1 VALOFF1MF
GOCOOL00: BR !SCOOL0
GOWARM: CLR1 GOCOOLF
CLR1 GODRYF
SET1 GOWARMF
CLR1 VALOFF1MF
BR !SWARM0
GODRY: CLR1 GOCOOLF
CLR1 GOWARMF
SET1 GODRYF
BF STF,$GODRY00
SET1 VALOFF1MF
GODRY00: BR !SDRY0
SCOOL00: BR !SCOOL0
SWARM00: BR !SWARM0
AUTOSECO: BT SETTEMPF,$AUTOSECO1
AUTOSECO2: BT GOCOOLF,$SCOOL00
BT GOWARMF,$SWARM00
BR !GODRY
AUTOSECO1: CLR1 SETTEMPF
MOV A,ROMTEMP
INC A
CMP A,ATEMP
BC $GOWARM0
MOV A,ATEMP
INC A
CMP A,ROMTEMP
BC $GOCOOL0
BZ $GOCOOL0
BR !AUTOSECO2
GOWARM0: BT GOWARMF,$GOWARM
CALL !CLRFLG_COOL
CALL !NOCOMP5M
CALL !CLRFLG_DRY
BR !GOWARM
GOCOOL0: BT GOCOOLF,$GOCOOL
CALL !CLRFLG_WARM
CALL !CLRFLG_DRY
CALL !NOCOMP5M
BR !GOCOOL
GODRY0: BT GODRYF,$GODRY
CALL !CLRFLG_COOL
CALL !CLRFLG_WARM
CALL !NOCOMP5M
BR !GODRY
;****************************DRY MODE****************************
SDRY: CLR1 SEG3.6
CLR1 SEG3.3
CLR1 SEG3.4
CLR1 SEG3.2
SET1 SEG2.6
SDRY0: BT STF,$SDRY1
; BT P5F,DRYOVCUR
BT DRYSECOF,$SDRY3
SET1 DRYSECOF
BT ROMERRF,$DRYROMERR
CMP ROMTEMP,#0F0H
BNC $SDRY1_0
CMP ROMTEMP,#16
BC $SDRY1_0
DRYROMERR: BT COMP3MF,$SDRY2
BT DRYMF,$JUMP6
SET1 DRYMF
MOV DRYMC,#0H
MOV DRYMC+1,#0H
JUMP6: SET1 COMP
SET1 EXTFAN
BT COMP5MY,$DRYOVCUR1
; CLR1 COMP5MY
BT COMP5MF,$DRYOVCUR1
SET1 COMP5MF
MOV COMP5MC,#0H
MOV COMP5MC+1,#0H
DRYOVCUR1: SET1 LFAN
SET1 HFAN
CLR1 MFAN
RET
SDRY2: BF DRY30SF,$SDRY1_0
RET
SDRY1_0: CLR1 DRYSECOF
BT COMP5MF,$SDRYRET
CLR1 DRYMF
;;; MOV DRYMC,#0H
;;; MOV DRYMC+1,#0H
SDRY1: CLR1 COMP
CLR1 EXTFAN
BT COMP3MY,$SDRY1_11
BT COMP3MF,$SDRY1_11
SET1 COMP3MF
MOV COMP3MC,#0H
SDRY1_11: SET1 HFAN
CLR1 LFAN
CLR1 MFAN
;;;;;;;;; CLR1 RB.3
; CLR1 RB.4
SDRYRET: RET
SDRY3: BF DRYMF,$SDRY1_1
RET
SDRY1_1: BF DRY30SF,$SDRY1
RET
;************************FAN MODE**********************
SFANMODE: CLR1 SEG2.6
CLR1 SEG3.6
CLR1 SEG3.3
CLR1 SEG3.4
SET1 SEG3.2
CLR1 COMP
CLR1 EXTFAN
SET1 COMP3MF
CLR1 COMP3MY
CALL !NORFAN
RET
;**************************WARM MODE******************************
MODESELECT4:
SWARM: CLR1 SEG3.2
CLR1 SEG2.6
CLR1 SEG3.6
CLR1 SEG3.3
SET1 SEG3.4
SWARM0: BF COMP,$COMPY
CLR1 WARMFIRSTF
BR !COMPY2
COMPY: CLR1 COMPSECOF
COMPY2:
CLR1 VALOFF1MF
MOV VALOFF1MC,#0H
CALL !P3DO
; BT OVERWARMF,$OVERWARM_110
BF DEFROSTF,$SWARM1
BR !OTHERRUN_11
CONWARM20: BR !CONWARM2
OVERWARM_110: BR !OVERWARM_11
CONSTA1_L: BR !CONSTA1
SWARM1: BT OVERWARMF,$SWARM11
SET1 STF
SWARM11:
BF ROMERRF,$NOWARMRERR
BT SAUTOF,$CONSTA1_L
BR !CONWARM3
NOWARMRERR:
CMP ROMTEMP,#0F0H
BNC $HERE3
MOV A,TEMPBUF
CMP A,ROMTEMP
BZ $CONSTA
BC $CONWARM20
HERE3: BR !CONWARM3
CONSTA: BF COMP,$CONSTA_100
BR !CONSTA_2
CONSTA_100: BT OVERWARMF,$OVERWARM_110
CONSTA_10: BR !CONSTA_1
CONSTA1_15: BR !CONSTA1
NOACFAN_L: BR !NOACFAN
CONWARM3:
; BT OVERWARMF,$YESCOMP5M
BT OVERWARMF,$CONSTA_2
BT COMP3MF,$CONSTA1_15
SET1 COMP
SET1 EXTFAN
BT COMP40MY,$CONWARM3_15
SET1 COMP40MF
CONWARM3_15: BT COMP5MY,$YESCOMP5M
BT COMP5MF,$YESCOMP5M
SET1 COMP5MF
MOV COMP5MC,#0H
MOV COMP5MC+1,#0H
YESCOMP5M: CLR1 CUIYUREF
CLR1 CUIYURE10SF
CLR1 CUIYURE10SY
CLR1 CUIYURE30SY
CONSTA_2: BT OVERWARMF,$NOACFAN_L
BT PIPERRF,$NOACFAN0
BT ACOFAN30SY,$NOACFAN ;AGAINST COOL FAN
BF COMPSECOF,$ACNOFAN
ACNOFAN1: SET1 COMPSECOF
CMP PIPTEMP,#0F0H
BNC $ACOLFAN
CMP PIPTEMP,#35
BC $ACOLFAN
BZ $ACOLFAN
CMP PIPTEMP,#41
BC $NOACFAN11
CMP PIPTEMP,#47
BC $NOACFAN1
; BZ $AGCOOLFAN1
CMP PIPTEMP,#55
BC $NOACFAN1
CLR1 HFAN
CLR1 LFAN
CLR1 MFAN
BR !NOACFAN
NOACFAN11:
BT LFAN,$NOACFAN
BT MFAN,$NOACFAN
BF HFAN,$NOACFAN
SET1 LFAN
BR !NOACFAN
ACNOFAN: CMP PIPTEMP,#30
BNC $ACNOFAN1
CLR1 LFAN
CLR1 MFAN
SET1 HFAN
BR !NOACFAN
AGCOOLFAN1:
; BT LFAN,$NOACFAN
; BT MFAN,$NOACFAN
; BT HFAN,$NOACFAN
NOACFAN1: CALL !NORFAN
BR !ACOHFAN0
NOACFAN0: BT ACOFAN30SY,$NOACFAN1
CMP ACOFAN30SC,#30
BNC $ACOLFAN
; BR !ACOLFAN
;NOACFAN00:
; CLR1 LFAN
; CLR1 HFAN
; CLR1 MFAN
BR !NOACFAN
; BF SFANLF,ACOHFAN
ACOLFAN: SET1 LFAN
SET1 HFAN
CLR1 MFAN
ACOHFAN0:
NOACFAN: BT OVERWARMF,$OVERWARM_LL
BT OUTERRF,$OUTERR_DEFRO
BF PIPERRF,$NORMAL_DEFRO
NORMAL_DEFRO3:
BF COMP50MY,$OVERWARM_LL ;50分钟
CMP OUTTEMP,#0F0H
BC $OVERWARM_LL ;确保是个负数
CMP OUTTEMP,#0FBH ;小于等于-5度
BC $INDEFRO0_LL
OVERWARM_LL:
BR !OVERWARM_L
INDEFRO0_LL:
BR !INDEFRO0_L
NORMAL_DEFRO:
BT DELAY3MY,$NORMAL_DEFRO2
NORMAL_DEFRO4:
MOV A,PIPTEMP
CMP A,DEFROPIP
BC $NORMAL_DEFRO1
MOV DEFROPIP,A
CLR1 DELAY3MY
CLR1 DELAY3MF
MOV DELAY3MC,#0H
BR !OVERWARM_L
NORMAL_DEFRO2:
MOV A,DEFROPIP
CMP A,PIPTEMP
BC $NORMAL_DEFRO4;若三分钟后不降反升了则重新记最高点内盘DEFROPIP
SUB A,PIPTEMP
CMP A,#03H
BNC $NORMAL_DEFRO3;下降达到或超过3度
CLR1 DELAY3MY;每三分钟检测一次内盘温度,没有达到则再检测
SET1 DELAY3MF
BR !OVERWARM_L
NORMAL_DEFRO1:
SET1 DELAY3MF
BR !OVERWARM_L
OUTERR_DEFRO:
BT ROMERRF,$INDEFRO0_LL
BT PIPERRF,$INDEFRO0_LL
; BT DELAY3MF,$OVERWARM_L
BF OVERWARMEDF,$NEXT0
BT COMP40MY,$NEXT1
BR !OVERWARM
NEXT0:
BT COMPCON15MY,$NEXT1
SET1 COMPCON15MF
MOV DEFROPIP,#0H
BR !OVERWARM
NEXT1: MOV A,ROMTEMP
CMP A,TROMTEMP
BNC $NEXT11 ;环境温度没有下降
BT TIMER3MY,$NEXT10
SET1 TIMER3MF
MOV A,TROMTEMP
SUB A,ROMTEMP
CMP A,#5
BC $NEXT2 ;三分钟内下降值没超过4度时继续判断是否要进入除霜
CLR1 TIMER3MF ;三分钟内下降值超过4度
MOV TIMER3MC,#0H
MOV A,ROMTEMP
MOV TROMTEMP,A
SET1 DELAY3MF
CLR1 DELAY3MY
MOV DELAY3MC,#0H
BR !NEXT2
NEXT11: MOV TROMTEMP,A
BR !NEXT2
NEXT10: ;三分钟到时下降值没超过4度
CLR1 TIMER3MY
MOV A,ROMTEMP
MOV TROMTEMP,A
;判断电加热及风速是否改变
NEXT2: BF DELAYBUF.0,$NEXT2_1
BT DJR,$NEXT20 ;电加热关闭
BR !NEXT21
NEXT2_1:BT DJR,$NEXT21
SET1 DELAYBUF.0
NEXT21:
BF DELAYBUF.1,$NEXT22
BT LFAN,$NEXT2_0
CLR1 DELAYBUF.1
BF MFAN,$NEXT210
SET1 DELAYBUF.2
BR !NEXT200
NEXT210:SET1 DELAYBUF.3
BR !NEXT200
NEXT22: BF DELAYBUF.2,$NEXT23
BT MFAN,$NEXT2_0
CLR1 DELAYBUF.2
BF LFAN,$NEXT210
SET1 DELAYBUF.1
BR !NEXT200
NEXT23: BF HFAN,$NEXT2_0
CLR1 DELAYBUF.3
BF LFAN,$NEXT230
SET1 DELAYBUF.1
BR !NEXT200
NEXT230:SET1 DELAYBUF.2
BR !NEXT200
NEXT20: CLR1 DELAYBUF.0
NEXT200:
SET1 DELAY3MF
CLR1 DELAY3MY
MOV DELAY3MC,#0H
NEXT2_0:
BF DELAY3MF,$NEXT3 ;延时三分钟
SET1 COMP1HF
CLR1 COMP1HY
MOVW AX,#0H
MOVW COMP1HC,AX
CLR1 TXF
CLR1 DEFRO1MF
MOV DEFRO1MC,#0H
MOV DEFROPIP,#0H
BR !OVERWARM
NEXT3: BF COMP1HY,$NEXT4
CMP PIPTEMP,#29
BNC $NEXT4
SET1 DEFROSTF ;压机累计运行1小时后满足条件进入除霜
SET1 DEFRO30SF
CLR1 ACOFAN30SY
CLR1 OVERWARMEDF
SET1 DEFRO5MFF
CLR1 DEFRO3MFF
CLR1 DEFRO8MFF
BR !INDEFRO4
NEXT4:
CMP PIPTEMP,#0F0H
BNC $DEFRO20
MOV A,DEFROPIP
CMP A,PIPTEMP
BZ $DEFRO10
BNC $DEFRO11 ;DEFROPIP>=PIPTEMP
CLR1 TXF ;DEFROPIP<PIPTEMP
SET1 DEFRO1MF
BR !OVERWARM
DEFRO10: CLR1 TXF
OVERWARM_L: BR !OVERWARM
INDEFRO0_L: BR !INDEFRO0
DEFRO11: CLR1 DEFRO1MF
MOV DEFRO1MC,#0H
DEFRO1: BT TXF,$DEFRO2
BF DEFRO1MY,$OVERWARM_L
CALL !COUNTTX
BT TXF,$DEFRO2
BR !OVERWARM
DEFRO2: MOV A,PIPTEMP
CMP A,TXTEMP
BC $DEFRO20
BZ $DEFRO20
CLR1 TXF
BR !OVERWARM
INDEFRO0: BF COMP50MY,$OVERWARM_L
CLR1 COMP40MY
BR !INDEFRO
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -