⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 laohua.asm

📁 一个老化房温控器的程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
                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 + -