📄 radio.src
字号:
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 + -