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

📄 ad.lst

📁 能同时进行多路数据采集
💻 LST
📖 第 1 页 / 共 2 页
字号:
                     <      	.DEFINE C_32K_Off				0x0000;			// 
                     <      	.DEFINE C_StrongMode			0x0000;			// b5
                     <      	.DEFINE C_AutoMode				0x0000;			//
                     <      	
                     <      	//... Define for P_AD_Ctrl ....................
                     <      	.DEFINE	C_AD					0x0001;			//
                     <      	.DEFINE C_DA					0x0000;			//
                     <      	.DEFINE C_MIC					0x0000;			//
                     <      	.DEFINE C_LINE					0x0002;			//
                     <      	
                     <      	//... Define for P_DA_Ctrl ....................
                     <      	.DEFINE C_PushPull				0x0000;			// b0, (default) 
                     <      	.DEFINE C_DoubleEnd				0x0001;			// b0
                     <      	.DEFINE	C_DAC_Mode				0x0000;			// b1, (default)
                     <      	.DEFINE C_PWM_Mode				0x0002;			// b1
                     <      	
                     <      	.DEFINE	C_D1_Direct				0x0000;			// DAC1 latch
                     <      	.DEFINE C_D1_LatchA				0x0008;			// 
                     <      	.DEFINE C_D1_LatchB				0x0010;			//
                     <      	.DEFINE C_D1_LatchAB			0x0018;			//
                     <      	
                     <      	.DEFINE	C_D2_Direct				0x0000;			// DAC2 latch
                     <      	.DEFINE C_D2_LatchA				0x0020;			// 
                     <      	.DEFINE C_D2_LatchB				0x0040;			//
                     <      	.DEFINE C_D2_LatchAB			0x00C0;			//
                     <      	
                     <      	//... Define for P_LVD_Ctrl ...................
                     <      	.DEFINE C_LVD24V				0x0000;			// LVD = 2.4V 
                     <      	.DEFINE C_LVD28V				0x0001;			// LVD = 2.8V
                     <      	.DEFINE C_LVD32V				0x0002;			// LVD = 3.2V
                     <      	.DEFINE C_LVD36V				0x0003;			// LVD = 3.6V
                     <      	
                     <      	
                     <      	.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
                     <      	//========================================================================================
00008178                    	.CODE
                            	.public _F_AD_Initial;
                            	_F_AD_Initial:  .PROC
00008178 88 D2              			PUSH r1,r1 TO [sp];
00008179 41 92              			R1 = 0x0001	            //允许A/D
0000817A 19 D3 15 70        			[P_ADC_Ctrl] = R1 		 
                            		    
0000817C 40 92              	    	r1=0x0000;			//通过读P_ADC触发ADC自动转换	
0000817D 19 D3 2A 70        		    [P_DAC_Ctrl] = r1; 
                            			
0000817F 41 92              			r1 = 0x0001            //LINE1输入			
00008180 19 D3 2B 70        			[P_ADC_MUX_Ctrl] = r1;
                            			
00008182 88 90              			POP r1,r1 FROM [sp];
00008183 90 9A              			RETF
                            			.ENDP
                            		
                            		
                            	//************** A/D 转换程序 **********************//	
                            	.public _F_ReadAD
                            	_F_ReadAD: .PROC
00008184 A0 DA              			   PUSH r2,r5 TO [sp];
00008185 08 0B 01 00        			   BP=SP+1;
00008187 06 92              			   r1 = [BP+6];           		
00008188 19 D3 2B 70        			   [P_ADC_MUX_Ctrl] = r1;//设置通道号
0000818A 41 92              			   r1=0x0001;
0000818B 19 D3 12 70        			   [P_Watchdog_Clear]=r1;
0000818D 50 94              			   r2=16      //进行4次转换
0000818E 40 96              			   r3=0
                            	L_SampleLoop:	   
0000818F 11 93 2C 70        			   r1=[P_ADC_MUX_Data]      //读[P_ADC_MUX_Data],启动一次AD转换
00008191 09 93 00 80        	           r1=0x8000
                            	L_VoltageConverLoop:   
00008193 11 C3 2B 70        	          TEST r1,[P_ADC_MUX_Ctrl]
00008195 43 5E              	          JZ L_VoltageConverLoop; 
00008196 11 93 2C 70        	          r1=[P_ADC_MUX_Data]      //AD转换值 
00008198 79 93              	          r1=r1 LSR 4           //将AD值移到低10位
00008199 69 93              	          r1=r1 LSR 2
0000819A 01 07              	          r3+=r1             //四次A/D值累加
0000819B 41 24              	          r2-=1
0000819C 4E 4E              	          jnz  L_SampleLoop
0000819D 7B 97              	          r3=r3 LSR 4     //结果除以4,求4次的平均值
0000819E 03 93              	          r1=r3           //返回结果
                            	          
0000819F A0 92              	          POP r2,r5 FROM [sp];
000081A0 90 9A              	          RETF
                            	          .ENDP
                            			   
                            	   
                            	 
0 error(s), 0 warning(s).

⌨️ 快捷键说明

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