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

📄 system.lst

📁 语音的存储和回放
💻 LST
📖 第 1 页 / 共 2 页
字号:
                     <      	.EXTERNAL	F_SP_Read_INT_Status;			// for further use
                     <      	.EXTERNAL 	F_SP_Write_INT_Status;			// for further use
                     <      	.EXTERNAL  	F_SP_Set_INT_Vector;			// for further use
                     <      	.EXTERNAL	F_SP_Clear_INT_Vector;			// for further use
                     <      	
                     <      	.EXTERNAL	F_SP_Send_Out;					//
                     <      	.EXTERNAL	F_SP_Send_DAC1;					//
                     <      	.EXTERNAL	F_SP_Send_DAC2;					//
                     <      	.EXTERNAL	F_SP_Send_Two_DAC;				//
                     <      	.EXTERNAL	F_SP_Init_HW;					//
                     <      	
                     <      	.EXTERNAL	R_InterruptStatus;
                     <      	
                     <      	
                     <      	.EXTERNAL 	F_SP_RampUpDAC1;
                     <      	.EXTERNAL 	F_SP_RampDnDAC1;
                     <      	.EXTERNAL 	F_SP_RampUpDAC2;
                     <      	.EXTERNAL  	F_SP_RampDnDAC2;
                     <      	
                     <      	.EXTERNAL 	F_SP_InitQueue;
                     <      	.EXTERNAL 	F_SP_ReadQueue;
                     <      	.EXTERNAL 	F_SP_WriteQueue;
                     <      	.EXTERNAL 	F_SP_TestQueue;
                     <      	
                     <      	
                     <      	
                     <      	.EXTERNAL	F_SP_Get_ADC
                     <      	
                     <      	.EXTERNAL 	F_SP_Set_P_TimerA_Ctrl
                     <      	.EXTERNAL 	F_SP_Set_P_TimerA_Data
                     <      	.EXTERNAL 	F_SP_Set_P_TimerB_Ctrl
                     <      	.EXTERNAL 	F_SP_Set_P_TimerB_Data
                     <      	.EXTERNAL 	F_SP_Set_P_INT_Ctrl
                     <      	.EXTERNAL 	F_SP_Set_P_INT_Clear
                     <      	.EXTERNAL 	F_SP_Set_P_SystemClock
                     <      	.EXTERNAL 	F_SP_Set_P_DAC_Ctrl
                     <      	.EXTERNAL 	F_SP_Set_P_ADC_Ctrl
                     <      	
                     <      		
                     <      	
                     <      	//--------------------------------------------
                     <      	SACM_MACRO1: 	.MACRO
                     <      		
                     <      		.ENDM
                     <      	
                     <      	SACM_MACRO2:	.MACRO
                     <      		
                     <      		.ENDM
                     <      	
                     <      	
                     <      	
                     <      	
                     <      	//.define PC_Play_Enable_A2000		1    	// Enable the PC-Play function for SACM-A2000 module
                     <      	//.define PC_Play_Enable_S480		1    	// Enable the PC-Play function for SACM-S480 module
                     <      	//.define PC_Play_Enable_S240		1    	// Enable the PC-Play function for SACM-S240 module    
                     <      	//.define PC_Play_Enable_MS01		1    	// Enable the PC-Play function for SACM-MS01 module
                     <      	
                     <      	
                     <      	
                     <      	//========================================================================================        
                     <      	// End of hardware.inc
                     <      	//========================================================================================
                            		
00008224                    	.CODE
                            	_System_Initial:	.PROC
                            	
                            		 	//系统时钟设定
00008224 09 93 98 00        		 	r1 = 0x0098;    		 	
00008226 19 D3 13 70        		 	[P_SystemClock] = r1;
                            		 	
                            		 	//IO设定
                            		 	//IOA0~IOA2为带下拉电阻输入,IOA6为悬浮输入
00008228 40 92              		 	r1=0x0;
00008229 19 D3 02 70        		 	[P_IOA_Dir]=r1;
0000822B 09 93 F0 FF        		 	r1=0xfff0;
0000822D 19 D3 03 70        		 	[P_IOA_Attrib]=r1;
0000822F 19 D3 00 70        		 	[P_IOA_Data]=r1;
                            	
00008231 09 93 FF FF        			r1=0xffff;
00008233 19 D3 07 70        			[P_IOB_Dir] = r1;
00008235 19 D3 08 70        			[P_IOB_Attrib] = r1;
00008237 43 92              			r1=0x3;
00008238 19 D3 05 70        		    [P_IOB_Data] = r1;  
                            		 
0000823A 09 93 C3 00        		    r1 = 0x00C3;				//采用24位地址
0000823C 19 D3 1E 70        		    [P_SIO_Ctrl] = r1;
                            		
                            			
                            		 	//TimerA设定
0000823E 70 92              		 	r1 = 0x0030;    		 	//clckA选择Fosc/2;屏蔽ClockB
0000823F 19 D3 0B 70        		 	[P_TimerA_Ctrl] = r1;
00008241 09 93 FF F3        		 	r1 = FOR_RECORD_8KHZ;		
00008243 19 D3 0A 70        		 	[P_TimerA_Data] = r1;   	//8kHz中断频率
                            		 	
                            		 	//DA设定
00008245 40 92              			 r1 = 0;    
00008246 19 D3 2A 70        		 	[P_DAC_Ctrl] = r1;      	//直接将DAR锁存到DAC,通过读P_ADC触发ADC转换
                            		 	
                            		 	//AD设定
00008248 41 92              		 	r1 = 0x1;
00008249 19 D3 15 70        		 	[P_ADC_Ctrl] = r1;        	//允许数模转换
0000824B 47 92              		 	r1 = 0x7;
0000824C 19 D3 2B 70        		 	[P_ADC_MUX_Ctrl] = r1;    	//选择Line_IN7(IOA6)输入
                            		 	
                            		 	//中断设置
0000824E 09 93 00 20        		 	r1 = 0x2000;
00008250 19 D3 10 70        		 	[P_INT_Ctrl] = r1;    		//允许timeA的FIQ中断
00008252 90 9A              		 	retf
                            	.ENDP
                            	
                            	
                            	////////////////////////////////////////////
                            	_Fir:	.PROC
00008253 09 93 00 00        		 	r1 = x0; 					//数据指针复位
00008255 0A 95 82 82        		 	r2 = h0; 					//系数指针复位	
                            		
00008257 13 97 2C 70        			r3 = [P_ADC_MUX_Data];     	//取AD采样数据
00008259 1B D7 17 70        			[P_DAC1]=r3;
0000825B 0B B7 C0 FF        			r3 = r3 & 0xffc0
0000825D 63 97              			r3 = r3 lsr 1;
0000825E C1 D6              		 	[r1] = r3; 					//更新
                            		
0000825F 82 F3              		 	mr = [r1]*[r2],ss,16       	//FIR滤波运算
00008260 0C 09 FF 7F        			r4 += 0x7fff;				//电压偏移	
00008262 04 93              			r1=r4;
00008263 90 9A              			retf
                            	.ENDP
                            	
                            	
                            	
                            	
00008282                    	.DATA
00008282 30 00              			h0:    .dw 48;
00008283 2C FD              			h1:    .dw -724;
00008284 89 FF              			h2:    .dw -119;
00008285 25 F5              			h3:    .dw -2779;
00008286 E7 F4              			h4:    .dw -2841;
00008287 E0 F7              			h5:    .dw -2080;
00008288 F7 C3              			h6:    .dw -15369;
00008289 00 80              			h7:    .dw 32768;
0000828A 00 80              			h8:    .dw 32768;
0000828B F7 C3              			h9:    .dw -15369;
0000828C E0 F7              			h10:   .dw -2080;
0000828D E7 F4              			h11:   .dw -2841;
0000828E 25 F5              			h12:   .dw -2779;
0000828F 89 FF              			h13:   .dw -119;
00008290 2C FD              			h14:   .dw -724;
00008291 30 00              			h15:   .dw 48;
00000000                    	.ISRAM
00000000 01 00              			x0:    .dw 1;
00000001 01 00              			x1:    .dw 1;
00000002 01 00              			x2:    .dw 1;
00000003 01 00              			x3:    .dw 1;
00000004 01 00              			x4:    .dw 1;
00000005 01 00              			x5:    .dw 1;
00000006 01 00              			x6:    .dw 1;
00000007 01 00              			x7:    .dw 1;
00000008 01 00              			x8:    .dw 1;
00000009 01 00              			x9:    .dw 1;
0000000A 01 00              			x10:   .dw 1;
0000000B 01 00              			x11:   .dw 1;
0000000C 01 00              			x12:   .dw 1;
0000000D 01 00              			x13:   .dw 1;
0000000E 01 00              			x14:   .dw 1;
0000000F 01 00              			x15:   .dw 1;
                            	
                            	.PUBLIC _Timer_for_Record  
                            	_Timer_for_Record:
00000010 40 F1              			int off;	
00000011 09 93 FF F3        			r1 = FOR_RECORD_8KHZ 		// 采样率为 8kHz
00000013 19 D3 0A 70        			[P_TimerA_Data] = r1;		//
00000015 41 F1              			int irq;
00000016 90 9A              			retf;
                            			
                            	.PUBLIC _Timer_for_Play  
                            	_Timer_for_Play:
00000017 40 F1              			int off;	
00000018 09 93 FF E7        			r1 = FOR_PLAY_xKHZ; 	
0000001A 19 D3 0A 70        			[P_TimerA_Data] = r1;		//
0000001C 41 F1              			int irq;
0000001D 90 9A              			retf;     
0 error(s), 0 warning(s).

⌨️ 快捷键说明

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