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

📄 2236-dvd

📁 接收红外遥控,控制2314
💻
📖 第 1 页 / 共 2 页
字号:
		INC	FLASH_CHAR_5
		LD	data1_H,to1_H
		LD	data0_L,to0_L
		PUSH	data1_H
		PUSH	data0_L
		LD	data5_H,#27H
		LD	data4_L,#10H
		CALL	unbin_sub_16
		POP	data0_L
		POP	data1_H
		CP	to2,#00H
		JP	Z,con_sub_10000
		DEC	FLASH_CHAR_5
		
		LD	to0_L,data0_L
		LD	to1_H,data1_H
		clr	FLASH_CHAR_4
con_sub_1000:
		INC	FLASH_CHAR_4
		LD	data1_H,to1_H
		LD	data0_L,to0_L
		PUSH	data1_H
		PUSH	data0_L
		LD	data5_H,#03H
		LD	data4_L,#0E8H
		CALL	unbin_sub_16
		POP	data0_L
		POP	data1_H
		CP	to2,#00H
		JP	Z,con_sub_1000
		DEC	FLASH_CHAR_4

		LD	to0_L,data0_L
		LD	to1_H,data1_H
		CLR	FLASH_CHAR_3
con_sub_100:
		INC	FLASH_CHAR_3
		LD	data1_H,to1_H
		LD	data0_L,to0_L
		PUSH	data1_H
		PUSH	data0_L
		LD	data5_H,#00H
		LD	data4_L,#64H
		CALL	unbin_sub_16
		POP	data0_L
		POP	data1_H
		CP	to2,#00H
		JP	Z,con_sub_100
		DEC	FLASH_CHAR_3
		
		LD	ACC_SEN_VAL,data0_L
		CALL	bintobcd_8
		LD	to0_L,ACC_SEN_VAL
		RL	FLASH_CHAR_4
		RL	FLASH_CHAR_4
		RL	FLASH_CHAR_4
		RL	FLASH_CHAR_4
		OR	FLASH_CHAR_4,FLASH_CHAR_3
		LD	to1_H,FLASH_CHAR_4
		LD	to2,FLASH_CHAR_5
		RET
.IF 0
bintobcd_16 endp
.ENDIF
.IF 0
unbin_mul_16 proc		
.ENDIF
unbin_mul_16:
	init
	LD	count0,#10H
    	RCF
rradd16:
        rrc	to3
        rrc	to2
        rrc	data5_H         
        rrc	data4_L
        JP	C,mul_add_c
        JP	rr116
mul_add_c:
        ADD	to2,data0_L
        ADC	to3,data1_H
rr116:
	SUB	count0,#01H
	JP	Z,unbin_mul_end
        JP	rradd16   
unbin_mul_end:
        rrc	to3
        rrc	to2
        rrc	data5_H
        rrc	data4_L
        LD	to0_L,data4_L
        LD	to1_H,data5_H
	ret
.IF 0
unbin_mul_16 endp
.ENDIF
;16bit bin to bcd
;***********************************************
;from  acc_SEN_VAL
;return	acc_SEN_VAL
;***********************************************
.IF 0
bintobcd_8	proc
.ENDIF
bintobcd_8:
		clr	data5_H
bin_tobcd:
		LD	data4_L,ACC_SEN_VAL
		SUB	ACC_SEN_VAL,#0AH
		JP	UGE,inc_10p
		JP	end_bcd	
inc_10p:
		inc	data5_H
		JP	bin_tobcd
end_bcd:
		LD	ACC_SEN_VAL,data5_H
		RL	ACC_SEN_VAL
		RL	ACC_SEN_VAL
		RL	ACC_SEN_VAL
		RL	ACC_SEN_VAL
		OR	ACC_SEN_VAL,data4_L
		ret
.IF 0
bintobcd_8	endp
.ENDIF

 ;*********************************************************
.IF 0
volume_key_par	proc
.ENDIF
volume_key_par:
		CP	Current_Key,#IR_VOL_INC_KEY
		JP	NE,vol_dec_ir_fun
vol_inc_fun:
		;音量加
		CP	volume_val,#3CH
		JP	UGE,show_volu
		INC	volume_val
		INC	volume_val
		JP	vol_fun
vol_dec_ir_fun:
		CP	Current_Key,#IR_VOL_DEC_KEY
		JP	Z,vol_dec_fun
		;clr	show_volume
vol_mute:		
		CP	Current_Key,#IR_MUTE_KEY
		JP	Z,vol_mute_fun
		RET
vol_mute_fun:
		XOR_MUTE
		CLR_KEY_VALID
		LD	ACC_SEN_VAL,#VFD_PANEL_MUTE
		CALL	VFD_NOSHOW_POINT
		MUTE_IS_LOW
		JP	Z,noshow_mute_icon
		CALL	DELAY_200MS
		CALL	PT2314_MUTE
		LD	ACC_SEN_VAL,#VFD_PANEL_MUTE
		CALL	VFD_SHOW_POINT
		RET
noshow_mute_icon:
		CALL	PT2314_NOMUTE
mute_ret:
		RET	
vol_dec_fun:
		;音量减
		CP	volume_val,#00H
		JP	Z,show_volu
		DEC	volume_val
		DEC	volume_val
vol_fun:
		LD	ACC_SEN_VAL,#3CH
		SUB	ACC_SEN_VAL,volume_val
		call	PT2314_SEND
show_volu:
		LD	SHOW_STATIC,#SHOW_VOL
		LD	SHOW_OLD_TIME,secon_time
		LD	ACC_SEN_VAL,#VFD_PANEL_MUTE
		CALL	VFD_NOSHOW_POINT
		CALL	PT2314_NOMUTE
		CLR_MUTE
		CLR_KEY_VALID
		RET	
.IF 0
volume_key_par		endp
.ENDIF

.IF 0
set_volume	proc
.ENDIF
set_volume:
		
		LD	ACC_SEN_VAL,#0f0H
		call	REMOTE_DELAY_200uS
		LD	ACC_SEN_VAL,#0f0H
		call	REMOTE_DELAY_200uS
		LD	ACC_SEN_VAL,#0f0H
		call	REMOTE_DELAY_200uS

		LD	ACC_SEN_VAL,#0C0H
		call	PT2314_SEND
		LD	ACC_SEN_VAL,#0E0H
		call	PT2314_SEND
		LD	ACC_SEN_VAL,#3CH
		SUB	ACC_SEN_VAL,volume_val
		call	PT2314_SEND

		LD	ACC_SEN_VAL,#0C0H
		call	PT2314_SEND
		LD	ACC_SEN_VAL,#0E0H
		call	PT2314_SEND
		LD	ACC_SEN_VAL,#3CH
		SUB	ACC_SEN_VAL,volume_val
		call	PT2314_SEND
		
		CP	FUNCTION_STAT,#Function_Radio
		JP	NE,sel_tape_channel
		AND	EQ_RAM,#0FCH
		JP	sel_channel
sel_tape_channel:
		CP	FUNCTION_STAT,#Function_Tape
		JP	NE,sel_vcd_channel
		AND	EQ_RAM,#0FCH
		OR	EQ_RAM,#02H
		JP	sel_channel
sel_vcd_channel:
		CP	FUNCTION_STAT,#Function_Vcd
		JP	NE,sel_channel
		AND	EQ_RAM,#0FCH
		OR	EQ_RAM,#01H
sel_channel:
		LD	ACC_SEN_VAL,EQ_RAM
		call	PT2314_SEND
		CALL	SEND_EQ_VAL

		LD	ACC_SEN_VAL,#0C8H
		call	REMOTE_DELAY_200uS
		CLR_MUTE
		ret
.IF 0
set_volume	endp
.ENDIF
;*******************************************************************

.IF 0
power_key_par	proc
.ENDIF
power_key_par:
		CP	Current_Key,#IR_POWER_KEY
		JP	NE,power_key_ret
		CLR_KEY_VALID
		CLR	FUNCTION_STAT
		SET_first_change_function
		call	clear_function_pin
		XOR_POWER
power_key_ret:
		ret
.IF 0
power_key_par		endp
.ENDIF
;*******************************************************************

.IF 0
CHANGE_FUNC_KEY_Par	proc
.ENDIF
CHANGE_FUNC_KEY_Par:
		;snz	power_on
		;ret
		KEY_VALID_IS_HIGH
		JP	Z,ir_vcd_fun
		RET
;*****************************************************************************
ir_vcd_fun:
		CP	Current_Key,#IR_VCD_KEY
		JP	NE,ir_radio_fun
		CP	FUNCTION_STAT,#Function_Vcd
		JP	Z,no_change_vfd_fun
		SET_first_change_function
		SET_MUTE
		LD	FUNCTION_STAT,#Function_Vcd
no_change_vfd_fun:
		CLR_KEY_VALID
		RET
;*****************************************************************************

ir_radio_fun:
		CP	Current_Key,#IR_RADIO_KEY
		JP	NE,ir_band_fun
radio_fun:
		
		CALL	CLOSE_TRAY
		CP	FUNCTION_STAT,#Function_Radio
		JP	NE,no_change_fre
		XOR_FM_AM_STATION
no_change_fre:
		CLR_RADIO_AUTO_SEARCH_dec
		CLR_RADIO_AUTO_SEARCH_inc
		SET_first_change_function
		CLR_KEY_VALID
		LD	FUNCTION_STAT,#Function_Radio
		RET
ir_band_fun:
		CP	Current_Key,#IR_BAND_KEY
		JP	NE,ir_tape_fun
		CP	FUNCTION_STAT,#Function_Radio
		JP	NE,ir_band_ret
		XOR_FM_AM_STATION
		CLR_RADIO_AUTO_SEARCH_dec
		CLR_RADIO_AUTO_SEARCH_inc
		SET_first_change_function
		CLR_KEY_VALID
ir_band_ret:
		RET
;*****************************************************************************
ir_tape_fun:
		CP	Current_Key,#IR_TAPE_KEY
		JP	NE,ir_aux_fun
;tape_fun:		
		CALL	CLOSE_TRAY
		CP	FUNCTION_STAT,#Function_Tape
		JP	Z,no_change_tape_fun
		SET_first_change_function
		SET_MUTE
		LD	FUNCTION_STAT,#Function_Tape
no_change_tape_fun:
		CLR_KEY_VALID
		RET
;*****************************************************************************
ir_aux_fun:
		CP	Current_Key,#IR_AUX_KEY
		JP	NE,ir_function
;aux_fun:
		CALL	CLOSE_TRAY
		CP	FUNCTION_STAT,#Function_Aux
		JP	Z,no_change_aux_fun
		SET_first_change_function
		SET_MUTE
		LD	FUNCTION_STAT,#Function_Aux
no_change_aux_fun:
		CLR_KEY_VALID
		RET
;*****************************************************************************
ir_function:
		CP	Current_Key,#IR_CHANGE_FUN_KEY
		JP	Z,change_function
		ret
change_function:
		CALL	CLOSE_TRAY
		SET_first_change_function	;第一次转功能
		SET_MUTE
		INC	FUNCTION_STAT
		CLR_KEY_VALID
		CP	FUNCTION_STAT,#last_fun
		JP	EQ,init_function
		RET
init_function:
		LD	FUNCTION_STAT,#01H
		RET
.IF 0
CHANGE_FUNC_KEY_Par	endp
.ENDIF

;********************************************************
.IF 0
clear_function_pin	proc
.ENDIF
clear_function_pin:
		SET_MUTE
		CALL	DELAY_200MS
		CALL	PT2314_MUTE
		LD	ACC_SEN_VAL,#22H
		CALL	REMOTE_DELAY_200uS
		CD_NO_CLOSED_IS_HIGH
		JP	Z,no_clr_vcd_power
		CLR_VCD
no_clr_vcd_power:
		CLR_RADIO
		CLR_TAPE
		CLR_HI
		;CLR_AUX
		ret
.IF 0
clear_function_pin	endp
.ENDIF


.IF 0
DELAY_200MS	PROC
.ENDIF
DELAY_200MS:
		LD	ACC_SEN_VAL,#0F8H
		CALL	REMOTE_DELAY_200uS
		LD	ACC_SEN_VAL,#0F8H
		CALL	REMOTE_DELAY_200uS
		RET
.IF 0
DELAY_200MS	ENDP
.ENDIF

;*************************************************************
;			eq function
;*************************************************************
.IF 0
EQ_key_par		proc
.ENDIF
EQ_key_par:
EQ_JAZZ:
		CP	Current_Key,#IR_JAZZ_KEY
		JP	NE,EQ_FLAT
		LD	EQ_VAL,#00H
		JP	EQ_FUNCTION
EQ_FLAT:
		CP	Current_Key,#IR_FLAT_KEY
		JP	NE,EQ_CLASSIC
		LD	EQ_VAL,#00H
		JP	EQ_FUNCTION

EQ_CLASSIC:
		CP	Current_Key,#IR_CLASSIC_KEY
		JP	NE,EQ_ROCK
		LD	EQ_VAL,#00H
		JP	EQ_FUNCTION
EQ_ROCK:
		CP	Current_Key,#IR_ROCK_KEY
		JP	NE,EQ_SINGNED
		LD	EQ_VAL,#00H
		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
		LD	ACC_SEN_VAL,#VFD_PANEL_CLASSIC
		call	VFD_NOSHOW_POINT
		LD	ACC_SEN_VAL,#VFD_PANEL_FLAT
		call	VFD_NOSHOW_POINT
		LD	ACC_SEN_VAL,#VFD_PANEL_JAZZ
		call	VFD_NOSHOW_POINT
		LD	ACC_SEN_VAL,#VFD_PANEL_ROCK
		call	VFD_NOSHOW_POINT
		LD	ACC_SEN_VAL,#VFD_PANEL_BOX
		CALL	VFD_SHOW_POINT
		CALL	SEND_EQ_VAL
		RET
.IF 0
EQ_key_par	endp
.ENDIF

.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,#1FF4H[RR2]
		LD	ACC_SEN_VAL,R0
		CALL	PT2314_SEND
		INC	R3
		LDC	R0,#1FF4H[RR2]
		LD	ACC_SEN_VAL,R0
		CALL	PT2314_SEND
		
		LD	R3,EQ_VAL
		LDC	R0,#1FFCH[RR2]
		LD	ACC_SEN_VAL,R0
		CALL	VFD_SHOW_POINT
		POP	R0
		POP	R3
		POP	R2
EQ_RET:
		RET
.IF 0		
SEND_EQ_VAL	ENDP
.ENDIF



		ORG		01FF4H		;EQ VAL PT2314
		
		DB	67H
		DB	77H
		
		DB	6BH
		DB	7DH
		
		DB	6CH
		DB	7EH
		
		DB	6AH
		DB	7BH
	;**********VFD_PANEL_ICON*********
		DB	VFD_PANEL_FLAT
		DB	VFD_PANEL_JAZZ
		DB	VFD_PANEL_CLASSIC
		DB	VFD_PANEL_ROCK

		END

⌨️ 快捷键说明

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