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

📄 a1600.lst

📁 凌阳单片机对语音的处理和调用
💻 LST
📖 第 1 页 / 共 5 页
字号:
                            	////	    And user must fill the HascDEC_FIFO according to HascDEC_FIFO_PTR
                            	////	    To make encode data is compatible with SPDC, the ending code is 0xFF,0xFF,0xFF 
                            	//// ------------------------------------------------------------------------------------------------------------//
                            	//F_FillRingBuf:       
                            	//
                            	//.public _FillRamBuf
                            	//	_FillRamBuf: .proc
                            	//	push R1,R5 to [sp];
                            	// FillRamBuf1:
                            	//	    R1 = [HascDEC_FIFO_PTR];             // Fill Ring-Buf
                            	//        R2 = [W_InterRAM_Ptr];          
                            	//        CMP  R1,R2;
                            	//        JZ   EndFillRingBuf;
                            	//        R3 = [DataFlag];
                            	//        CMP R3,0xFFFF;
                            	//        JZ   EndFillRingBuf;		// Data is over , don't fill memory.
                            	//        R3 = [SegDataRomAddr]
                            	//        R5 = [DataRomAddr];
                            	//        Sr &= 0x3FF			
                            	//        SR |= R3
                            	//        R4 =DS: [R5];
                            	//        R5 +=1
                            	//        JNZ		?L_Nover
                            	//        R3 +=0x400
                            	//        [SegDataRomAddr] = R3       //以上程序应该是获取音频的基地址
                            	//?L_Nover:
                            	//        [DataRomAddr] = R5;
                            	//        CALL	F_ChangeHighLowByte;
                            	//        R3 = R2 + HASC_FIFO;        
                            	//        R2 += 1;
                            	//        R2 &= 0x001F;
                            	//        [W_InterRAM_Ptr] = R2;
                            	//		CMP  R4,0xFFFF;
                            	//		JNZ  NotCheckEndingCode;
                            	//		R5 = [DataRomAddr];
                            	//		R5 = DS:[R5];			
                            	//		CMP R5,0x00FF;
                            	//		JNZ  NotCheckEndingCode;
                            	//		R4 = 0xFFFF;
                            	//		[DataFlag] = R4;		// Ending Code,don't store in the HASC_FIFO
                            	//EndFillRingBuf:
                            	//       	pop  R1,R5 from [sp];
                            	//		retf
                            	//		.endp
                            	//
                            	//NotCheckEndingCode:
                            	//        [R3] = R4;		 	// Not Ending Code        
                            	//        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:
                            	//          R5 = R4 And 0x00FF;
                            	//          R5 = R5 LSL 4;
                            	//          R5 = R5 LSL 4;
                            	//          R4 = R4 LSR 4;
                            	//          R4 = R4 LSR 4;
                            	//          R4 |= R5;
                            	//          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];
                            	//    R4 &=0xFFC0
                            	//    CMP  R4,0x8700;
                            	//	JG 	?NotUnderFlow;
                            	//	R4 = 0x8700;
                            	//?NotUnderFlow:
                            	//	R4 += 0x7900;     
                            	//	   
                            	//    [0x7029] = r4
                            	//    retf;
                            	//
                            	//.ENDP
                            	//
                            	//.public _T_SACM_DVR1600_ServiceLoop
                            	//	_T_SACM_DVR1600_ServiceLoop:.proc
                            	//		push R1,R5 to [sp];
                            	//		CALL F_SACM_DVR1600_ServiceLoop;
                            	//		pop  R1,R5 from [sp];
                            	//	retf
                            	//	.endp
                            	//	
                            	//.public _T_SACM_DVR1600_Status
                            	//	_T_SACM_DVR1600_Status:.proc
                            	//		push R1,R5 to [sp];
                            	//		CAll F_SACM_DVR1600_Status;
                            	//		[_StatusData]=R1;
                            	//		pop  R1,R5 from [sp];
                            	//	retf
                            	//	.endp
                            	//	
                            	//.public _T_SACM_DVR1600_Volume
                            	//	_T_SACM_DVR1600_Volume: .proc           //设定DVR1600的播放音量
                            	//    	push bp to [sp];
                            	//    	BP=sp+1;
                            	//		R1=[BP+3];
                            	//    	CALL F_SACM_DVR1600_Volume;
                            	//    	pop bp from [sp];
                            	//    retf
                            	//    .endp          
                            	//    
                            	//.public _T_SACM_DVR1600_Pause
                            	//	_T_SACM_DVR1600_Pause: .proc
                            	//		push R1,R5 to [sp];
                            	//		CALL F_SACM_DVR1600_Pause;
                            	//		pop R1,R5 from [sp];
                            	//	retf
                            	//	.endp
                            	//	
                            	//.public _T_SACM_DVR1600_Resume
                            	//	_T_SACM_DVR1600_Resume: .proc
                            	//		push R1,R5 to [sp];
                            	//		CALL F_SACM_DVR1600_Resume;
                            	//		pop R1,R5 from [sp];
                            	//	retf
                            	//	.endp
                            	//
                            	////*************************************************************************************
                            	////ISR : TimerA INT  //定时器中断
                            	////*************************************************************************************
                            	//.TEXT
                            	//_IRQ2:  
                            	//	push R1, R5 to [sp];
                            	//        R1 = 0x0004;
                            	//        [P_IntClr] = R1;
                            	//	    CALL	F_SACM_DVR1600_IRQ_ServiceLoop;  //怎么没有看到啊?
                            	//	pop R1, R5 from [sp];
                            	//	RETI;	
                            	//
                            	//
                            	////---语音信息表
                            	//T_SACM_A1600_Table:
                            	////.DW _RES_A13_ENC_SA;
                            	////.DW _RES_A39_ENC_SA;
                            	//
                            	//.DW _RES_A02_ENC_SA;
                            	//.DW _RES_A03_ENC_SA;
                            	//.DW _RES_A04_ENC_SA;
                            	//.DW _RES_A05_ENC_SA;
                            	//.DW _RES_A06_ENC_SA;
                            	//.DW _RES_A07_ENC_SA;
                            	//.DW _RES_A08_ENC_SA;
                            	//.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;

⌨️ 快捷键说明

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