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

📄 123.lst

📁 凌阳单片机对语音的处理和调用
💻 LST
📖 第 1 页 / 共 4 页
字号:
                            	 FillRamBuf1:
00009B9A 11 93 31 00        		    R1 = [HascDEC_FIFO_PTR];             // Fill Ring-Buf
00009B9C 12 95 76 01        	        R2 = [W_InterRAM_Ptr];          
00009B9E 02 43              	        CMP  R1,R2;
00009B9F 2A 5E              	        JZ   EndFillRingBuf;
00009BA0 13 97 77 01        	        R3 = [DataFlag];
00009BA2 0B 47 FF FF        	        CMP R3,0xFFFF;
00009BA4 25 5E              	        JZ   EndFillRingBuf;		// Data is over , don't fill memory.
00009BA5 13 97 75 01        	        R3 = [SegDataRomAddr]
00009BA7 15 9B 74 01        	        R5 = [DataRomAddr];
00009BA9 0E BD FF 03        	        Sr &= 0x3FF			
00009BAB 03 AD              	        SR |= R3
00009BAC E5 98              	        R4 =DS: [R5];
00009BAD 41 0A              	        R5 +=1
00009BAE 04 4E              	        JNZ		?L_Nover
00009BAF 0B 07 00 04        	        R3 +=0x400
00009BB1 1B D7 75 01        	        [SegDataRomAddr] = R3       //以上程序应该是获取音频的基地址
                            	?L_Nover:
00009BB3 1D DB 74 01        	        [DataRomAddr] = R5;
00009BB5 40 F0 CE 9B        	        CALL	F_ChangeHighLowByte;
00009BB7 0A 07 01 00        	        R3 = R2 + HASC_FIFO;        
00009BB9 41 04              	        R2 += 1;
00009BBA 5F B4              	        R2 &= 0x001F;
00009BBB 1A D5 76 01        	        [W_InterRAM_Ptr] = R2;
00009BBD 0C 49 FF FF        			CMP  R4,0xFFFF;
00009BBF 0C 4E              			JNZ  NotCheckEndingCode;
00009BC0 15 9B 74 01        			R5 = [DataRomAddr];
00009BC2 E5 9A              			R5 = DS:[R5];			
00009BC3 0D 4B FF 00        			CMP R5,0x00FF;
00009BC5 06 4E              			JNZ  NotCheckEndingCode;
00009BC6 0C 99 FF FF        			R4 = 0xFFFF;
00009BC8 1C D9 77 01        			[DataFlag] = R4;		// Ending Code,don't store in the HASC_FIFO
                            	EndFillRingBuf:
00009BCA A8 90              	       	pop  R1,R5 from [sp];
00009BCB 90 9A              			retf
                            			.endp
                            	
                            	NotCheckEndingCode:
00009BCC C3 D8              	        [R3] = R4;		 	// Not Ending Code        
00009BCD 74 EE              	        JMP  FillRamBuf1;
                            	
                            	
                            	//-----------------------------------
                            	//将R4的高、低字节进行交换(16字节的)
                            	//-----------------------------------
                            	// ------------------------------------------------------------------------------------------------------------//
                            	// Purpose: To make encode data is compatible with SPDC.  We must change High-Low Byte 
                            	// Input:   R4
                            	// Output:  R4
                            	// Change:  R4,R5;
                            	// ------------------------------------------------------------------------------------------------------------//
                            	F_ChangeHighLowByte:
00009BCE 0C BB FF 00        	          R5 = R4 And 0x00FF;
00009BD0 5D 9B              	          R5 = R5 LSL 4;
00009BD1 5D 9B              	          R5 = R5 LSL 4;
00009BD2 7C 99              	          R4 = R4 LSR 4;
00009BD3 7C 99              	          R4 = R4 LSR 4;
00009BD4 05 A9              	          R4 |= R5;
00009BD5 90 9A              	          RETF;
                            	          
                            	          
                            	//--------------------------
                            	//发送DAC信号的
                            	//--------------------------
                            	////////////////////////////////////////////////////////
                            	// Function: F_SACM_DVR1600_SendDAC
                            	// Description: send data to DAC from library 
                            	// Syntax  : F_SACM_DVR1600_SendDAC
                            	// Destory: R4   
                            	// Input  : R4: 16-bit sign PCM
                            	// Return    :None
                            	////////////////////////////////////////////////////////
                            	.PUBLIC 	F_SACM_DVR1600_SendDAC
                            	F_SACM_DVR1600_SendDAC: .PROC
                            	//	push R4 to [sp];
00009BD6 0C B9 C0 FF        	    R4 &=0xFFC0
00009BD8 0C 49 00 87        	    CMP  R4,0x8700;
00009BDA 02 BE              		JG 	?NotUnderFlow;
00009BDB 0C 99 00 87        		R4 = 0x8700;
                            	?NotUnderFlow:
00009BDD 0C 09 00 79        		R4 += 0x7900;     
                            		   
00009BDF 1C D9 29 70        	    [0x7029] = r4
00009BE1 90 9A              	    retf;
                            	
                            	.ENDP
                            	
                            	.public _T_SACM_DVR1600_ServiceLoop
                            		_T_SACM_DVR1600_ServiceLoop:.proc
00009BE2 A8 DA              			push R1,R5 to [sp];
00009BE3 40 F0 9B 96        			CALL F_SACM_DVR1600_ServiceLoop;
00009BE5 A8 90              			pop  R1,R5 from [sp];
00009BE6 90 9A              		retf
                            		.endp
                            		
                            	.public _T_SACM_DVR1600_Status
                            		_T_SACM_DVR1600_Status:.proc
00009BE7 A8 DA              			push R1,R5 to [sp];
00009BE8 40 F0 E1 99        			CAll F_SACM_DVR1600_Status;
00009BEA 19 D3 7A 01        			[_StatusData]=R1;
00009BEC A8 90              			pop  R1,R5 from [sp];
00009BED 90 9A              		retf
                            		.endp
                            		
                            	.public _T_SACM_DVR1600_Volume
                            		_T_SACM_DVR1600_Volume: .proc           //设定DVR1600的播放音量
00009BEE 88 DA              	    	push bp to [sp];
00009BEF 08 0B 01 00        	    	BP=sp+1;
00009BF1 03 92              			R1=[BP+3];
00009BF2 40 F0 D9 99        	    	CALL F_SACM_DVR1600_Volume;
00009BF4 88 98              	    	pop bp from [sp];
00009BF5 90 9A              	    retf
                            	    .endp          
                            	    
                            	.public _T_SACM_DVR1600_Pause
                            		_T_SACM_DVR1600_Pause: .proc
00009BF6 A8 DA              			push R1,R5 to [sp];
00009BF7 40 F0 C9 99        			CALL F_SACM_DVR1600_Pause;
00009BF9 A8 90              			pop R1,R5 from [sp];
00009BFA 90 9A              		retf
                            		.endp
                            		
                            	.public _T_SACM_DVR1600_Resume
                            		_T_SACM_DVR1600_Resume: .proc
00009BFB A8 DA              			push R1,R5 to [sp];
00009BFC 40 F0 D1 99        			CALL F_SACM_DVR1600_Resume;
00009BFE A8 90              			pop R1,R5 from [sp];
00009BFF 90 9A              		retf
                            		.endp
                            	
                            	//*************************************************************************************
                            	//ISR : TimerA INT  //定时器中断
                            	//*************************************************************************************
00009497                    	.TEXT
                            	_IRQ2:  
00009497 A8 DA              		push R1, R5 to [sp];
00009498 44 92              	        R1 = 0x0004;
00009499 19 D3 11 70        	        [P_IntClr] = R1;
0000949B 40 F0 A7 99        		    CALL	F_SACM_DVR1600_IRQ_ServiceLoop;  //怎么没有看到啊?
0000949D A8 90              		pop R1, R5 from [sp];
0000949E 98 9A              		RETI;	
                            	
                            	
                            	//---语音信息表
                            	T_SACM_A1600_Table:
                            	//.DW _RES_A13_ENC_SA;
                            	//.DW _RES_A39_ENC_SA;
                            	
0000949F 77 94              	.DW _RES_A02_ENC_SA;
000094A0 7B 94              	.DW _RES_A03_ENC_SA;
000094A1 7F 94              	.DW _RES_A04_ENC_SA;
000094A2 83 94              	.DW _RES_A05_ENC_SA;
000094A3 87 94              	.DW _RES_A06_ENC_SA;
000094A4 8B 94              	.DW _RES_A07_ENC_SA;
000094A5 8F 94              	.DW _RES_A08_ENC_SA;
000094A6 93 94              	.DW _RES_A09_ENC_SA;
                            	//.DW _RES_A10_ENC_SA;
                            	//
                            	//.DW _RES_A11_ENC_SA;
                            	//.DW _RES_A12_ENC_SA;
                            	//.DW _RES_A13_ENC_SA;
                            	//.DW _RES_A14_ENC_SA;
                            	//.DW _RES_A15_ENC_SA;
                            	//.DW _RES_A16_ENC_SA;
                            	//.DW _RES_A17_ENC_SA;
                            	//.DW _RES_A18_ENC_SA;
                            	//.DW _RES_A19_ENC_SA;
                            	//.DW _RES_A20_ENC_SA;
                            	
                            	//.DW _RES_A21_ENC_SA;
                            	//.DW _RES_A22_ENC_SA;
                            	//.DW _RES_A23_ENC_SA;
                            	//.DW _RES_A24_ENC_SA;
                            	//.DW _RES_A25_ENC_SA;
                            	//.DW _RES_A26_ENC_SA;
                            	//.DW _RES_A27_ENC_SA;
                            	//.DW _RES_A28_ENC_SA;
                            	//.DW _RES_A29_ENC_SA;
                            	//.DW _RES_A30_ENC_SA;
                            	//
                            	//.DW _RES_A31_ENC_SA;
                            	//.DW _RES_A32_ENC_SA;
                            	//.DW _RES_A33_ENC_SA;
                            	//.DW _RES_A34_ENC_SA;
                            	//.DW _RES_A35_ENC_SA;
                            	//.DW _RES_A36_ENC_SA;
                            	//.DW _RES_A37_ENC_SA;
                            	//.DW _RES_A38_ENC_SA;
                            	//.DW _RES_A39_ENC_SA;
                            	//.DW _RES_A40_ENC_SA;
                            	
                            	//.DW _RES_A41_ENC_SA;
                            	//.DW _RES_A42_ENC_SA;
                            	//.DW _RES_A43_ENC_SA;
                            	//.DW _RES_A44_ENC_SA;
                            	//.DW _RES_A45_ENC_SA;
                            	//.DW _RES_A46_ENC_SA;
                            	//.DW _RES_A47_ENC_SA;
                            	//.DW _RES_A48_ENC_SA;
                            	//.DW _RES_A49_ENC_SA;
                            	//.DW _RES_A50_ENC_SA;
                            	//
                            	//.DW _RES_A51_ENC_SA;
                            	//.DW _RES_A52_ENC_SA;
                            	//.DW _RES_A53_ENC_SA;
                            	//.DW _RES_A54_ENC_SA;
                            	//.DW _RES_A55_ENC_SA;
                            	//.DW _RES_A56_ENC_SA;
                            	//.DW _RES_A57_ENC_SA;
                            	//.DW _RES_A58_ENC_SA;
                            	
0 error(s), 0 warning(s).

⌨️ 快捷键说明

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