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

📄 mp3_ctrolert

📁 lpc935/6下编写车载mp3控制面板源代码
💻
📖 第 1 页 / 共 4 页
字号:
		LCALL disp_flat
		LJMP  M_EOPTION
	M_3OPTION:
		CJNE  A,#03H,M_4OPTION
		LCALL disp_class
		LJMP  M_EOPTION
	M_4OPTION:
		CJNE  A,#04H,M_5OPTION
		LCALL disp_rock
		LJMP  M_EOPTION
	M_5OPTION:

	M_EOPTION:
		RET
MUSIC_OP:
	DB   0X68,0X79;;POP
	DB   0X69,0X78;FLAT
	DB   0X6A,0X7B;CLASS
	DB   0X6B,0X7A;ROCK
SETB_OP_MUSIC:
		MOV  	DPTR,#MUSIC_OPTION
		MOVX 	A,@DPTR
		CJNE  	A,#0H,SETM1OPTION
		MOV     DPTR,#SOUND_OP+7
		MOV     R0,#vol_ctr+7
		MOVX    A,@DPTR
		MOV     @R0,A
		INC 	DPTR
		INC 	R0
		MOVX    A,@DPTR
		MOV     @R0,A
		LJMP  SETME5OPTION
	SETM1OPTION:
		CJNE  A,#01H,SETM2OPTION
		LJMP  SETME5PTION
	SETM2OPTION:
		CJNE  A,#02H,SETM3OPTION
		LJMP  SETME5PTION
	SETM3OPTION:
		CJNE  A,#03H,SETM4OPTION
		LJMP  SETME5PTION
	SETM4OPTION:
		CJNE  A,#04H,SETME5OPTION
		LJMP  SETME5PTION
	SETME5PTION:
		DEC   A
		MOV   B,#2
		MUL   AB
		MOV   DPTR,#MUSIC_OP
		ADD   A,DPL
		MOV   DPL,A
		CLR   A
		ADDC  A,DPH
		MOV   DPH,A
		CLR   A
		MOVC  A,@A+DPTR
		MOV   R0,#vol_ctr+7
		MOV   @R0,A
		CLR   A
		INC   DPTR
		MOVC  A,@A+DPTR
		MOV   R0,#vol_ctr+8
		MOV   @R0,A
	SETME5OPTION:
	
		RET		
						
READ_MAP:    ;上电/初始化操作
		LCALL   RD_1MAP
		MOV    	DPTR,#00FDH
		MOVX   	A,@DPTR
		CJNE   	A,#0FDH,ERROR
		INC 	DPTR
		MOVX   	A,@DPTR
		CJNE   	A,#0FDH,ERROR
		INC 	DPTR
		MOVX   	A,@DPTR
		CJNE   	A,#0FDH,ERROR
		LJMP   	ALL_RIGNH
	ERROR:
		LCALL 	CLR_XRAM
		MOV     DPTR,#00FDH
		MOV     A,#0FDH
		MOVX 	@DPTR,A
		INC 	DPTR
		MOVX 	@DPTR,A
		INC 	DPTR
		MOVX    @DPTR,A
		LCALL   SETB_MAP
	ALL_RIGNH:
		ret
SETB_MAP:
		
		MOV  R0,#00H
		MOV  DPTR,#0000H
	WER_MAP:
		MOVX  A,@DPTR
		lcall write_1byte
		INC   R0
		INC   DPTR
		MOV   A,DPH
		CJNE  A,#01H,WER_MAP
		RET
;-----------------------------
;eeram
;-----------------------------
RD_ERAOM:
		CLR  EA
		lcall read_1bit
		SETB EA
		RET
read_1bit:
		MOV  DEECON,#00
		MOV  DEEADR,R0
		
	NAD_ERAM1:
		MOV  A,DEECON
		JB   ACC.7,NAD_ERAM2
		LJMP NAD_ERAM1
	NAD_ERAM2:
		MOV  A,DEEDAT
		ret
WD_EERAM:
		PUSH	00H
		CLR  EA
		lcall write_1byte
		SETB EA
		POP	00H
		RET
write_1byte:
		MOV  DEECON,#00
		MOV  DEEDAT,A
		MOV  DEEADR,R0
	WAD_ERAM1:
		MOV  A,DEECON
		JB   ACC.7,WAD_ERAM2
		LJMP WAD_ERAM1
	WAD_ERAM2:
		ret		
CLR_XRAM:
		MOV DPTR,#0000H	
	CLR_1XRAM:
		MOV 	A,#00H
		MOVX    @DPTR,A
		INC     DPTR
		MOV     A,DPH
		CJNE    A,#02H,CLR_1XRAM 
		LCALL   ORI_STATION;电台默认
		LCALL 	ORII_MODE;默认音量,模式设置
		LCALL   RADIO_SMAP;收音机设置默认设置
		RET
RADIO_SMAP:
		MOV   DPTR,#DAT_REDIO;收音机参数存储地址
		MOV   A,#0x29
		MOVX  @DPTR,A
		MOV   R0,A
		INC   DPTR
		MOV   A,#0x9D
		MOVX  @DPTR,A
		MOV   R1,A
		INC   DPTR
		MOV   A,#0x29;;21;41;61
		MOVX  @DPTR,A
		INC   DPTR
		MOV   A,#0x11
		MOVX  @DPTR,A
		INC   DPTR
		MOV   A,#0x40
		MOVX  @DPTR,A
		RET
ORII_MODE:;SOUND_OP: DB  0x88,0x1F,0x0c8,0x0e8,0x88,0x0a8,0x48,0x6A,0x7B
		MOV     DPTR,#SOUND_OP
		MOV     A,#88H
		MOVX    @DPTR,A
		INC     DPTR
		MOV     A,#1FH
		MOVX 	@DPTR,A
		INC 	DPTR
		MOV     A,#0CFH
		MOVX 	@DPTR,A
		INC 	DPTR
		MOV     A,#0EFH
		MOVX	@DPTR,A
		INC 	DPTR
		MOV     A,#08FH
		MOVX 	@DPTR,A
		INC 	DPTR
		MOV     A,#0AFH
		MOVX 	@DPTR,A
		INC 	DPTR
		MOV     A,#48H
		MOVX 	@DPTR,A
		INC 	DPTR
		MOV     A,#68H
		MOVX 	@DPTR,A
		INC 	DPTR
		MOV     A,#78H
		MOVX 	@DPTR,A
		RET		
ORI_STATION:
		PUSH	00H
		MOV     DPTR,#STATION_FRE;频率参数存储地址
		MOV     R0,#30
	DFG_MAP:	
		MOV     A,#32H;29H
		MOVX    @DPTR,A
		INC     DPTR
		MOV   	A,#3fH;9DH
		MOVX  	@DPTR,A
		INC 	DPTR
		DJNZ 	R0,DFG_MAP
		POP	00H
		RET
RD_1MAP:
		MOV     R0,#00H
		MOV     DPTR,#0000H
	SQS:	
		lcall   read_1bit
		MOVX    @DPTR,A
		INC     DPTR
		INC     R0
		MOV     A,DPH
		CJNE    A,#01H,SQS
		RET
WDT_OP:
		MOV  ACC,WDCON ;读取WDT控制寄存
		ORL  A,#0e0H
		SETB ACC.2 ;置位ACC.2准备
		MOV  WDL,#0FFH ;设置8位倒计时器
		MOV  WDCON,ACC ;启动WDT 
		MOV  WFEED1,#0A5H ;清零第一部分 
		MOV  WFEED2,#5AH ;清零第二部分
		RET
wtcg_reset:
		MOV ACC,WDCON ;读取WDT控制寄存
		ORL  A,#080H
		SETB ACC.2 ;置位ACC.2准备
		MOV WDL,#0FFH ;设置8位倒计时器
		MOV WDCON,ACC ;启动WDT 
		ret
CLR_WDT:
		CLR EA; 禁止中断 
		MOV WFEED1,#0A5H; 执行清零第一部分 
		MOV WFEED2,#05AH; 执行清零第二部分 
		SETB EA ;使
		RET
clr_wdt_nea:
		MOV WFEED1,#0A5H; 执行清零第一部分 
		MOV WFEED2,#05AH; 执行清零第二部分 
		ret
INI_CPU:
		mov P1M1,#02H
		mov P1M2,#00H
		mov P2M1,#00H
		mov P2M2,#00H
		mov P0M1,#44H
		mov P0M2,#00H
		MOV TMOD,#11H;定时器方式,16位
		MOV TAMOD,#00H
		MOV TCON,#05H
		MOV TH0,#15H;延时20MS
		MOV TL0,#0A0H
		SETB ET0;
		MOV  P0,#0FFH
		MOV  P1,#0AFH
		MOV  P2,#03DH
		MOV  SCON,#50H
		MOV  SSTAT,#40H
		MOV  BRGR0,#61H;				// setup BRG for 9600 baud @ 12MHz external Crystal
		MOV  BRGR1,#02H;
		MOV  BRGCON,#03H
		MOV    ADMODA,#0x01			;0000 0001, 选择转换工作模式:单次转换模式
		MOV    ADMODB,#0x40			;500Khz < ADC CLK < 3.3Mhz,,
		MOV    IP0,#10H
		MOV    IP0H,#10H
		
		SETB    ES
	        SETB    TR0
		SETB    REN
		RET
;------------------------
;中断服务区
;CPU 初始化
;-------------------------- 

SCRON:
		PUSH	00H
		PUSH	PSW
		PUSH	ACC
		jbc     TI,SEND_com
		CLR     RI
		MOV     A,SBUF
		JB    	COM_2BIT,RD1_com
		JBC   	COM_1BIT,EXIT_2COM
		CJNE  	A,#0F3H,exit_com
		MOV     CONNECTC,#30
		SETB    SCON_DINGSHIB
		MOV     S_COM_CU,#5
		SETB  	COM_1BIT
		LJMP  	exit_com
	EXIT_2COM:
		CJNE  	A,#0F3H,exit_com
		MOV     CONNECTC,#30
		SETB  	COM_2BIT
		MOV     S_COM_CU,#5
		MOV   	ADRESS,#MP3_RDATA  
		LJMP  	exit_com	
	RD1_com:
		MOV     CONNECTC,#30
		SETB    ACC.7
		MOV   	R0,ADRESS
		MOV  	@R0,A
		INC   	R0
		MOV   	ADRESS,R0
		MOV     S_COM_CU,#5
		CJNE  	R0,#MP3_RDATA+5,exit_com
		CLR     SCON_DINGSHIB
		MOV     S_COM_CU,#5
		SETB  	COM_3BIT
		CLR   	COM_2BIT	
		LJMP  	exit_com
	SEND_com:
		
	exit_com:	
		POP	ACC
		POP	PSW
		POP	00H
		reti		
INT_T0:
		PUSH	PSW
		PUSH	ACC
		PUSH	00H
		PUSH	01H
		PUSH	DPH
		PUSH	DPL
		PUSH	B
		MOV     TH0,#15H
		MOV     TL0,#0A0H
		LCALL   OWNER_J;私位子判断
		LCALL   KEY_DEAL
;----------------------------------------------		
		JNB      P_SELCMB,NEXT_T4
		MOV      DISP_TIMERC,#10
		DJNZ     P_SELCB,NEXT_T4
		CLR      P_SELCMB
		MOV      KEY_COUNT,#00
	NEXT_T4:
		JNB      SELCMD_DONE,NEXT_T5
		MOV      SOUND_SC,#20
		DJNZ     SELCMC_DONE,NEXT_T5
		MOV      SELEC_C,#00
		SETB     SOUND_SB
		MOV      SOUND_SC,#1
		JNB      MUSIC_SET_AREA,NEXT_T5
		CLR      MUSIC_SET_AREA
		LCALL    SAV_MUSIC_OP
;---------------------------------------------
	NEXT_T5:
		JNB     SOUND_SB,NEXT_T0
		MOV     DISP_TIMERC,#4
		DJNZ    SOUND_SC,NEXT_T0
		LCALL   COVERY_DISP
		LCALL   CLR_TESET
		LCALL   CLR_CARRY_BIT
		CLR     SOUND_SB
	NEXT_T0:
		JNB      DISP_VMODE,NEXT_T1
		MOV      DISP_TIMERC,#10
		DJNZ     DISP_VMODC,NEXT_T1
		CLR      DISP_VMODE
	NEXT_T1:
		JNB      P_MB,NEXT_T2
		DJNZ     P_CMB,NEXT_T2
		CLR      P_MB
		MOV      MKEY_COUNT,#00
		SETB     M_KEY_BAL
		
	NEXT_T2:
		JNB      P_PMB,NEXT_T3
		MOV      DISP_TIMERC,#10
		DJNZ     P_PCMB,NEXT_T3
		CLR      P_PMB
		MOV      HAND_COUNT,#00
		SETB     HAND_BAKL 
	NEXT_T3:
		JNB     SCON_DINGSHIB,NEXT_T6
		DJNZ    S_COM_CU,NEXT_T6
		CLR     SCON_DINGSHIB
		MOV     S_COM_CU,#5
		CLR  	COM_3BIT
		CLR   	COM_2BIT
		CLR     COM_1BIT
	NEXT_T6:
		JNB      CONNECT_1BITS,NEXT_T7
		DJNZ     CONNECTC,NEXT_T7
		MOV      CONNECTC,#10
		CLR      CONNECT_1BITS  
			
	NEXT_T7:
		JNB    DISPB_TEMP,NEXT_T8
		DJNZ   DISPC_TEMP,NEXT_T8
		MOV    DISPC_TEMP,#10
		JBC    DISPD_TEMP,NEXT_T71
		SETB   DISPD_TEMP
		LCALL  CLR_AXIO
		LJMP   NEXT_T8
	  NEXT_T71:
		LCALL  COVERY_LSD
	NEXT_T8:
		DJNZ 	DISP_TIMERC,TIMER_DISP
		MOV  	DISP_TIMERC,#4
		lcall   clr_wdt_nea
		SETB 	DISP_TIMERD 
	TIMER_DISP:
		LCALL   LJMP_MP3J
		POP	B
		POP	DPL
		POP	DPH
		POP	01H
		POP	00H
		POP	ACC
		POP	PSW
		RETI
;----------------------------
;KEY_DO_DEAL:;
;----------------------------
OWNER_J:;私位子判断计数
		CLR     C
		JNB     P0.2,SADFSF
		SETB    C
	SADFSF:
		MOV     A,swz_pt
		RLC     A
		MOV     swz_pt,A
		MOV     R0,#08H
		MOV     R1,#00H
	UNTT_0:
		RLC   	A
		JNC   	UNTT_1
		INC   	R1
	UNTT_1:
		DJNZ  	R0,UNTT_0
		CJNE    R1,#05H,DSD_76
	DSD_76:
		JNC     SDSD_GOON1	
		lcall   wtcg_reset
	SDSD_GOON1:
		RET
KEY_DEAL:
		LCAll   ADC_SETC0
		LCAll 	ADC_SETC1
		MOV     R1,TEMP_AD0
		MOV     A,#CHANEL1
		LCALL   COMPARE_DAT
		CJNE    A,#0BBH,NEXT_CHANEL0
		LCALL   JUDG1_KEYL
		LJMP    NEXT_CHANEL2
	NEXT_CHANEL0:
		LCALL   JUDG1_KEYH
	NEXT_CHANEL:
		MOV     R1,TEMP_AD1
		MOV     A,#CHANEL2
		LCALL   COMPARE_DAT
		CJNE    A,#0BBH,NEXT_CHANEL1
		LCALL   JUDG2_KEYL
		LJMP    NEXT_CHANEL2	
	NEXT_CHANEL1:
		LCALL   JUDG2_KEYH
	NEXT_CHANEL2:
		RET

JUDG2_KEYH:
		JNB 	KEY_2D,CH2H_KEY3
		JNB  	KEY_2UPB,CH2H_KEY0
		DJNZ    KEY_2UPC,CH2H_KEY3
		LCALL   RESET_KEY
		MOV     A,POWER_TEMP
		MOV     POWER_TEMP,#00
		CJNE    A,#PW,CH2H_KEY3;PW
		MOV     A,POW_CDD
		MOV     POW_CDD,#00
		JNB     POW_RESET,CH2H_2K
		CJNE    A,#1,CH2H_2K1
	CH2H_2K1:
		JC      CH2H_KEY3
		anl     p1,#0afh
		lcall   wtcg_reset
		LJMP    CH2H_KEY3
	CH2H_2K:
		SETB    POW_RST
		LJMP    CH2H_KEY3
	CH2H_KEY0:
		SETB    KEY_2UPB
	CH2H_KEY3:
		RET

JUDG2_KEYL:
		CLR     KEY_2UPB
		MOV     KEY_2UPC,#6
		JB 	KEY_2D,CH2_KEY2
		JB 	KEY_2C,CH2_KEY1
		JNB  	KEY_2B,CH2_KEY0
		LCALL   RESET_KEY
		SETB   	KEY_2C
		LJMP    CH2_KEY3
	CH2_KEY0:
		LCALL   RESET_KEY
		SETB    KEY_2B
		LJMP    CH2_KEY3
	CH2_KEY1:
		MOV     TEMP2_KEYD,TEMP_AD1
		LCALL   RESET_KEY
		MOV     KEY_2CC,#2
		SETB  	KEY_2D
		LJMP   	CH2_KEY3
	CH2_KEY2:
		DJNZ    KEY_2CC,CH2_KEY3
		MOV     KEY_2CC,#13
		MOV     TEMP2_KEYD,TEMP_AD1
		LCALL   JUDG_2YDD
	CH2_KEY3:
		RET
JUDG_2YDD:
		MOV    POWER_TEMP,#00H
		MOV    R1,TEMP2_KEYD
		MOV    A,#PW
		LCALL  COMPARE_DAT
		CJNE   A,#0AAH,G_2YDD1
		MOV    POWER_TEMP,#PW
		INC    POW_CDD
		MOV    A,POW_CDD
		CJNE   A,#2,PPWOR
		MOV    POW_CDD,#1
		JNB    POW_RESET,PPWOR
		anl    p1,#0afh
		LJMP   EXIT_G2YD
	PPWOR:
		JB     POW_RESET,EXIT_GXYD
		orl    p1,#5fh
	EXIT_GXYD:
		LJMP   EXIT_G2YD
	G_2YDD1:
		MOV    A,#AF_MO
		LCALL  COMPARE_DAT
		CJNE   A,#0AAH,G_2YDD2
		;LCALL CLR_CARRY_BIT
		SETB   P_AF_MO
		LCALL  CLR_SELECTS_BIT
		LJMP  EXIT_G2YD	
	G_2YDD2:
		
		MOV   A,#MODE
		LCALL COMPARE_DAT
		CJNE  A,#0AAH,G_2YDD3
		;LCALL CLR_CARRY_BIT
		SETB  P_MODE
		LCALL CLR_SELECTS_BIT
		LJMP  EXIT_G2YD			
	G_2YDD3:
		MOV   A,#MUTE
		LCALL COMPARE_DAT
		CJNE  A,#0AAH,G_2YDD4
		;LCALL CLR_CARRY_BIT
		LCALL MUTE_PRESS
		LCALL CLR_SELECTS_BIT
		LJMP  EXIT_G2YD	
	G_2YDD4:
		MOV A,#SEL
		LCALL COMPARE_DAT
		CJNE  A,#0AAH,G_2YDD5
		JB    SELECT_CTR_SGN,G_2YDD5
		INC   KEY_COUNT
		mov   SELCMC_DONE,#150
		SETB  P_SEL
		SETB  P_SELCMB	
		MOV   P_SELCB,#15
		mov   a,KEY_COUNT
		CJNE  A,#0EH,G_2YDD5
		SETB  SELECT_CTR_SGN
		LJMP  EXIT_G2YD	
	G_2YDD5:
	
		MOV A,#V_UP
		LCALL COMPARE_DAT
		CJNE  A,#0AAH,G_2YDD6
		SETB  P_V_UP
		LJMP  EXIT_G2YD	
	G_2YDD6:
		
		MOV A,#V_DN
		LCALL COMPARE_DAT
		CJNE  A,#0AAH,G_2YDD7
		SETB  P_V_DN
		LJMP  EXIT_G2YD			
	G_2YDD7:
		
		MOV A,#CLK
		LCALL COMPARE_DAT
		CJNE  A,#0AAH,G_2YDDD
		;LCALL CLR_CARRY_BIT
		SETB  P_CLK
		LCALL CLR_SELECTS_BIT
		LJMP  EXIT_G2YD	
	EXIT_G2YD:
		
		LCALL CLR_DISPCOUNT
	G_2YDDD:
	
		RET
SELECT_CTR_DONE:
		JNB   SELECT_CTR_SGN,EXIT_YCTL
	        mov   KEY_COUNT,#00
		clr   P_SELCMB
		SETB  MUSIC_SET_AREA
		lcall SELECT_CTR
		CLR   SELECT_CTR_SGN 
	EXIT_YCTL:
		RET
JUDG1_KEYH:
		JNB     KEY_1D,CH1H_KEY3
		JNB 	KEY_1UPB,CH1H_KEYY
		DJNZ    KEY_2UPC,CH1H_KEY3
		LCALL   RESET_KEY
		LJMP    CH1H_KEY3
	CH1H_KEYY:
		SETB    KEY_1UPB
		LJMP    CH1H_KEY3
	CH1H_KEY3:
		RET
JUDG1_KEYL:
		CLR     KEY_1UPB
		MOV     KEY_1UPC,#6
		JB      KEY_1D,CH1_KEY2
		JB 	KEY_1C,CH1_KEY1
		JNB  	KEY_1B,CH1_KEY0
		LCALL   RESET_KEY
		SETB   	KEY_1C
		LJMP    CH1_KEY3
	CH1_KEY0:
		LCALL   RESET_KEY
		SETB    KEY_1B
		LJMP    CH1_KEY3
	CH1_KEY1:
		MOV     TEMP1_KEYD,TEMP_AD0
		LCALL   RESET_KEY
		MOV     KEY_1CC,#2
		SETB  	KEY_1D
		LJMP   	CH1_KEY3
	CH1_KEY2:
		DJNZ    TIME_COUNT,CH1_KEY20
		MOV     TIME_COUNT,#50
		INC     TIME_COMP
	CH1_KEY20:
		DJNZ    KEY_1CC,CH1_KEY3
		MOV     KEY_1CC,#13
		MOV     TEMP1_KEYD,TEMP_AD0
		LCALL   JUDG_1YDD
	CH1_KEY3:
		RET
RESET_KEY:
		MOV KEY_1CC,#15
		MOV KEY_2CC,#15
		MOV KEY_2UPC,#6
		MOV KEY_1UPC,#6
		MOV  TIME_COUNT,#50
		MOV  TIME_COMP,#00H
		MOV  2FH,#00
		CLR  SAME_KEY
		RET
JUDG_1YDD:
		
		MOV   R1,TEMP1_KEYD
		MOV   A,#M1
		LCALL COMPARE_DAT
		CJNE  A,#0AAH,G_1YDD1
		MOV   MKEY_KJU,#00
		LJMP  PUT_DF		
	G_1YDD1:
		
		MOV   A,#M2
		LCALL COMPARE_DAT
		CJNE  A,#0AAH,G_1YDD2
		MOV   MKEY_KJU,#01
		LJMP  PUT_DF
	G_1YDD2:
		
		MOV A,#M3
		LCALL COMPARE_DAT
		CJNE  A,#0AAH,G_1YDD3
		MOV   MKEY_KJU,#02
		LJMP  PUT_DF		
	G_1YDD3:
		MOV A,#M4
		LCALL COMPARE_DAT
		CJNE  A,#0AAH,G_1YDD4
		MOV   MKEY_KJU,#03
		LJMP  PUT_DF
	G_1YDD4:
		MOV A,#M5
		LCALL COMPARE_DAT
		CJNE  A,#0AAH,G_1YDD5
		MOV   MKEY_KJU,#04
		LJMP  PUT_DF
	G_1YDD5:
		MOV A,#M6
		LCALL COMPARE_DAT
		CJNE  A,#0AAH,G_1YDD6
		MOV   MKEY_KJU,#05
	PUT_DF:
		LCALL   CLR_WDT
		JB      SAV_MKEY_SIGN,G_1YDD6
		SETB    P_MB
		MOV     P_CMB,#18
		MOV     A,MKEY_KJU_BAK
		CJNE    A,MKEY_KJU,PUT_1DF
		INC     MKEY_COUNT
		MOV     A,MKEY_COUNT
		CJNE    A,#0EH,G_1YDD6
		CLR     P_MB
		MOV     MKEY_COUNT,#00
		SETB    SAV_MKEY_SIGN
		LJMP 	EXIT_G1YD
	PUT_1DF:
		MOV     MKEY_KJU_BAK,MKEY_KJU
		MOV     MKEY_COUNT,#00
	 	LJMP 	EXIT_G1YD
	G_1YDD6:
		MOV A,#UP
		LCALL COMPARE_DAT
		CJNE  A,#0AAH,G_1YDD7
		MOV   HAND_KEY,#5
		LJMP  G_1YDD7B		
	G_1YDD7:
		MOV A,#DN
		LCALL COMPARE_DAT
		CJNE  A,#0AAH,G_1YDD8
		MOV   HAND_KEY,#6
	G_1YDD7B:
		JB    AUTO_SRHED,G_1YDD8
		SETB  P_PMB
		MOV   P_PCMB,#15
		MOV   A,HAND_KEY
		CJNE  A,HAND_KEY_BAK,G_1YDD7C
		JB    MP3_MODE,G_1YDD7C
		INC   HAND_COUNT
		MOV   A,HAND_COUNT
		CJNE  A,#03H,G_1YDD8
		MOV   HAND_COUNT,#00
		mov   HAND_KEY_BAK,#00
		CLR   P_PMB
		SETB  AUTO_SRHED
		LJMP  EXIT_G1YD
	G_1YDD7C:
		MOV   HAND_KEY_BAK,HAND_KEY
		MOV   HAND_COUNT,#00
		LJMP  EXIT_G1YD	
	G_1YDD8:
		MOV A,#BAND
		LCALL COMPARE_DAT
		CJNE  A,#0AAH,G_1YDD9
		SETB  P_BAND
		LJMP  EXIT_G1YD		
	G_1YDD9:
		MOV A, #A_P
		LCALL  COMPARE_DAT
		CJNE   A,#0AAH,G_1YDDA
		SETB   AUTO_SEACHJ
		LJMP   EXIT_G1YD	
	G_1YDDA:
		MOV A,#SCAN
		LCALL COMPARE_DAT
		CJNE  A,#0AAH,G_1YDDD
		SETB  P_SCAN
		LJMP  EXIT_G1YD				
	EXIT_G1YD:
		LCALL CLR_DISPCOUNT
		LCALL CLR_SELECTS_BIT
	G_1YDDD:	
		RET
SEARCH_START:
		JNB    AUTO_SEACHJ,YUI_AUTO
		LCALL  CLR_CARRY_BIT
		JB     MP3_MODE,YUI_AUTO
		LCALL  CLR_FLASH;打开闪烁;
		SETB   DISPB_TEMP
		SETB   SEACH_BEGIN;开始搜索
		lcall  setb_lower
		MOV    STATION_COUNT,#30
		MOV    STATION_RV,#0
		MOV    DPTR,#STATION_FRE
		MOV    STA_DPH,DPH
		MOV    STA_DPL,DPL
	YUI_AUTO:
		RET
setb_higher:
		MOV     R1,#W_DWord
		MOV     @R1,#33H
		INC     R1
		MOV     @R1,#63H
		ret
setb_lower:
		MOV     R0,#W_DWord

⌨️ 快捷键说明

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