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

📄 idwrackey.asm

📁 空调控制程序,MCU 采用NEC D789189
💻 ASM
📖 第 1 页 / 共 2 页
字号:

	MOV	M_LEDdigram,#n_TMPset
	CALL	!DSP3sec
	MOV	C_RMT1s,#n_2s125
	BTJF	f_DEGREEf,DNdegreeC	

	CP	D_TMPset,#60+n_TMPdsp+2		;66`F
	JRUGE	$+2+1
	RET
;------------------------------------------------------------------------

	BF	f_SLEEP,$ENDslpDN
	CMP	C_SLPstp,#2
	BZ	$ENDslpDN
	MOV	A,D_TMPrun
	MOV	D_TMPset,A
ENDslpDN:	
;------------------------------------------------------------------------	
	call	!BEEP1tms
	SUB	D_TMPset,#1
skipDOWN:
	MOV	A,D_TMPset
	CALL	!degreeF2C
	LD	D_TMPcset,A
	MOV	C_SLPstp,#2		;sleep set to 7 step. each step count to 7min 掉电后睡眠重计时
	MOV	C_SLP1h,#n_1h1m		;count source 1min

	RET
	
DNdegreeC:
	LD	A,D_TMPcset
	CP	A,#16+n_TMPdsp+1			;(16+40)
	JRUGE	$+2+1
	RET
;------------------------------------------------------------------------

	BF	f_SLEEP,$ENDslpDN1
	CMP	C_SLPstp,#2
	BZ	$ENDslpDN1
	MOV	A,D_TMPcRUN
	MOV	D_TMPcset,A
ENDslpDN1:	
;------------------------------------------------------------------------	
	DEC	A
	LD	D_TMPcset,A
	CALL	!degreeC2F
	LD	D_TMPset,A
	call	!BEEP1tms	
	MOV	C_SLPstp,#2		;sleep set to 7 step. each step count to 7min 掉电后睡眠重计时
	MOV	C_SLP1h,#n_1h1m		;count source 1min

	RET		
;------------------------------------------------------------------------
TonSETdown:
	Call	!BEEP1tms
	MOVW	HL,#D_TMRon
	BRA	TMRdown

ToffSETdown:
	Call	!BEEP1tms
	MOVW	HL,#D_TMRoff
TMRdown:

	MOV	A,[HL]
	DEC	A
	CMP	A,#0FFH
	BC	$$+2+3
	mov	A,#24
	MOV	[HL],A
	CALL	!DSP10sec	
	MOV	C_TMRmin,#n_1h1m-1	
	RET
;========================================================================
KEYroll:
	mov	C_RMTroll,#n_300ms3125
;	MOV	A,#2
;	BTJT	f_SYStest,$+4+3
	MOV	A,#10
	CMP	C_KEYroll,#0
	BNE	NOroll
	
	MOV	C_KEYsame,A
	RET
NOroll:
	DEC	C_KEYroll
	ROL	A,1
	MOV	C_KEYsame,A
	RET
	
	
	
;========================================================================
KEYon:
	call	!BEEP1tms
	BTJF	f_PWRon,keyOFF2ON1
	CALL	!ON2OFF
	RET
;------------------------------------------------------------------------
keyOFF2ON1:
	BF	f_PWRon,$$+4+1
	RET
	call	!OFF2ON
	RET

;========================================================================
;if change the mode, didn't clear the money save flag
;------------------------------------------------------------------------
KEYmod:
	BT	f_PWRon,$$+4+1
	RET
	call	!BEEP1tms
;	CLR1	f_SLEEP
	MOV	C_RMT1s,#n_2s125
	BT	f_COOLquick,$entCOOL
	CLR1	f_COOLquick
	mov	A,#n_Mheat+1
	xch	A,X
	


	bt	f_MODmoney,$BACKautoM
	
	MOV	A,M_MODset
	INC	A
;	CMP	A,#n_Mdry
;	BNE	$+2+1
;	INC	A
	
	
	BF	f_COOLonly,$$+4+1
	dec	X
	
	CMP	A,X
	BNE	FANnoMONEY
	MOV	M_MODset,#n_Mcool			;1
	SET1	f_MODmoney			;modify for spec change mode key
	MOV	M_FANset,#n_FANhigh
	BR	MfanTset
;	BR	FANnoMONEY			;

BACKautoM:
	MOV	A,#n_Mauto
	CLR1	f_MODmoney			;
	
FANnoMONEY:	
	CMP	M_FANset,#n_FANauto
	BNE	$+2+3
lowFANmode:
	MOV	M_FANset,#n_FANlow

	MOV	M_MODset,A
	cmp	A,#n_Mdry
	BNE	$+2+3
	MOV	M_FANset,#n_FANlow
	
	cmp	A,#n_Mfan
	BEQ	MfanTset

	ret
entCOOL:
	CLR1	f_COOLquick
	MOV	A,#n_Mcool
	MOV	M_MODset,A
	RET
MfanTset:
	mov	D_TMPset,#72+n_TMPdsp
	mov	D_TMPcset,#22+n_TMPdsp
	CLR1	f_SLEEP
	ret
;========================================================================
KEYfansp:
	MOV	X,#n_FANhigh+1		;[HIS-002]
KEYrmtSP:	
	BT	f_PWRon,$$+4+1
	RET
	cmp	M_MODset,#n_Mauto
	BNE	$+2+1
	ret

	cmp	M_MODset,#n_Mdry
	BNE	$+2+1
	ret

	bt	f_COOLquick,$endFANset

	call	!BEEP1tms
	MOV	C_RMT1s,#n_2s125
;	CMP	M_LEDdigram,#n_FANset
;	BNE	DSPfanSP
	LD	A,M_FANset
	CMP	A,#n_FANlow
	BNE	$+2+2
	MOV	A,X
	dec	A			;[HIS-002]
	LD	M_FANset,A
;DSPfanSP:	
;	MOV	M_LEDdigram,#n_FANset
;	CALL	!DSP10sec
endFANset:
	ret
;========================================================================
;========================================================================
KEYmoney:
	BT	f_PWRon,$$+4+1
	RET
;------------------------------------------------------------------------
;[HIS-009]
	cmp	M_MODset,#n_Mdry
	BEQ	SEThighF
	CMP	M_MODset,#n_Mfan
	BNE	noFAN2money
SEThighF:
	mov	M_FANset,#n_FANhigh
	MOV	D_TMPset,#72+n_TMPdsp                                                                                                                               
	LD	D_TMPcset,#22+n_TMPdsp

noFAN2money:	
;------------------------------------------------------------------------

	mov	M_MODset,#n_Mcool
	
	Call	!BEEP1tms	
	MOV	C_RMT1s,#n_2s125
;	BSET	f_SYSsave
	BT	f_MODmoney,$CLRmoney
	SET1	f_MODmoney
	bt	f_COOLquick,$$+4+1
	ret
	CLR1	f_COOLquick
	mov	M_FANset,#n_FANhigh
	MOV	D_TMPset,#72+n_TMPdsp                                                                                                                               
	LD	D_TMPcset,#22+n_TMPdsp
	
	RET
CLRmoney:
	CLR1	f_MODmoney

	MOV	D_TMPset,#72+n_TMPdsp                                                                                                                               
	LD	D_TMPcset,#22+n_TMPdsp
	MOV	M_FANset,#n_FANhigh	;[HIS-007]
	RET
;------------------------------------------------------------------------
;------------------------------------------------------------------------
KEYquick:
	BF	f_PWRon,$noQUICK
;	CMP	M_MODset,#n_Mcool
;	BEQ	$+2+1
;	RET
;	bt	f_MODmoney,$CLTquick
;	BT	f_GOODman,$KEYsleep
	call	!BEEP1tms
	BT	f_COOLquick,$CLTquick
	
	MOV	A,#72+n_TMPdsp
	MOV	D_TMPset,A
	CALL	!degreeF2C
	LD	D_TMPcset,A
		
	MOV	M_FANset,#n_FANhigh
	MOV	M_MODset,#n_Mcool
	SET1	f_COOLquick
	CLR1	f_MODmoney
	CLR1	f_SLEEP
	MOV	C_QUCIK30min,#n_30m1m
	
	RET
CLTquick:
	CLR1	f_COOLquick
noQUICK:
	RET
;------------------------------------------------------------------------
KEYsleep:
	BF	f_PWRon,$CLRsleep
	bt	f_COOLquick,$CLRsleep
	CMP	M_MODset,#n_Mcool
	BEQ	ENsleep
	CMP	M_MODset,#n_Mheat
	BEQ	ENsleep
	CMP	M_MODset,#n_Mdry
	BEQ	ENsleep
	CMP	M_MODset,#n_Mauto
	BEQ	ENsleep

	ret
ENsleep:
	call	!BEEP1tms
	bt	f_SLEEP,$CLRsleep
	SET1	f_SLEEP
	MOV	C_SLPstp,#2
	MOV	C_SLP1h,#60
	RET
CLRsleep:
	CLR1	f_SLEEP
	RET
	
	
	
	
;------------------------------------------------------------------------
;========================================================================
KEYtmr:
	CALL	!BEEP1tms	
	CMP	M_LEDdigram,#n_DSPtonSET
	BEQ	TMRset
	CMP	M_LEDdigram,#n_TOFFset
	BEQ	TMRset
	BT	f_PWRon,$KEYtmOFF
KEYtmON:
	BT	f_TMRset,$clrTMR
	CALL	!DSP10sec
	MOV	M_LEDdigram,#n_DSPtonSET
	RET
KEYtmOFF:
	BT	f_TMRset,$clrTMR
	CALL	!DSP10sec
	MOV	M_LEDdigram,#n_TOFFset
	RET
TMRset:	
TMRset10s:
	CMP	D_TMRon,#0
	BEQ	clrTMR
	BT	f_TMRset,$noINITtmr
	SET1	f_TMRset
	MOV	C_TMRmin,#n_1h1m-1
	MOV	C_TMRsec,#n_1m1s-1
	mov	A,D_TMRon
	mov	D_TMRset,A
noINITtmr:	
	mov	M_LEDdigram,#n_TMPrm
	ret
clrTMR:
	CLR1	f_TMRset
	mov	D_TMRon,#0
	mov	M_LEDdigram,#n_TMPrm
	RET
;========================================================================
;========================================================================
;	key	filter check
;========================================================================
KEYfilter:
	CALL	!BEEP1tms		
	CLR1	f_FILTER
	MOVW	AX,#1080
	MOVW	C_FLThour,AX
	LD	C_FLTmin,#30		;每30min record
	
	RET
	
;========================================================================
;	key swing setting
;========================================================================
KEYswing:
	BT	f_PWRon,$$+4+1
	RET
	call	!BEEP1tms
	BT	f_SWGset,$CLRswg
setSWG:
	SET1	f_SWGset
	RET
CLRswg:
	CLR1	f_SWGset
	RET
	


;========================================================================
DSP10sec:
	MOV	C_DSP10sec,#20
	RET		
DSP3sec:
	MOV	C_DSP10sec,#7
	RET		
;========================================================================
degreeF2C:
	CLR1	CY
;	RORC	A,1
	SUB	A,#n_TMPdsp+32
	MOV	X,A
	MOV	A,#0
	ADDW	AX,#TAB_F2C
	MOVW	HL,AX
	MOV	A,[HL]
	ADD	A,#n_TMPdsp
	CLR1	CY
;	ROLC	A,1
	RET
TAB_F2C:
                DB      0             ;32
                DB      1             ;33
                DB      1             ;34                                                      
                DB      2             ;35
                DB      2             ;36
                DB      3             ;37
                DB      3             ;38
                DB      4             ;39
                DB      4             ;40                
                DB      5             ;41
                DB      6             ;42
                DB      6             ;43
                DB      7             ;44
                DB      7             ;45
                DB      8             ;46
                DB      8             ;47
                DB      9             ;48
                DB      9             ;49
                DB      10            ;50
                DB      11            ;51
                DB      11            ;52
                DB      12            ;53
                DB      12            ;54
                DB      13            ;55
                DB      13            ;56
                DB      14            ;57
                DB      14            ;58
                DB      15            ;59
                DB      16            ;60
                DB      16            ;61
                DB      17            ;62
                DB      17            ;63
                DB      18            ;64
                DB      18            ;65
                DB      19            ;66
                DB      19            ;67
                DB      20            ;68
                DB      21            ;69
                DB      21            ;70
                DB      22            ;71
                DB      22            ;72
                DB      23            ;73
                DB      23            ;74
                DB      24            ;75
                DB      24            ;76
                DB      25            ;77
                DB      26            ;78
                DB      26            ;79
                DB      27            ;80                
                DB      27            ;81
                DB      28            ;82
                DB      28            ;83
                DB      29            ;84
                DB      29            ;85
                DB      30            ;86
                DB      31            ;87
                DB      31            ;88
                DB      32            ;89
                DB      32            ;90                
                DB      33            ;91
                DB      33            ;92
                DB      34            ;93
                DB      34            ;94
                DB      35            ;95
                DB      36            ;96
                DB      36            ;97
                DB      37            ;98
                DB      37            ;99                
                DB      38            ;100                
                DB      38            ;101                
;************************************************************************
              
degreeC2F:
	SUB	A,#n_TMPdsp
;	CLR1	CY
;	RORC	A,1
	MOV	X,A
	MOV	A,#0
	ADDW	AX,#TAB_C2F
	MOVW	HL,AX
	MOV	A,[HL]
	CLR1	CY
;	ROLC	A,1
	ADD	A,#n_TMPdsp
	RET
TAB_C2F:
                DB      32       ;0 
                DB      34       ;1                                                       
                DB      36       ;2 
                DB      37       ;3 
                DB      39       ;4                 
                DB      41       ;5 
                DB      43       ;6 
                DB      45       ;7 
                DB      46       ;8 
                DB      48       ;9 
                DB      50       ;10
                DB      52       ;11
                DB      54       ;12
                DB      55       ;13
                DB      57       ;14
                DB      59       ;15
                DB      61       ;16
                DB      63       ;17
                DB      64       ;18
                DB      66       ;19
                DB      68       ;20
                DB      70       ;21
                DB      72       ;22
                DB      73       ;23
                DB      75       ;24
                DB      77       ;25
                DB      79       ;26
                DB      81       ;27                
                DB      82       ;28
                DB      84       ;29
                DB      86       ;30
                DB      88       ;31
                DB      90       ;32                
                DB      91       ;33
                DB      93       ;34
                DB      95       ;35
                DB      97       ;36
                DB      99       ;37
                DB      99     ;38
                DB      99     ;38                

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -