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

📄 radio.src

📁 接收红外遥控,控制2314
💻 SRC
📖 第 1 页 / 共 5 页
字号:
		DEC	volume_val
		;show vol-


		
vol_fun:
		LD	ACC_SEN_VAL,#3CH
		SUB	ACC_SEN_VAL,volume_val
		call	PT2314_SEND
show_vol:
		;set	show_volume
		;clr	show_volume_time
		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,#0C0H
		call	PT2314_SEND
		LD	ACC_SEN_VAL,#0E0H
		call	PT2314_SEND
		LD	ACC_SEN_VAL,#1FH
		call	PT2314_SEND
		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:
change_func_con:
		;snz	power_on
		;ret

;*****************************************************************************
ir_vcd_fun:
		CP	Current_Key,#IR_VCD_KEY
		JP	NE,ir_radio_fun
vcd_fun:
		CP	FUNCTION_STAT,#Function_Vcd
		JP	Z,no_change_vfd_fun
		SET_first_change_function
		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_tape_fun
radio_fun:
		;call	close_tray
		SET_first_change_function
		CLR_KEY_VALID
		;CP	FUNCTION_STAT,#Function_Radio
		;JP	Z,no_
		;mov	a,Function_Fm
		;sub	a,FUNCTION_STAT
		;snz	z
		;jmp	fm_fun
;am_fun:		
		NOP
		;mov	a, Function_Am
		;mov	FUNCTION_STAT,a
		;ret
;fm_fun:	
		NOP
		;mov	a, Function_Fm
		;mov	FUNCTION_STAT,a
		ret
;*****************************************************************************
ir_tape_fun:
		CP	Current_Key,#IR_TAPE_KEY
		JP	NE,ir_aux_fun
;tape_fun:
		CP	FUNCTION_STAT,#Function_Tape
		JP	Z,no_change_tape_fun
		SET_first_change_function
		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:
		CP	FUNCTION_STAT,#Function_Aux
		JP	Z,no_change_aux_fun
		SET_first_change_function
		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:
		SET_first_change_function	;第一次转功能
		INC	FUNCTION_STAT
		CLR_KEY_VALID
		CP	FUNCTION_STAT,#last_fun
		JP	Z,init_function
		RET
init_function:
		LD	FUNCTION_STAT,#01H
		RET
.IF 0
CHANGE_FUNC_KEY_Par	endp
.ENDIF

;********************************************************
.IF 0
updata_time	proc
.ENDIF
updata_time:
		CP		secon_time,#3BH
		JP		UGE,add_secon
		RET
add_secon:
		CLR		secon_time
		INC		minute_time
		;call		compare_timer
		CP		minute_time,#3BH
		JP		UGE,add_hour
		RET
add_hour:
		CLR		minute_time
		INC		hour_time
		CP		hour_time,#17H
		JP		UGE,clr_hour
		RET
clr_hour:
		CLR		hour_time
		;call		compare_timer
		RET
.IF 0
updata_time	endp
.ENDIF
;*******************************************************************

;***************************************************************
;
;		ret	1	succeed
;		ret	0	fail
;
.IF 0
RADIO_CHECK_IFCOUNT	PROC
.ENDIF
;***************************************************************
RADIO_CHECK_IFCOUNT:
	;*****************start if  count*******************
		radio_set_mute
		LD	ACC_SEN_VAL,#05H
		call	REMOTE_DELAY_200uS
		OR	IN1_DATA3,#00000100B ;start if countIN1_DATA3.2 IN1_CTE
		CALL	REMOVE_RADIO_IN1_VAL
		call	RADIO_SEND_CMD_TO_RADIO
		
		LD	ACC_SEN_VAL,#0c8H
		call	REMOTE_DELAY_200uS
		;LD	ACC_SEN_VAL,#0bfH
		LD	ACC_SEN_VAL,#04H
		call	REMOTE_DELAY_200uS
	;***************************************************
		call	RADIO_READ_DATA_FROM_RADIO
		call	RADIO_READ_DATA_FROM_RADIO
	;****************************************************
	;	cancle ifcount
	;****************************************************
		radio_clr_mute
		AND	IN1_DATA3,#11111011B ;stop if countIN1_DATA3.2 IN1_CTE
		call	REMOVE_RADIO_IN1_VAL
		call	RADIO_SEND_CMD_TO_RADIO

		RADIO_AUTO_SEARCH_dec_IS_HIGH
		JP	Z,com_ifcount
		TCM	IN3_DATA1,#10H
		JP	Z,am_end_suc
		
	;****************************************************
com_ifcount:
		CLR	ACC_RET_VAL
		CP	FUNCTION_STAT,#FUNCTION_Am
		JP	Z,am_ifcount
fm_ifcount:
		LD	ACC_SEN_VAL,#03H;#04H	; --- 64ms
if_div_16:
		RCF
		rrc	IN3_DATA1
		rrc	IN3_DATA2
		rrc	IN3_DATA3
		DEC	ACC_SEN_VAL
		CP	ACC_SEN_VAL,#00H
		JP	NE,if_div_16
;if > min range FM
fm_range_com:
		CP	IN3_DATA2,#0A7H
		JP	Z,fm_range_low8
		RET			;FAIL
fm_range_low8:
		CP	IN3_DATA3,#01H
		JP	UGE,fm_range_low
		RET			;FAIL
fm_range_low:
		CP	IN3_DATA3,#50H
		JP	ULE,fm_end_suc
		RET			;FAIL
fm_end_suc:	
		LD	ACC_RET_VAL,#01H
		RET			
am_ifcount:
		LD	ACC_SEN_VAL,#06H; --- 64ms
if_div_64:
		RCF
		rrc	IN3_DATA2
		rrc	IN3_DATA3
		DEC	ACC_SEN_VAL
		CP	ACC_SEN_VAL,#00H
		JP	NE,if_div_64
am_range_com:
		CLR	ACC_RET_VAL
		CP	IN3_DATA2,#01H
		JP	Z,am_range_low8
		RET
am_range_low8:;if >= min range aM

		CP	IN3_DATA3,#0C0H
		JP	UGE,am_range_low
		RET
am_range_low:;if <= max range	aM
		CP	IN3_DATA3,#0C4H
		JP	ULE,am_end_suc
		RET
am_end_suc:
		LD	ACC_RET_VAL,#01H
		RET
.IF 0
RADIO_CHECK_IFCOUNT		ENDP
.ENDIF

.IF 0
clear_function_pin	proc
.ENDIF
clear_function_pin:
		SET_MUTE
		CLR_VCD
		CLR_RADIO
		CLR_TAPE
		;CLR_AUX
		ret
.IF 0
clear_function_pin	endp
.ENDIF
;********************************************************************************
.IF 0
BACK_FF_KEY	PROC
.ENDIF
BACK_FF_KEY:
dec_ir_key:
		CP	Current_Key,#IR_FB_KEY
		JP	Z,dec_fun
		JP	dec_auto_search
dec_fun:
		CLR_RADIO_AUTO_SEARCH_inc
		AUTO_SEARCH_DEC_KEY_DOWN_IS_HIGH
		JP	Z,con_auto_dec_search
		CLR	VAL_RADIO_DEC_TIMES
		CLR_RADIO_AUTO_SEARCH_dec
con_auto_dec_search:
		INC	VAL_RADIO_DEC_TIMES
		SET_AUTO_SEARCH_DEC_KEY_DOWN
		RADIO_AUTO_SEARCH_dec_IS_HIGH
		JP	Z,dec_stat
		CP	VAL_RADIO_DEC_TIMES,#33H
		JP	ULT,search_inc_key
		SET_RADIO_AUTO_SEARCH_dec
		CLR	VAL_RADIO_DEC_TIMES
		jp	dec_stat

;******************************************************
dec_auto_search:
		CLR_AUTO_SEARCH_DEC_KEY_DOWN
		CP	Current_Key,#IR_FF_KEY
		JP	Z,search_inc_key
		RADIO_AUTO_SEARCH_dec_IS_HIGH
		JP	Z,dec_stat
		CP	VAL_RADIO_DEC_TIMES,#01H
		JP	ULT,search_inc_key
		CLR_RADIO_AUTO_SEARCH_inc
dec_stat:
		clr	VAL_RADIO_DEC_TIMES
		CP	FUNCTION_STAT,#FUNCTION_Am
		JP	Z,am_least_range
fm_least_range:;FM >=87.5MHZ
		CP	IN1_DATA2,#07H
		JP	UGT,dec_range
		CP	IN1_DATA1,#0ADH
		JP	UGE,dec_range
init_fm_high:
		LD	IN1_DATA2,#09H
		LD	IN1_DATA1,#46H
		jp	mov_val_to_fm
am_least_range:;AM >=522KHZ
		CP	IN1_DATA1,#6CH
		JP	UGT,dec_range
		LD	IN1_DATA1,#0E6H
		;clr	IN1_DATA2
		JP	mov_val_to_am
dec_range:
		CP	IN1_DATA1,#00H
		JP	EQ,dec_high
		DEC	IN1_DATA1
		JP	mov_val
dec_high:
		DEC	IN1_DATA2
		LD	IN1_DATA1,#0FFH
		JP	mov_val
;*****************************************************
;********************next key search **********************
search_inc_key:
		CP	Current_Key,#IR_FF_KEY
		JP	NE,inc_auto_search
inc_fun:
		CLR_RADIO_AUTO_SEARCH_dec
		AUTO_SEARCH_INC_KEY_DOWN_IS_HIGH
		JP	Z,con_auto_inc_search
		CLR_RADIO_AUTO_SEARCH_inc
		clr	VAL_RADIO_INC_TIMES
con_auto_inc_search:
		INC	VAL_RADIO_INC_TIMES
		SET_AUTO_SEARCH_INC_KEY_DOWN
		RADIO_AUTO_SEARCH_inc_IS_HIGH
		JP	Z,inc_stat
		CP	VAL_RADIO_INC_TIMES,#33H
		JP	ULT,fail_ret
		SET_RADIO_AUTO_SEARCH_inc
		JP	inc_stat
;*****************************************************
inc_auto_search:
		CLR_AUTO_SEARCH_INC_KEY_DOWN
		RADIO_AUTO_SEARCH_inc_IS_HIGH
		JP	Z,inc_stat
		CP	VAL_RADIO_INC_TIMES,#01H
		JP	ULT,fail_ret
		CLR_RADIO_AUTO_SEARCH_dec
;*****************************************************
inc_stat:		
		CLR	VAL_RADIO_INC_TIMES
		CP	FUNCTION_STAT,#FUNCTION_Am
		JP	Z,am_most_range
fm_most_range:;FM <=108MHZ
		CP	IN1_DATA2,#09H
		JP	ULT,inc_range
		CP	IN1_DATA1,#45H
		JP	ULE,inc_range
init_fm_low:
		LD	IN1_DATA2,#07H
		LD	IN1_DATA1,#0ACH
		JP	mov_val_to_fm
am_most_range:;AM <=1620KHZ
		CP	IN1_DATA1,#0E6H
		JP	ULT,inc_range
		LD	IN1_DATA1,#6CH;(522k+450k)/9k
		;clr	IN1_DATA2
		jp	mov_val_to_am
inc_range:	
		CP	IN1_DATA1,#0FFH
		JP	EQ,inc_high
		inc	IN1_DATA1
		JP	mov_val
inc_high:
		CLR	IN1_DATA1
		INC	IN1_DATA2
mov_val:
		LD	ACC_RET_VAL,#01H
		CP	FUNCTION_STAT,#FUNCTION_Am
		JP	EQ,mov_val_to_am
mov_val_to_fm:
		LD	FM_RAM_L,IN1_DATA1
		LD	FM_RAM_H,IN1_DATA2
		RET	
mov_val_to_am:
		LD	AM_RAM_L,IN1_DATA1
		RET	
fail_ret:
		CLR	ACC_RET_VAL
		RET
.IF 0
BACK_FF_KEY	ENDP
.ENDIF
.IF 0
mem_key_par	proc
.ENDIF 
mem_key_par:
		CLR	ACC_RET_VAL
		KEY_VALID_IS_LOW
		JP	Z,mem_fail_ret
		CP	Current_Key,IR_MEM_KEY
		JP	NE,mem_fail_ret
		LD	ACC_RET_VAL,#01H
mem_fail_ret:	
		RET
.IF 0
mem_key_par	endp
.ENDIF



;******************************************************
.IF 0
Show_Am_Frequenc_Data	proc
.ENDIF
Show_Am_Frequenc_Data:
		LD	data0_L,IN1_DATA1
		LD	data4_L,#09H
		call	unbin_mul_16
		LD	data0_L,to0_L
		LD	data1_H,to1_H
		
		;-450k
		LD	data5_H,#01H
		LD	data4_L,#0C2H
		call	unbin_sub_16
		LD	data0_L,to0_L
		LD	data1_H,to1_H
		CALL	bintobcd_16

		;mov	a,VFD_PANEL_CON22
		;call	VFD_NOSHOW_POINT
		;mov	a,VFD_PANEL_CON21
		;call	VFD_NOSHOW_POINT
		
		;mov	a,STR_AM
		;call	show_string
		
		;mov	a,5
		;mov	VAL_VFD_ADDR,a
		;mov	a,to1_H
		;and	a,0FH
		;call	VFD_SHOW_CHAR

		;swap	to1_H
		;mov	a,0FH
		;andm	a,to1_H
		;mov	a,4
		;mov	VAL_VFD_ADDR,a
		;mov	a,CHAR_NULL
		;sz	to1_H
		;mov	a,to1_H
		;call	VFD_SHOW_CHAR
		
		;mov	a,6
		;mov	VFD_SHOW_DATA_ADDR,a
		;mov	a,to0_L
		;call	VFD_SHOW_DATA
		ret
.IF 0
Show_Am_Frequenc_Data	endp

Show_Fm_Frequenc_Data	proc
.ENDIF
Show_Fm_Frequenc_Data:
		
		LD	data1_H,IN1_DATA2
		LD	data0_L,IN1_DATA1
		LD	data4_L,#05H
		CLR	data5_H
		call	unbin_mul_16
		LD	data0_L,to0_L
		LD	data1_H,to1_H
		LD	data5_H,#04H
		LD	data4_L,#2EH
		call	unbin_sub_16
		LD	data0_L,to0_L
		LD	data1_H,to1_H
		CALL	bintobcd_16

		LD	ACC_SEN_VAL,#VFD_PANEL_CON22
		CALL	VFD_NOSHOW_POINT
		LD	ACC_SEN_VAL,#VFD_PANEL_CON21
		CALL	VFD_SHOW_POINT
		LD	ACC_SEN_VAL,#VFD_PANEL_CON21
		CALL	VFD_SHOW_POINT
;show_strfm:
		LD	ACC_SEN_VAL,#STR_FM
		CALL	VFD_SHOW_STRING

		
		
		
		LD	ACC_SEN_VAL,to2
		CP	to2,#01H
		JP	Z,show_fm_high
		LD	ACC_SEN_VAL,CHAR_NULL
show_fm_high:
		CALL	VFD_SHOW_CHAR
		LD	VFD_SHOW_DATA_ADDR,#04H
		LD	ACC_SEN_VAL,to1_H
		call	VFD_SHOW_DATA
		LD	VFD_SHOW_DATA_ADDR.#06H
		LD	ACC_SEN_VAL,to0_L
		CALL	VFD_SHOW_DATA
		ret
.IF 0
Show_Fm_Frequenc_Data	endp
.ENDIF



.IF 0
VFD_SHOW_TURN_CLOCK	PROC
.ENDIF
VFD_SHOW_TURN_CLOCK:
		;call	show_con22
		;mov	a,STR_time
		;call	show_string
		
		LD	ACC_SEN_VAL,hour_time
		call	bintobcd_8
		call	VFD_SHOW_DATA
		LD	VFD_SHOW_DATA_ADDR,#04H
		LD	ACC_SEN_VAL,hour_time
		CALL	bintobcd_8
		CALL	VFD_SHOW_DATA

		LD	VFD_SHOW_DATA_ADDR,#06H
		LD	ACC_SEN_VAL,minute_time
		CALL	bintobcd_8
		CALL	VFD_SHOW_DATA
		
		;snz	sel_time_minu
		;jmp	show_tuner_clock_minu
		;snz	FLASH_ICON
		;call	show_null_45
		;ret
show_tuner_clock_minu:
		;snz	FLASH_ICON
		;call	show_null_67
		ret
.IF 0
VFD_SHOW_TURN_CLOCK		ENDP
.ENDIF


.IF 0
VFD_SHOW_TURN_OFF_TIME		PROC
.ENDIF
VFD_SHOW_TURN_OFF_TIME:

		;call	show_con22
		;mov	a,STR_off
		;call	show_string

		LD	VFD_SHOW_DATA_ADDR,#04H
		LD	ACC_SEN_VAL,TUNER_OFF_TIME_HOUR
		CALL	bintobcd_8
		CALL	VFD_SHOW_DATA
		
		LD	VFD_SHOW_DATA_ADDR,#06H
		LD	ACC_SEN_VAL,TUNER_OFF_TIME_MINU
		CALL	bintobcd_8
		CALL	VFD_SHOW_DATA
		
		;snz	sel_time_minu
		;jmp	show_tuner_off_minu
		;snz	FLASH_ICON
		;call	show_null_45
		;ret
;show_tuner_off_minu:
		;snz	FLASH_ICON
		;call	show_null_67
		ret

.IF  0
VFD_SHOW_TURN_OFF_TIME	ENDP
.ENDIF

.IF 0
VFD_SHOW_TURN_ON_TIME	PROC
.ENDIF
VFD_SHOW_TURN_ON_TIME:
		;call	show_con22
		;mov	a,STR_on
		;call	show_string
		LD	VFD_SHOW_DATA_ADDR,#04H
		LD	ACC_SEN_VAL,TUNER_ON_TIME_HOUR
		CALL	bintobcd_8
		CALL	VFD_SHOW_DATA
		
		LD	VFD_SHOW_DATA_ADDR,#06H
		LD	ACC_SEN_VAL,TUNER_ON_TIME_MINU
		CALL	bintobcd_8
		CALL	VFD_SHOW_DATA
		
		;snz	sel_time_minu
		;jmp	show_tuner_off_minu
		;snz	FLASH_ICON
		;call	show_null_45
		;ret
show_tuner_on_minu:
		;snz	FLASH_ICON
		;call	show_null_67
		ret

.IF 0

⌨️ 快捷键说明

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