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

📄 idwracstp.asm

📁 空调控制程序,MCU 采用NEC D789189
💻 ASM
字号:
;************************************************************************
;************************************************************************
;步进电机的动作
;1.上电后,顺时针关闭110度+5度
;2.开机后,逆时针开45度
;3.如果扫风,则在45度到110度之间摆动
;4.如关闭,以当前位置+5度关闭

;************************************************************************
;*	Module Name:							*
;*	Function:							*
;*	Input:								*
;*	Output:								*
;*	Break:								*
;*	stack:								*
;************************************************************************
;	History:
;
;------------------------------------------------------------------------
STEPctrl:

	BTJT	f_STP14ms,$+4+1
	RET

	BRES	f_STP14ms
STPtime:		
;	CALL	!OUT4094
	
	LD	A,D_STPstatus
	CMP	A,#n_STPclose
	JREQ	STPclose
	CMP	A,#n_STPreset
	JREQ	STPreset
	CMP	A,#n_STPopen
	JREQ	STPopen
	CMP	A,#n_STPset
	JREQ	STPset
	CMP	A,#n_STPrun
	JRNE	STPnowSTOP
	JP	STPrun
STPnowSTOP:	
;	CMP	A,#n_STPstop
	JP	STPstop
;...
STPerr:
;========================================================================
STPreset:
	LD	A,D_STPnow
	CMP	A,#n_STPd60			;全开角度
	JRNE	$+2+3	
	BR	!STP2close
	BSET	f_STPup
	LD	A,#n_STPd60
	LD	D_STPobj,A
	CALL	!STPout
	RET
;========================================================================
STPclose:
	BRES	f_STPok
	CMP	D_STPnow,#n_STPd0			;全关角度
	JREQ	STP2open
	BRES	f_STPup
	LD	A,#n_STPd0
	LD	D_STPobj,A
	CALL	!STPout
	RET
;------------------------------------------------------------------------
STPstop:
STPoff:	
STPoff1:		
	BRES	o_STP1
	BRES	o_STP2
	BRES	o_STP3
	BRES	o_STP4
	RET
;========================================================================
STPset:
	BTJF	f_PWRon,STPoff1
	BF	f_SWGset,$STPoff1
	CMP	M_FANsp,#n_FANoff
	BEQ	STPoff1
	BR	STP2run
	RET		
	
;========================================================================
STPopen:
	LD	A,D_STPnow
	CMP	A,#n_STPd30				;水平角度
	JRUGE	STP2set
	BSET	f_STPup
	LD	A,#n_STPd30	
	LD	D_STPobj,A
	CALL	!STPout
	RET
;------------------------------------------------------------------------
STP2set:
	SET1	f_STPok
	LD	A,#n_STPset
	LD	D_STPstatus,A
	LD	A,D_STPnow
	LD	D_STPobj,A
	RET
;------------------------------------------------------------------------
STP2run:
	LD	A,#n_STPrun
	LD	D_STPstatus,A
	RET
;------------------------------------------------------------------------
STP2close:
	BRES	f_STPup
	LD	A,#n_STPclose
	LD	D_STPstatus,A	
	RET
;------------------------------------------------------------------------
STP2reset:
	BRES	f_STPok
	LD	A,#n_STPreset
	LD	D_STPstatus,A
	RET
;------------------------------------------------------------------------
STP2open:
	BRES	f_STPok
	BSET	f_STPup
	LD	A,#n_STPopen
	LD	D_STPstatus,A
	RET
;========================================================================
STPrun:	
	BTJF	f_PWRon,STP2set
	BTJF	f_SWGset,STP2set
	LD	A,M_FANsp
	CMP	A,#n_FANoff
	JREQ	STP2set

	CALL	!STPareaCHK
	
	BR	STPout		;JRC	STPout

;------------------------------------------------------------------------
STP2stop:
	LD	A,#n_STPstop
	LD	D_STPstatus,A
	RET
	
;========================================================================
STPareaCHK:
	LD	A,D_STPnow
	CMP	A,#n_STPd55
	JRULT	STPlowCHK
	BRES	f_STPup
	LD	A,#n_STPd5
	LD	D_STPobj,A
	SCF
	RET
STPlowCHK:
	CMP	A,#n_STPd5
	JRUGE	STPareaIN
	BSET	f_STPup
	LD	A,#n_STPd55
	LD	D_STPobj,A
	SCF
	RET
	
STPareaIN:
	RCF
	RET
;========================================================================

;========================================================================
STPout:
	BTJT	f_STPup,STPup
	TNZ	D_STPphase
	JRNE	STPdec
	DEC	D_STPnow
	LD	A,#7+1
	LD	D_STPphase,A
STPdec:
	DEC	D_STPphase
	JRA	STPon
STPup:
	LD	A,D_STPphase
	CMP	A,#7
	JRULT	STPinc
	INC	D_STPnow
	LD	A,#0FFH
	LD	D_STPphase,A
STPinc:
	INC	D_STPphase
;========================================================================
STPon:
	
	LD	A,D_STPphase
	LD	X,#0
	XCH	A,X
	ADDW	AX,#STPtab
getstpTAB:
	MOVW	HL,AX
	LD	A,[HL]

	CALL	!STPoff1
	
	RRC	A
	JRC	$+2+3
	BSET	o_STP1
	RRC	A
	JRC	$+2+3
	BSET	o_STP2
	RRC	A
	JRC	$+2+3
	BSET	o_STP3
	RRC	A
	JRC	$+2+3
	BSET	o_STP4
	
	RET

;========================================================================
STPtab:
        DB	10011001B    ;STEP1
        DB	00010001B    ;STEP2
        DB	00110011B    ;STEP3
        DB	00100010B    ;STEP4
        DB	01100110B    ;STEP5
        DB	01000100B    ;STEP6
        DB	11001100B    ;STEP7
	DB	10001000B    ;STEP8
;------------------------------------------------------------------------
STPtab1:
	DB	10001000B    ;STEP8
        DB	11001100B    ;STEP7
        DB	01000100B    ;STEP6
        DB	01100110B    ;STEP5
        DB	00100010B    ;STEP4
        DB	00110011B    ;STEP3
        DB	00010001B    ;STEP2
        DB	10011001B    ;STEP1


;	END
		
	
	
	
	
	
	
	
	
	
	
	

⌨️ 快捷键说明

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