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

📄 mp3_ctrolert

📁 lpc935/6下编写车载mp3控制面板源代码
💻
📖 第 1 页 / 共 4 页
字号:
		MOV     @R0,#29H
		INC     R0
		MOV     @R0,#9DH
		ret
COMPARE_DAT:
		MOV      R0,A
		ADD      A,#ABS_H
		CJNE     A,01H,COMP_BIGER
	COMP_BIGER:
		JNC      COMP_LEST
		LJMP     COPM_OVERAL
	COMP_LEST:
		MOV      A,R0
		SUBB     A,#ABS_H
		CJNE     A,01H,COMP_COUNT
		LJMP     COMP_RIGHT
	COMP_COUNT:
		JC       COMP_RIGHT
		LJMP     COPM_OVERAL
	COMP_RIGHT:
		MOV      A,#0AAH
		LJMP     EXIT_COMP	
	COPM_OVERAL:
		MOV      A,#0BBH	
	EXIT_COMP:
		RET
;-----------------------------
;ADC转换处理区
;-----------------------------

ADC_SETC0:
	MOV 	A,#80H
	ORL 	P1M1,A
	MOV 	A,#7FH
	ANL 	P1M2,A
	MOV	ADINS,#0x01			;0000 0001, 选择channe0
	MOV     R0,#5
	MOV	ADCON0,#0x05			;选择转换触发模式;并立即启动
	LCALL   DELAY_X
	MOV	A,AD0DAT0
	MOV     TEMP_AD0,A
	LCALL   CLR_ADC		
	RET
ADC_SETC1:
	MOV A,#01H
	ORL P0M1,A
	MOV A,#0FEH
	ANL P0M2,A
	MOV	ADINS,#0x02			;0000 0002, 选择channel
	MOV     R0,#5
	MOV	ADCON0,#0x05			;选择转换触发模式;并立即启动
	LCALL DELAY_X
	MOV	A,AD0DAT1
	MOV     TEMP_AD1,A
	LCALL   CLR_ADC		
	RET
ADC_SETC2:
	CLR    EA
	MOV    A,#03H
	ORL    P2M1,A
	MOV     A,#0FCH
	ANL     P2M2,A
	MOV	ADINS,#0x04			;0000 0004, 选择channe2
	MOV     R0,#5
	MOV	ADCON0,#0x05			;选择转换触发模式;并立即启动
	LCALL   DELAY_X
	MOV	A,AD0DAT2
	MOV     TEMP_AD2,A
	LCALL   CLR_ADC	
	RET
;---------------------------------------------		
;显示程序区
;---------------------------------------------

SET_ADRESS:
		MOV DPTR,#display_numb
		LCALL SDF_SUBW
		RET
SETB_SM_NUB:
		MOV DPTR, #SMAL_NUM
		LCALL SDF_SUBW
		RET
SETB_LLT:		
		MOV DPTR, #LL_RVTAB
		LCALL SDF_SUBW
		RET
SDF_SUBW:
		LCALL GET_DATA;通过偏移查表
		LCALL SET_DISPL;
		RET

send_display:
		PUSH	00H
		PUSH	01H
		PUSH	03H
		LCALL   CLR_WDT
		CLR     EA
		clr 	LCD_STB
		NOP
		CLR     LCD_SCK
		MOV  	R1,DISP_ADRESS
		MOV 	03H,@R1
		INC     R1
		LCALL 	bit8_Wdata
		CLR    LCD_SCK
		MOV R0,#02
		LCALL  DELAY_X
		SETB   LCD_SCK	
		MOV  	R0,#0BH
	EXERTN_1:
		MOV  	03H,@R1
		INC 	R1
		LCALL 	bit5_Wdata
		DJNZ 	R0,EXERTN_1  
		setb    LCD_STB
		NOP
		SETB    LCD_SCK
		NOP
		SETB    LCD_DATA
		SETB    EA
		POP	03H
		POP	01H
		POP	00H
		RET		
ORI_LCD:
		SETB 	 LCD_STB
		SETB    LCD_SCK
		SETB    LCD_DATA
		MOV     R0,#02
		LCALL   DELAY_X
		clr 	LCD_STB
		LCALL   DELAY
		CLR     LCD_SCK
		MOV 	R3,#Set_disp
		LCALL 	bit8_Wdata
		setb    LCD_STB
		SETB    LCD_SCK
		SETB    LCD_DATA
		RET
	
bit8_Wdata:
		PUSH	00H
		PUSH	01H
		PUSH	02H
		MOV     R2,#08H
	SEND_1Q:
		CLR     C
		MOV     A,R3
		RLC     A
		MOV     R3,A
		JC      SET_HIGH
		CLR  	LCD_DATA
		LJMP    SETB_CLK
	SET_HIGH:
		SETB   	LCD_DATA			
		LJMP SETB_CLK
	SETB_CLK:
		MOV     R0,#2
		LCALL   DELAY_X
		CLR     LCD_SCK
		MOV     R0,#2
		LCALL   DELAY_X
		SETB    LCD_SCK	
		DJNZ    R2,SEND_1Q
		POP	02H
		POP	01H
		POP	00H
		RET		
bit5_Wdata:
		PUSH	00H
		PUSH	01H
		PUSH	02H
		CLR     C
		MOV     A,R3
		RLC     A
		RLC     A
		RLC     A
		MOV     R3,A
		MOV     R2,#05H
	SEND_2Q:
		MOV R0,#02
		LCALL  DELAY_X
		MOV     A,R3
		RLC     A
		MOV     R3,A
		JC      SET_1HIGH
		CLR  	LCD_DATA
		LJMP SETB_1CLK
	SET_1HIGH:
		SETB   	LCD_DATA			
		LJMP SETB_1CLK
	SETB_1CLK:
		CLR    LCD_SCK
		MOV R0,#02
		LCALL  DELAY_X
		SETB   LCD_SCK	
		DJNZ   R2,SEND_2Q
		POP	02H
		POP	01H
		POP	00H
		RET
DELAY:
		PUSH	00H
		MOV   R0,#2H
	DELAY_1:
		DJNZ    R0,DELAY_1
		POP	00H
		RET

SET_DISPL:
		PUSH	01H
		CLR  C
		MOV  A,#0CH
		SUBB A,DISP_COLUM
		ADD  A,#COMM_L1;COM1 BUFFER ADRESS
		MOV  R1,A
		MOV  A,@R1
		ORL  A,DISP_COM1;
		MOV  @R1,A
		CLR  C
		MOV  A,#0CH
		SUBB A,DISP_COLUM
		ADD  A,#COMM_L2;COM2 BUFFER ADRESS
		MOV  R1,A
		MOV  A,@R1
		ORL  A,DISP_COM2;
		MOV  @R1,A
		CLR  C
		MOV  A,#0CH
		SUBB A,DISP_COLUM
		ADD  A,#COMM_L3;COM3 BUFFER ADRESS
		MOV  R1,A
		MOV  A,@R1
		ORL  A,DISP_COM3
		MOV  @R1,A
		POP  01H
		RET

	
GET_DATA:
	
		
		MOV B,#3
		MOV A,CHAR_ADR
		MUL AB
		ADD A,DPL
		MOV DPL,A
		MOV A,#00
		ADDC A,DPH
		MOV  DPH,A
		CLR  A
		MOVC A,@A+DPTR
		ANL  A,#1FH
		MOV DISP_COM1,A
		MOV A,#1
		MOVC A,@A+DPTR
		ANL  A,#1FH
		MOV DISP_COM2,A
		MOV A,#2
		MOVC A,@A+DPTR
		ANL  A,#1FH
		MOV DISP_COM3,A
	
		RET	

		
	
		
	
CLR_SREEN:
		
		PUSH	00H
		PUSH	01H
	
		MOV R0,#24H
		MOV  R1,#COMM_L1
	        LCALL G_FRMTAB
	        MOV R1,#COMM_L1
	        MOV @R1,#84H
	        MOV R1,#COMM_L2
	        MOV @R1,#8CH
	        MOV R1,#COMM_L3
	        MOV @R1,#94H
		POP	01H
		POP	00H
		RET	
G_FRMTAB:		
	MOV_TAB:
		CLR  A
		MOV  @R1,A
		INC  R1
		DJNZ R0,MOV_TAB
		RET



DFH_OP:;声控地址
		MOV  SEND_ADRESS,#vol_ctr
		MOV  SEND_LENGTH,#09H
		MOV  R0,SEND_ADRESS
		MOV  A,@R0
		INC  SEND_ADRESS
		RET




CLR_R:
		MOV     R1,#COMM_L1+2
		MOV     A,@R1
		ANL     A,#0E7H
		MOV     @R1,A
		MOV     R1,#COMM_L2+2
		MOV     A,@R1
		ANL     A,#0E7H
		MOV     @R1,A
		MOV     R1,#COMM_L3+2
		MOV     A,@R1
		ANL     A,#0E3H
		MOV     @R1,A
		RET
CLR_AXIO:;DB   0x73,0xA3,0xE7;//" ";清除小字符
		MOV R1,#COMM_L1+2
		MOV A,@R1
		ANL A,#39H
		MOV @R1,A
		MOV R1,#COMM_L2+2
		MOV A,@R1
		ANL A,#58H
		MOV @R1,A
		MOV R1,#COMM_L3+2
		MOV A,@R1
		ANL A,#9CH
		MOV @R1,A
		LCALL DISP_LCD
		RET
COVERY_LSD:;恢复小字符
		MOV    A,DISP_TEMPS
		MOV    CHAR_ADR,A;字符代码   .
		MOV    DISP_COLUM,#0AH;字符列
		LCALL  SETB_SM_NUB
		LCALL  DISP_LCD
		RET
CLR_ADC:
		MOV	A,ADCON0
		ANL	A,#0xF7	
		MOV	ADCON0,A
		RET
CLR_DISPCOUNT:
		LCALL   CLR_DISPT
		MOV     SELCMC_DONE,#150
		MOV     SOUND_SC,#150
		RET
CLR_DISPT:
		CLR      DISP_TIMERD 
		MOV      DISP_TIMERC,#4
		RET	
CLR_TESET:
		CLR  SETB_FADRF	
		CLR  SETB_FADLF	
		CLR  SETB_BALRR	
		CLR  SETB_BALLR	
		CLR  VOL_SETB  
		CLR  BASS_SETB  
		CLR  TRE_SETB
		CLR   SELCMD_DONE
		MOV   SELCMC_DONE,#150
		RET
CLR_SELECTS_BIT:
		LCALL    CLR_TESET
		CLR      MUSIC_SET_AREA
		CLR      SELCMD_DONE
		RET		

;R3,R2,R1
MULTL1:
		MOV  A,R1
		MOV  01H,R3
		MOV  R3,A
		MOV  R4,#00H
		MOV  R5,#00H
		MOV  R6,#00H
		MOV  A,R1  
		MOV  B,R0
		MUL  AB
		MOV  R1,A
		MOV  D_TEMP1,B
		MOV  A,R2
		MOV  B,R0
		MUL  AB
		ADD  A,D_TEMP1
		MOV  R2,A
		CLR   A
		ADDC  A,B
		MOV   R5,A
		CLR   A	
		ADDC  A,R6
		MOV   R6,A
		
		MOV  A,R3
		MOV  B,R0
		MUL  AB
		ADD  A,R5
		MOV  R3,A
		MOV  A,B
		ADDC A,R6
		MOV  R4,A
		RET
;双精度无符号数乘法子程序MUL1
;功能:两个双精度无符号数相乘,乘积为32位
;入口:(R7R6)=被乘数
;(R5R4)=乘数
;出口:(R0)乘积的高位字节地址指针
;工作寄存器:(R3R2)=部分积
;(R1)=进位位暂存单元
MUL2:

	MOV	A,R6
	MOV	B,R4
	MUL	AB
	MOV	@R0,A
	MOV	R3,B
	MOV 	A,R4
	MOV	B,R7
	MUL	AB
	ADD	A,R3
	MOV	R3,A
	MOV	A,B
	ADDC	A,#00H
	MOV 	R2,A
	MOV	A,R6
	MOV	B,R5
	MUL	AB
	ADD	A,R3
	INC 	R0
	MOV	@R0,A
	MOV 	A,R2
	ADDC	A,B
	MOV	R2,A
	MOV 	R1,#00H
	JNC	LA_P1
	INC 	R1
LA_P1:
	MOV	A,R7
	MOV	B,R5
	MUL	AB
	ADD	A,R2
	INC 	R0
	MOV	@R0,A
	MOV	A,B
	ADDC	A,R1
	INC 	R0
	MOV 	@R0,A
	RET


;四字节位数除以两字节位数
;入口被除数 低位--高位(R7R6R5R4)
;除数:	高位DIV_H,DIV_M,低位DIV_L,
;运算缓存      D_TEMP1,D_TEMP2
;余数  	低到高 R3 ,R2,R1
;商:	低到高 R7R6R5R4
DIVD4:
		MOV R0,#20H
		MOV R1,#00H
		MOV R2,#00H
		MOV R3,#00H
	DIV_7:
		CLR  C
		LCALL	FORTH_CYC7;被除数连同部分余数左一位
		MOV  	A,R3
		SUBB	A,DIV_L
		MOV	D_TEMP2,A
		MOV  	A,R2
		SUBB	A,DIV_M
		MOV	D_TEMP1,A
		MOV  	A,R1
		SUBB	A,DIV_H
		JC 	NEXT72
		INC 	R7;够减,商加一
		MOV	R1,A
		MOV	R2,D_TEMP1
		MOV	R3,D_TEMP2
	NEXT72:
		DJNZ	R0,DIV_7;除完否
		RET

FORTH_CYC7:;7字节左循环
		MOV A,R7
		RLC  A
		MOV R7,A
		MOV A,R6
		RLC  A
		MOV R6,A
		MOV A,R5
		RLC  A
		MOV R5,A
		MOV A,R4
		RLC  A
		MOV R4,A
		
		MOV A,R3
		RLC  A
		MOV R3,A
		MOV A,R2
		RLC  A
		MOV R2,A
		MOV A,R1
		RLC  A
		MOV R1,A
		RET



FIVE_ADC:
		PUSH	01H
		MOV    R1,#3AH
		
		MOV    00,@R1
		CJNE   R0,#05,EXIT_MULD
	EXIT_MULD:
		CLR    A
		JC    EXIT_1MULD
		MOV    A,#01
	EXIT_1MULD:
		MOV    R0,#39H
		MOV    R2,#04H
		CLR    C
		LCALL  BCD4_aDD
		POP	01H
		RET
DIV_4FGH:
		PUSH	07H
		PUSH	06H
		PUSH	05H
		PUSH	04H
		PUSH	03H
		PUSH	02H
		PUSH 	01H
		PUSH	00H
		MOV   R1,#00
		MOV   R2,#00
		MOV   R3,#00
		MOV   R4,#00H
		MOV   R5,#20H;8192
		MOV   R0,#36H
		LCALL MUL2

		MOV   R0,#36H
		MOV   A,#0E8H;225000
		ADD    A,@R0
		MOV    @R0,A
		INC    R0
		MOV    A,#6EH
		ADDC   A,@R0
		MOV    @R0,A
		INC    R0
		MOV    A,#03H
		ADDC   A,@R0
		MOV    @R0,A
		INC    R0
		MOV    A,#00H
		ADDC   A,@R0
		MOV    @R0,A
		MOV    R0,#36H
		MOV    07H,@R0
		INC R0
		MOV    06H,@R0
		INC R0
		MOV    05H,@R0
		INC R0
		MOV    04H,@R0
		MOV   DIV_H,#0FH
		MOV   DIV_M,#42H
		MOV   DIV_L,#40H
		LCALL DIVD4
		MOV   D_INT,R7
		
		NOP
		MOV    R0,#64H 
		LCALL  MULTL1
		MOV    07H,R1
		INC R0
		MOV    06H,R2
		INC R0
		MOV    05H,R3
		INC R0
		MOV    04H,R4
		MOV   DIV_H,#0FH
		MOV   DIV_M,#42H
		MOV   DIV_L,#40H
		LCALL DIVD4
		MOV   D_DIV,R7
		MOV    R0,#36H
		MOV    A,D_INT
		MOV    B,#100
		DIV    AB
		MOV    @R0,A
		INC    R0
		MOV    A,B
		MOV    B,#10
		DIV    AB
		MOV    @R0,A
		INC    R0
		XCH    A,B
		MOV    @R0,A
		MOV    A,D_DIV
		MOV    B,#10
		INC    R0
		DIV    AB
		MOV    @R0,A
		XCH    A,B
		INC    R0
		MOV    @R0,A
		POP	00H
		POP	01H
		POP	02H
		POP	03H
		POP	04H
		POP	05H
		POP	06H
		POP	07H
		RET		
BCD4_aDD:
	CC_0X:
		ADD    A,@R0
		DA     A
		MOV    R1,A
		ANL    A,#0FH
		MOV    @R0,A
		CLR    A
		ANL    01H,#0F0H
		CJNE   R1,#00H,CC_1X
		MOV    A,#00H
		LJMP   CC_2X
	CC_1X:
		MOV    A,#1H
	CC_2X:
		DEC    R0
		DJNZ   R2,CC_0X
		
		RET
display_numb:
	DB   0x2a,0x50,0x95;//"0"0
	DB   0x20,0x50,0x90;//"1"1
	DB   0x2a,0x4a,0x94;//"2"2
	DB   0x28,0x5a,0x94;//"3"3
	DB   0x20,0x9a,0x91;//"4"4
	DB   0x28,0x9a,0x85;//"5"5
	DB   0x2a,0x5a,0x85;//"6"6
	DB   0x20,0x50,0x94;//"7"7
	DB   0x2a,0x9a,0x95;//"8"8
	DB   0x28,0x9a,0x95;//"9"9
	DB   0x22,0x5a,0x95;//"A"10
	DB   0x28,0x5e,0x94;//"B"11
	DB   0x2a,0x40,0x85;//"C"12
	DB   0x28,0x54,0x94;//"D"13
	DB   0x2a,0x4a,0x85;//"E"14
	DB   0x22,0x4a,0x85;//"F"15
	DB   0x2a,0x40,0x81;//"L"21;16
	DB   0x22,0x50,0x9b;//"M"22;17
	DB   0x32,0x50,0x93;//"N"23;18
	DB   0X20,0X44,0X80;//"I"78;19
	DB   0x22,0x4a,0x95;//"P"25;20
	DB   0x32,0x4a,0x95;//"R"27;21
	DB   0x28,0x5a,0x85;//"S"28;22
	DB   0x20,0x44,0x84;//"T"29;23
	DB   0x20,0x4A,0x80;//"-"77;24
	
	DB   0x26,0x40,0x89;//"V"31;25
				        
	DB   0x21,0x40,0x80;//"mute"43;26
	DB   0x20,0x41,0x80;//"INT"44;27
	DB   0x20,0x41,0x80;//"RDM"50;28	
	DB   0x20,0x40,0x80;//51;29
					
	DB   0x21,0x40,0x80;//"RPT"52;30
	DB   0x20,0x41,0x80;//"MP3"53;31
	DB   0x20,0x40,0x80;//57;32
		
	DB   0x28,0x40,0x80;//"EQ"//64;33
	DB   0x30,0x40,0x80;//"FLAT"//65;34
	DB   0x20,0x48,0x80;//"POP"69;35
	DB   0x20,0x50,0x80;//"OK"70;36
						
	DB   0x20,0x40,0x81;//"CONNET"71;37
	DB   0x20,0x40,0x82;//"P3"72;38
	DB   0x20,0x40,0x90;//"ROCK"75;39
	DB   0x21,0x40,0x80;//"cLASS"76;40
	DB   0x30,0x44,0x88;//"K"41
	DB   0x36,0x50,0x91;//"W"42
LL_RVTAB:	
	DB   0x20,0x40,0x90;//"L1"0	
	DB   0x20,0x50,0x90;//"L2"1					
	DB   0x30,0x50,0x90;//"L3"2
	DB   0x30,0x50,0x98;//"L4"3					
	DB   0x30,0x58,0x98;//"L5"4
	DB   0x38,0x58,0x98;//"L6"5					
	DB   0x38,0x58,0x9c;//"L7"6
	
SMAL_NUM:
	DB   0X20,0X41,0X80;//"SUB"7
	DB   0x24,0x44,0x80;//"1" 1
	DB   0x26,0x42,0x83;//"2" 2
	DB   0x26,0x46,0x82;//"3" 3
	DB   0x24,0x47,0x80;//"4" 4
	DB   0x22,0x47,0x82;//"5" 5
	DB   0x22,0x47,0x83;//"6" 6
	;DB   0x39,0x58,0x9C;//" " 

sdfsdf:
	db  0x88,0x1F,0x0c8,0x0e8,0x88,0x0a8,0x48,0x68,0x78	
;--------------------------------------------------------------------------------------	
MODE_RVL:
		PUSH	00H
		PUSH	02H
		JNB     P_MODE,MP3_MOD4
		clr     P_MODE
		JB      MP3_MODE,MP3_MOD2
		CLR     HAND_PRESS
		JB      MP3_STATE,MP3_MOD4
		SETB    MUTE_CTROL
		MOV     A,#7
		lcall   tedr_sbuf
		LCALL   MP3_POWER
		LJMP    MP3_MOD3
	MP3_MOD2:
		SETB    MUTE_CTROL
		MOV     A,#0aH
		lcall   tedr_sbuf
		lcall   RADIO_VMOD;显示RADIO截面
		LCALL   RADIO_POWER
		SETB    HAND_PRESS
	MP3_MOD3:
		LCALL   CLR_CARRY_BIT
	MP3_MOD4:
		POP	02h
		POP	00H
		RET		
     		END
	 
 

























































⌨️ 快捷键说明

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