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

📄 3314.asm

📁 接收红外遥控,控制2314
💻 ASM
字号:

;***********************************************************
.IF 0
PT2314_NOMUTE		PROC
.ENDIF
PT2314_NOMUTE:
		ld	ACC_SEN_VAL,#0C0H
		call	PT2314_SEND
		ld	ACC_SEN_VAL,#0E0H
		call	PT2314_SEND
		ret


.IF 0
PT2314_MUTE		PROC
.ENDIF
PT2314_MUTE:
		ld	ACC_SEN_VAL,#0FFH
		call	PT2314_SEND
		ld	ACC_SEN_VAL,#0DFH
		call	PT2314_SEND
		ret
;**********************************************************************
;			PT2313_IC2_START
;**********************************************************************
.IF 0
PT2314_IC2_START	proc
.ENDIF
PT2314_IC2_START:
		PT2314_DATA_OUT_MODE
		SET_PT2314_DATA
		call	DELAY_TIME
		SET_PT2314_CLK
		call	DELAY_TIME
		CLR_PT2314_DATA
		call	DELAY_TIME    ;   /* 起始条件锁定时间大于4μs*/
	    	CLR_PT2314_CLK
		call	DELAY_TIME 
		ret
;*************************************************************************

;*************************************************************************
;
;			PT2313_IC2_END
;
.IF 0
PT2314_IC2_END	proc
.ENDIF
;*************************************************************************
PT2314_IC2_END:
		CLR_PT2314_CLK
		CLR_PT2314_DATA
		call		DELAY_TIME;
		SET_PT2314_CLK
		call		DELAY_TIME;          /*结束条件建立时间大于4μs*/
		SET_PT2314_DATA
		call		DELAY_TIME;
		ret

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

;*************************************************************************
;
;			VAL_PT2313_SEND_DATA FORM ACC
;
.IF 0
PT2314_IC2_SEND_8		proc
.ENDIF
;*************************************************************************
PT2314_IC2_SEND_8:
		push		R0
		push		R1
		ld		R1,#08H
s_nextb:
		CLR_PT2314_DATA
		tm		ACC_SEN_VAL,#80H
		jr		Z,no_set_data
		SET_PT2314_DATA
no_set_data:
		rl		ACC_SEN_VAL
		SET_PT2314_CLK
		call		DELAY_TIME
		CLR_PT2314_CLK
		call		DELAY_TIME
		dec		R1
		cp		R1,#00H
		jr		NE,s_nextb
		call		DELAY_TIME
		PT2314_DATA_IN_MODE
		call		DELAY_TIME
		SET_PT2314_CLK
		call		DELAY_TIME
test_ack:
		PT2314_DATA_IS_HIGH
		jr		Z,ack_error_ret
		CLR_PT2314_CLK
		PT2314_DATA_OUT_MODE
		call		DELAY_TIME
		ld		ACC_RET_VAL,#01H
		jp		send_8_ret	
 ack_error_ret:
 		
 		CLR_PT2314_CLK
		call		DELAY_TIME
		PT2314_DATA_OUT_MODE
		call		DELAY_TIME
		clr		ACC_RET_VAL
send_8_ret:
		pop		R1
		pop		R0
		ret	
;*************************************************************************

;*************************************************************************
;		  MAIN:PT2313_SEND 
;
;		  pt2313_send_data from acc
;
.IF 0
PT2314_SEND	PROC
.ENDIF
;*************************************************************************
PT2314_SEND:
 	;----------send addr------------
		push		ACC_SEN_VAL
		call		PT2314_IC2_START
		ld		ACC_SEN_VAL,#88H
		call		PT2314_IC2_SEND_8	
		cp		ACC_RET_VAL,#0h
		jp		Z,send_error
 	;----------send val-------------
 		pop		ACC_SEN_VAL
 		call		PT2314_IC2_SEND_8	
		cp		ACC_RET_VAL,#00H
		jp		Z,send_error1
		call		PT2314_IC2_END
		ret	
send_error:
		pop		ACC_SEN_VAL
send_error1:
		call		PT2314_IC2_END
		ret			;fail
.IF 0
PT2314_SEND		ENDP
.ENDIF

;*************************************************************************
;**********************************************************************
.IF 0
DELAY_TIME	PROC
.ENDIF
DELAY_TIME:
			NOP
			NOP
			nop
			nop
			nop
			nop
			ret
;**********************************************************************






;**********************************************************************
.IF 0
SEND_EQ_VAL	PROC
.ENDIF
SEND_EQ_VAL:
		push	R2
		push	R3
		push	R0
		clr	R2
		ld	R3,EQ_VAL
		add	R3,EQ_VAL
		
		ldc	R0,#Eq_Val[RR2]
		ld	ACC_SEN_VAL,R0
		call	PT2314_SEND
		inc	R3
		ldc	R0,#Eq_Val[RR2]
		ld	ACC_SEN_VAL,R0
		call	PT2314_SEND
		
		call	LIGHT_EQ_LED
		pop	R0
		pop	R3
		pop	R2
EQ_RET:
		ret

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



Eq_Val:		;EQ VAL PT2314
		
		DB	67H
		DB	77H
		
		DB	6BH
		DB	7DH
		
		DB	6CH
		DB	7EH
		
		DB	6AH
		DB	7BH



;			eq function
;*************************************************************
.IF 0
EQ_key_par		proc
.ENDIF
EQ_key_par:
EQ_JAZZ:
		POWER_IS_LOW
		jp	Z,eq_ret
		KEY_VALID_IS_LOW
		jp	Z,eq_ret

		cp	Current_Key,#IR_JAZZ_KEY
		jp	NE,EQ_FLAT
		ld	EQ_VAL,#1H
		jp	EQ_FUNCTION
EQ_FLAT:
		cp	Current_Key,#IR_FLAT_KEY
		jp	NE,EQ_CLASSIC
		ld	EQ_VAL,#0H
		jp	EQ_FUNCTION

EQ_CLASSIC:
		cp	Current_Key,#IR_CLASSIC_KEY
		jp	NE,EQ_ROCK
		ld	EQ_VAL,#02H
		jp	EQ_FUNCTION
EQ_ROCK:
		cp	Current_Key,#IR_ROCK_KEY
		jp	NE,EQ_SINGNED
		ld	EQ_VAL,#03H
		jp	EQ_FUNCTION
EQ_SINGNED:
		cp	Current_Key,#IR_CHANGE_EQ_KEY
		jp	NE,EQ_RET
		inc	EQ_VAL
		cp	EQ_VAL,#04H
		jp	ULT,EQ_FUNCTION
		clr	EQ_VAL
EQ_FUNCTION:
		CLR_KEY_VALID
		
		call	SEND_EQ_VAL
eq_ret:
		RET


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

;------------------------------------------------------
.IF	0
LIGHT_EQ_LED	PROC
.ENDIF
LIGHT_EQ_LED:
			CLR_FLAT
			CLR_POP
			CLR_ROCK
			CLR_JAZZ
			cp		EQ_VAL,#00H
			jp		NE,VFD_PANEL_JAZZ
			SET_FLAT
			RET
VFD_PANEL_JAZZ:
			cp		EQ_VAL,#01H
			jp		NE,VFD_PANEL_CLASSIC
			SET_JAZZ
			RET
VFD_PANEL_CLASSIC:
			cp		EQ_VAL,#02H
			jp		NE,VFD_PANEL_ROCK
			SET_POP
			RET
VFD_PANEL_ROCK:
			SET_ROCK
			RET
;------------------------------------------------------
;*************************************************************************
;		  MAIN:PT2258_SEND 
;		  pt2258send_data from PT2258_VOL
.IF 0
Pt2258_Send	PROC
.ENDIF
;*************************************************************************
Pt2258_Send:
		ld	ACC_SEN_VAL,PT2258_VOL
		call	PT2314_SEND

		RET			;fail


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

⌨️ 快捷键说明

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