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

📄 et83x432_codec.inc

📁 在台湾义统公司ET44M210开发实验板环境下
💻 INC
📖 第 1 页 / 共 2 页
字号:
	Mov		CodecData,A
	Call	Write_Codec_Data
	
	Mov		A,#0x25						;LPF Parameters Table
	Mov		CodecAddress,A
	Mov		A,#0x02
	Mov		CodecData,A
	Call	Write_Codec_Data
	
	Mov		A,#0x26						;LPF Parameters Table
	Mov		CodecAddress,A
	Mov		A,#0xF9
	Mov		CodecData,A
	Call	Write_Codec_Data
	
	Mov		A,#0x27						;LPF Parameters Table
	Mov		CodecAddress,A
	Mov		A,#0xF7
	Mov		CodecData,A
	Call	Write_Codec_Data
	
	Mov		A,#0x28						;LPF Parameters Table
	Mov		CodecAddress,A
	Mov		A,#0x7B
	Mov		CodecData,A
	Call	Write_Codec_Data
	
	Mov		A,#0x29						;LPF Parameters Table
	Mov		CodecAddress,A
	Mov		A,#0xFB
	Mov		CodecData,A
	Call	Write_Codec_Data
	
	Mov		A,#0x2A						;LPF Parameters Table
	Mov		CodecAddress,A
	Mov		A,#0xA8
	Mov		CodecData,A
	Call	Write_Codec_Data
	
	Mov		A,#0x2B						;LPF Parameters Table
	Mov		CodecAddress,A
	Mov		A,#0x26
	Mov		CodecData,A
	Call	Write_Codec_Data
	
	Mov		A,#0x2C						;LPF Parameters Table	
	Mov		CodecAddress,A
	Mov		A,#0xC6
	Mov		CodecData,A
	Call	Write_Codec_Data
	
	Mov		A,#0x2D						;LPF Parameters Table
	Mov		CodecAddress,A
	Mov		A,#0x45
	Mov		CodecData,A
	Call	Write_Codec_Data			;these parameter is not changed by user

RET										;ENCODE AND DECODE SET SAME END
;*****************************************************************************************
;*****************************************************************************************

SILENCE_CODE:
			MOV		A,#0X00					;FIFO ACCESSING WINDOW 1(FW1)
			MOV		CodecAddress,A			;SILENT CODE BLOCK FF 93 00 00 01 FF 7F
			MOV		A,#0XFF					;FF 
			MOV		CodecData,A
			CALL	Write_Codec_Data
			MOV		A,#0X93					;93
			MOV		CodecData,A
			CALL	Write_Codec_Data
			MOV		A,#0X00					;00
			MOV		CodecData,A
			CALL	Write_Codec_Data
			MOV		A,#0X00					;00
			MOV		CodecData,A
			CALL	Write_Codec_Data
			MOV		A,#0X01					;01
			MOV		CodecData,A
			CALL	Write_Codec_Data
			MOV		A,#0XFF					;FF
			MOV		CodecData,A
			CALL	Write_Codec_Data
			MOV		A,#0X7F					;7F
			MOV		CodecData,A
			CALL	Write_Codec_Data
RET
;*****************************************************************************************
;*****************************************************************************************
SET_HEADPHONE_GAIN:
		Mov		A,#0x55						;HEADPHONE GAIN CONTROL LEFT-CHANNEL
		Mov		CodecAddress,A
		Mov		A,#0X74//D_55//#0x00//		;D_55==0XAF
		Mov		CodecData,A
		Call	Write_Codec_Data
		
		Mov		A,#0x56						;HPGCR
		Mov		CodecAddress,A
		Mov		A,#0X74//D_56//#0x00//79	;0DB
		Mov		CodecData,A
		Call	Write_Codec_Data
RET
;*****************************************************************************************
;*****************************************************************************************
VOL_MUTE:										;SET VOLUME TO MUTE
		Mov		A,#0x0C							;DIGITAL GAIN CONTROL 1
		Mov		CodecAddress,A					;XX DGC1
		Mov		A,#0x00 						;1~63(-47dB~+15dB)
		Mov		CodecData,A						;0=DIGITAL MUTE
		Call	Write_Codec_Data				;48=0dB
		Mov		A,#0x0D							;DIGITAL GAIN CONTROL 2
		Mov		CodecAddress,A
		Mov		A,#0x00 	
		Mov		CodecData,A	
		Call	Write_Codec_Data
RET
;*****************************************************************************************
;*****************************************************************************************
VOL_SET:
		mov		A,Volval					;direct address
		SUB		A,VolNow					;A<---VolNow-A
		JBC		STATUS,C,VolNowINC			;VolNow<Volval		< C=0	> C=1
		JBS		STATUS,Z,VOL_SET_END		;VolNow=Volval
		CALL	VolNowDEC					;VolNow>Volval
		
VOL_SET_END:
RET	
;*****************************************************************************************
;*****************************************************************************************				
VolNowINC:
		INC		VolNow
		NOP
		Call	VolChange
		JMP		VOL_SET_END	
;*****************************************************************************************
;*****************************************************************************************

VolNowDEC:
		DEC		VolNow
		NOP
		Call	VolChange
RET	
;*****************************************************************************************
;*****************************************************************************************
	
VolChange:	
		Mov		A,#0x0C
		Mov		CodecAddress,A
		Mov		A,VolNow		
		Mov		CodecData,A
		Call	Write_Codec_Data

		Mov		A,#0x0D
		Mov		CodecAddress,A
		Mov		A,VolNow		
		Mov		CodecData,A
		Call	Write_Codec_Data
RET	
;*****************************************************************************************
;*****************************************************************************************	
StartCodecDecode:
	Mov		A,#0x06					;(CC)CODEC CONTROL
	Mov		CodecAddress,A			;XXCR FR SLEEP PI CA CM     0=no action 1=reset 
	Mov		A,#0x0B//8B	;0000 1011	;PI=POLARITY OF INTERRUPT 0==reducing 1==rising edge
	Mov		CodecData,A				;CA=code action   0=stop the codec engine  1=start
	Call	Write_Codec_Data		;CM=code mode     0=encoder   1=decoder
Ret									;sleep  0=power down   1=normal 	
;*****************************************************************************************
;*****************************************************************************************
StartCodecEncode:
	Mov		A,#0x06					
	Mov		CodecAddress,A
	Mov		A,#0x0A					;0000 1010 SLEEP=1 WORK ,PI=0 HIGH TO LOW
	Mov		CodecData,A
	Call	Write_Codec_Data
Ret
;*****************************************************************************************
;*****************************************************************************************	
StopCodecDecode:	
	Mov		A,#0X06
	Mov		CodecAddress,A
	Mov		A,#0X01					;0000 0001
	Mov		CodecData,A
	Call	Write_Codec_Data
RET
;*****************************************************************************************
;*****************************************************************************************	
StopCodecEncode:	
	Mov		A,#0x06
	Mov		CodecAddress,A
	Mov		A,#0x00
	Mov		CodecData,A
	Call	Write_Codec_Data
RET
;*****************************************************************************************
;*****************************************************************************************
Soft_ResetCodec:
	Mov		A,#0x06
	Mov		CodecAddress,A
	Mov		A,#0x30					;0011 0000   chip reset FIFO reset
	Mov		CodecData,A
	Call	Write_Codec_Data
	call	delay_30ms
	Mov		A,#0x00					;stop both decoder and encoder
	Mov		CodecData,A
	Call	Write_Codec_Data
RET
;*****************************************************************************************
;*****************************************************************************************
SLEEP_MODE:							;0000 1111
	Mov		A,#0x06
	Mov		CodecAddress,A
	Mov		A,#0x0F					;SLEEP PI CA CM
	Mov		CodecData,A
	Call	Write_Codec_Data
RET
;*****************************************************************************************
;*****************************************************************************************
CLEAR_FIFO:
	Mov		A,#0x06
	Mov		CodecAddress,A
	Mov		A,#0x1F					;FIFO reset
	Mov		CodecData,A
	Call	Write_Codec_Data
RET
;*****************************************************************************************
;*****************************************************************************************
CLEAR_FIFO_END:						;stop FIFO reset
	Mov		A,#0x06
	Mov		CodecAddress,A			;
	Mov		A,#0x0F					; normal;rising;ation;decoder 
	Mov		CodecData,A				;
	Call	Write_Codec_Data
RET
;*****************************************************************************************
Read_Codec_Data:					;
	CALL	WRITE_ADDRESS
	CALL	READ_DATA
RET
;*****************************************************************************************
;*****************************************************************************************

Write_Codec_Data:
	CALL	WRITE_ADDRESS
	CALL	WRITE_DATA
RET
;*****************************************************************************************
;***************************************************************************************** 
    	
WRITE_DATA:
	
	MOV		A,CodecData
	MOV		CodecDataPort,A
	
    BC		CodecCSnP,CodecCSn
    BC		CodecRWnP,CodecRWn
		
	BC	    CodecADnP,CodecADn
	
	Call	DELAY_240nS				;DELAY 240nS 
	
	BS	    CodecADnP,CodecADn
    BS		CodecRWnP,CodecRWn

    BS		CodecCSnP,CodecCSn     

RET
;*****************************************************************************************
;*****************************************************************************************
READ_DATA:							;data read cycle
	MOV		A,#0xFF					;MCU input
	MOV		CodecDataPortIO,A		
    BC		CodecCSnP,CodecCSn
	BC	    CodecADnP,CodecADn		;1=address	0=data
	
	Call	DELAY_240nS				;delay 240nS 
 
	MOV		A,CodecDataPort			;portD
	MOV		CodecData,A				;CodecData EQU OX32
				
	BS	    CodecADnP,CodecADn
    BS		CodecCSnP,CodecCSn     

RET
;*****************************************************************************************
;*****************************************************************************************
WRITE_ADDRESS:
	Clr		CodecDataPortIO			;address write cycle
	BS	    CodecADnP,CodecADn		;I/O control of portD  output
	
	MOV		A,CodecAddress			;	
	MOV		CodecDataPort,A

    BC		CodecCSnP,CodecCSn		;chip select port,cs==0

    BC		CodecRWnP,CodecRWn		;1=read 0=write
	Call	DELAY_240nS	 			;delay 240nS
    BS		CodecRWnP,CodecRWn		;
     
    BS		CodecCSnP,CodecCSn  
RET
;*****************************************************************************************
;*****************************************************************************************

CodecReadFiFo:
	Mov		A,#0
	Mov		CodecAddress,A	;Address = 0
	
	Call	Read_Codec_Data
RET
;*****************************************************************************************

CodecWriteFiFo:
	Mov		A,#0
	Mov		CodecAddress,A	;Address = 0
	
	Call	Write_Codec_Data
RET
;*****************************************************************************************
;*****************************************************************************************
CodecReadFiFoCount:
	Mov		A,#2
	Mov		CodecAddress,A	;Address = 2
	Call	Read_Codec_Data
RET
;*****************************************************************************************
;*****************************************************************************************

CodecBasicWrite:
    	BC		CodecCSnP,CodecCSn

        BC		CodecRWnP,CodecRWn
		Call	DELAY_240nS	;240nS 
	   	BS		CodecRWnP,CodecRWn
     
    	BS		CodecCSnP,CodecCSn     
		Ret
		
DELAY_240nS:	;400 nS
		NOP
		NOP
		NOP
		NOP
;		NOP
;		NOP
;		NOP
;		NOP
RET
;*****************************************************************************************
;*****************************************************************************************

⌨️ 快捷键说明

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