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

📄 idwracsys.asm

📁 空调控制程序,MCU 采用NEC D789189
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;************************************************************************
;	History:
;
;------------------------------------------------------------------------
RORax:
	CLR1	CY
	XCH	A,X
	RORC    A,1
	XCH	A,X
	RORC	A,1
	RET

;************************************************************************
;*	Module Name:	DEC->HEX					*
;*	Function:							*
;*	Input:		A						*
;*	Output:		A						*
;*	Break:		A,X,B						*
;*	stack:								*
;************************************************************************
;	History:
;
;------------------------------------------------------------------------
DEC2HEX:
	MOV	X,A
	AND	A,#0FH
	XCH	A,X
	AND	A,#0F0H
	ROR	A,1
	ROR	A,1
	ROR	A,1
	ROR	A,1
	MOV	B,A
	MOV	A,#0
D2H_01:
	ADD	A,#0AH
	DBNZ	B,$D2H_01
	ADD	A,X
	RET

;************************************************************************
;*	Module Name:	ROLA4						*
;*	Function:	A<<4						*
;*	Input:		A						*
;*	Output:		A						*
;*	Break:		A						*
;*	stack:								*
;************************************************************************
;	History:
;
;------------------------------------------------------------------------
ROLA4:
	ROL	A,1
	ROL	A,1
	ROL	A,1
	ROL	A,1
	RET



;------------------------------------------------------------------------

	RET


;************************************************************************
;*	Module Name:							*
;*	Function:							*
;*	Input:								*
;*	Output:								*
;*	Break:								*
;*	stack:								*
;************************************************************************
DEBUGdat:
	MOV	D_RMTdat,#11000000B
	MOV	D_RMTdat+1,#11101110B	;TIMER OFF,1 HOUR
	MOV	D_RMTdat+2,#0B	;
	MOV	D_RMTdat+3,#0B	;
	MOV	D_RMTdat+4,#10100101B	;costomer
	RET



;*********************************************************
;	module for self test
;*********************************************************
AUTtest:
	MOV	C_AUTstp,#n_tst88+1+2
	mov	D_DSPram,#0ffh
	mov	D_DSPram+1,#0ffh
	mov	D_DSPram+2,#0ffh
AUTloop:
	SET1	RUN
	CALL	!TMcount  
	CALL	!DELAY              
	CALL	!DELAY
	CALL	!DELAY
	CALL	!DELAY 
	CALL	!AUTout		
	CALL	!SCANout		
;	call	!outLED
	CMP	C_AUTstp,#0
	BNZ	$AUTloop
;	clr1	o_FANout
	RET

;*******************************************************
AUTout:

	CMP	C_AUTstp,#n_tst88
	BNZ	$AUTtest0
	MOV	D_DSPram,#0
	MOV	D_DSPram+1,#0
	RET
AUTtest0:
	CMP	C_AUTstp,#n_tstRUN
	BNZ	$AUTtest1
	MOV	D_DSPram,#0FFH
	MOV	D_DSPram+1,#0FFH
	RET
AUTtest1:
        CMP     C_AUTstp,#n_tstCchar
	BNZ	$AUTtest2
        CLR1    f_LEDcool
	RET
AUTtest2:
AUTtest4:
        CMP     C_AUTstp,#n_tstHEAT
        BNZ     $AUTtest5
        SET1    f_LEDcool
        CLR1    f_LEDheat
	RET
AUTtest5:
AUTtest6:
AUTtest7:
AUTtest8:
	CMP	C_AUTstp,#n_tstCOM
        BNZ     $AUTtest9
	SET1	o_COMon
	RET
AUTtest9:
	CMP	C_AUTstp,#n_tstS4
        BNZ     $AUTtestA
	CLR1	o_COMon
        SET1    o_S4on
	RET
AUTtestA:
	CMP	C_AUTstp,#n_tstHTR
        BNZ     $AUTtestB
        CLR1    o_S4on
	SET1	o_HTR1
	RET

AUTtestB:
        CMP     C_AUTstp,#n_tstFANh
        BNZ     $AUTtestC
	CLR1	o_HTR1
        set1    o_FANhigh
	RET
AUTtestC:
        CMP     C_AUTstp,#n_tstFANl
        BNZ     $AUTtestD
        CLR1    o_FANhigh
        SET1    o_FANlow
	RET

AUTtestD:
	RET



;************************************************************************
NO_USE:
INTWDT:
INTP1:
INTP2:
INTP3:
INTSR20:
INTST20:
INTWT:
INTWTI:
INTTM81:
INTTM82:
INTTM90:
INTAD0: 
	NOP
	RETI
;

;************************************************************************
DATEchk:
	cmp	M_MODset,#n_Mheat+1
	BNC	$dataERR
	cmp	M_MODrun,#n_Mheat+1
	BNC	$dataERR
	cmp	M_FANset,#n_FANhigh+1
	BNC	$dataERR
	cmp	D_TMPset,#100+n_TMPdsp
	BNC	$dataERR
	CMP	D_TMPcset,#33+n_TMPdsp
	BNC	$dataERR
	CMP	C_RES2s,#17
	BNC	$dataERR
	CLR1	TMMK80
	EI
	SET1	RUN
	;...
	RET
dataERR:
	DI
	NOP
	NOP		
	BR	dataERR		;WAIT FOR THE WATCHDOG

;************************************************************************
PROTECT:
	mov	A,f_FLGerr
	cmp	A,#0
	BNE	ERRsensor
	RET
ERRsensor:
	CALL	!ON2OFF

	
	
	ret
	
	
	


;************************************************************************
;************************************************************************

;************************************************************************
;*	Module Name:	OUTPUT						*
;*	Function:	output the conttrol object			*
;*	Input:								*
;*	Output:								*
;*	Break:								*
;*	stack:								*
;************************************************************************
;	History:
;
;------------------------------------------------------------------------
OUTctrl:
	CALL	!OUTcom			;COMPRESSOR
	CALL	!OUTextFAN
	CALL	!OUTs4			;outdoor fan
        CALL    !OUTfan                ;INDOOR FAN
	CALL	!OUThtr                 ;HEATER
	CALL	!OUTswing
	RET

;------------------------------------------------------------------------
;	OUT put the f_COMon to o_COMon
;------------------------------------------------------------------------
OUTcom:
	BT	f_COMon,$ONcom
	BT	o_COMon,$COM2off
;	MOV	C_COM6mRUN,#n_6M5s
	MOVW	AX,#360
	MOVW	C_COM6mRUN,AX
	CMP	C_COM3mP,#0
	BNE	$+2+1
	RET
	MOV	C_COM7mOFF,#n_4m1s	
	RET
ERR2com:
	CLR1	f_EXTon

COM2off:
	MOV	C_COM3mP,#n_3m1s
	CLR1	o_COMon
	CALL	!OFF_COM
	RET

ONcom:
	BF	o_COMon,$COM2on
	RET
COM2on:
	CMP	C_COM3mP,#0
	BNZ	$COMnotON
	SET1	o_COMon
	LD	A,#n_2m1s
	LD	C_S42m,a	;

	RET
COMnotON:
	CALL	!OFF_COM
	RET

;------------------------------------------------------------------------
;	OUTPUT heater
;------------------------------------------------------------------------
OUThtr:
	BT	f_HTR1on,$ONhtr

	BF	o_HTR1,$$+4+3
	MOV	C_HTR3mP,#n_3m1s
	
	CLR1	o_HTR1
	CLR1	o_HTR2
	MOV	C_HTR3mRUN,#n_3m1s
	RET
ONhtr:
	SET1	o_HTR1
	SET1	o_HTR2

	RET
;------------------------------------------------------------------------
;       OUT TO FAN CONTROL
;------------------------------------------------------------------------
OUTfan:
        LD      A,M_FANsp
        CMP     A,#n_FANlow
        JREQ    outLOWfan
        CMP     A,#n_FANhigh
        JREQ    outHIGHfan
        CMP     A,#n_FANmid
        JREQ    outMIDfan
outOFFfan:
	MOV	C_FAN3s,#n_3s1s
        CLR1    o_FANlow
        CLR1	o_FANmid
        CLR1    o_FANhigh
	RET
outLOWfan:
	CLR1    o_FANhigh
	CLR1	o_FANmid
        SET1    o_FANlow
        
        
	RET
outHIGHfan:
        CLR1    o_FANlow
        CLR1	o_FANmid
        SET1    o_FANhigh
	RET
outMIDfan:
        CLR1    o_FANlow
        CLR1    o_FANhigh
        SET1	o_FANmid
	RET

;========================================================================
OUTswing:
	CMP	M_FANsp,#0
	BEQ	SWGoff
	BF	f_SWGset,$SWGoff
	SET1	o_SWGon
	ret
SWGoff:
	CLR1	o_SWGon
	RET
;------------------------------------------------------------------------
;	OUT TO EXTEND FAN
;------------------------------------------------------------------------
OUTextFAN:
	BT	f_EXTon,$turnEXTon
	CLR1	o_EXTon
	MOV	C_FAN3s,#n_3s1s	
	ret
turnEXTon:
	SET1	o_EXTon
	ret
;************************************************************************
;------------------------------------------------------------------------
OUTs4:
	BT	f_S4on,$ONS4
	CLR1	o_S4on
	RET
ONS4:
	SET1	o_S4on
	RET
	
;========================================================================
TESTctrl:
	BF	f_SYStest,$NOtest
	mov	C_S42m,#0
	mov	C_RMT1s,#0
	MOV	C_COM3mP,#0
	MOV	C_FRZ2m,#0
	MOV	C_DEFpipe,#0
	CMP	C_TEST90min,#0
	
	BNE	NOtest
	CALL	!ON2OFF
NOtest:	
	RET


;========================================================================
DELAY:
	MOV	A,#1FH
DELAYloop:	
	DEC	A
	BNZ	$DELAYloop	
	ret

;***********************************************************



 	$include 	(IDwracCNT.ASM)
	$include	(IDwracRMT.ASM)
 	$include 	(IDwracMOD.ASM)
	$include	(IDwracDSP.ASM)
	$include	(IDwrackey.ASM)
 	$include 	(IDwracADC.ASM)	
 	$include 	(IDwracI2C.ASM)	
 	$include 	(IDwracBUZ.ASM)	 	
 	$include 	(IDwracTMR.ASM)	
 	$include 	(IDwracSTP.ASM)	
 	$include 	(IDwracSLP.ASM)	
	$include	(IDwracHOT.ASM)

        END

⌨️ 快捷键说明

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