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

📄 adsample.h

📁 该程序完成了c8051外围电路的驱动和串口协议的编写。希望能给大家学习51单片机带来帮助
💻 H
字号:
#ifndef         __ADSAMPLE_H__
#define         __ADSAMPLE_H__


xdata struct PT2060AD
{ 			  
	unsigned int  uiGapSumValue1[32];	   //只用到了前16个,后16个没用到
	unsigned char uiGapSumPTR1;			   
	unsigned int  uiGapSumValue2[32];	   //只用到了前16个,后16个没用到
	unsigned char uiGapSumPTR2;                                		 
	unsigned char uchCPUPosizationStatus;			
	unsigned int  uiSamFRQ;	             //采样频率	 变量暂时不作处理,以后扩展用
	float         fDataRMSAverage[2];
	unsigned int  uiRMSCountNumber;						  
	unsigned int  uiRMSampleCountSomeCycle;
	unsigned int  uiRMSampleCountSomeCycleBAK;
	unsigned int  uiDataAverage[2];
//	unsigned int  uiDataAverageBAK[2][15];
//	unsigned char uchCountNumber1;
//	unsigned char uchCountNumber2;
//	unsigned char uchCountNumber;
	unsigned char uchChType[2];	                                        //通道类型
	unsigned char uchSenDirection[2];                                   //传感器方向       
	unsigned int  uiSenSensitive[2];			 				        //传感器灵敏度   
	int 		  iZeroPosition[2]; 
	unsigned char uchSampleRate[2];								 	   //后加
	unsigned char uchtMeasureType[2];                                              
	int           iScaleLow[2],iScaleHigh[2];                           //满量程上下限
	unsigned int  uiACADZero[2],uiACADSpan[2],uiDCADZero[2],uiDCADSpan[2];//积分通道标定值,非积分通道
	unsigned int  uiLittleRangeADZero[2],uiLittleRangeADSpan[2];
	unsigned int  uiGAPADZero[2],uiGAPADFull[2];
	unsigned int  uiMaxValue0[30];
	unsigned int  uiMinValue0[30];
	unsigned int  uiMaxGroup0[30];
	unsigned int  uiMinGroup0[30];	
	unsigned int  uiMaxValue1[30];
	unsigned int  uiMinValue1[30];
	unsigned int  uiMaxGroup1[30];
	unsigned int  uiMinGroup1[30]; 	
	unsigned int  uiMaxValue2[30];
	unsigned int  uiMinValue2[30];
	unsigned int  uiMaxGroup2[30];
	unsigned int  uiMinGroup2[30]; 	
	unsigned int  uiMaxValue3[30];
	unsigned int  uiMinValue3[30];
	unsigned int  uiMaxGroup3[30];
	unsigned int  uiMinGroup3[30];	 	 
	unsigned int  uiLastPKPKValue[4];	 
	unsigned int  uiCurPKPKValue[4];  	 
	unsigned char uchCurMaxCount;
	unsigned char uchCurMinCount;	 	
	unsigned int  uiPassedGroupIndex;   //历史组号				 
	unsigned char uchGroupDone;	    //完成一组采样标志
	unsigned int  uiSampleLocation;		//采样位置
	unsigned int  uiGroupNum;			//组数
	unsigned int  uiCurProcessingIndex;
	unsigned int  uiCurGroupIndex;
	unsigned int  uiGroupLength;        //组长
	int           iActualValue[2][3];           //0--通道一/1--通道二//------//0-实际测量值/1-比例值/2-GAP值   
	float         fRealIntegralScaleData[2];
 	float         fRealNotIntegralScaleData[2];
	float         fRealNotIntegralLittleScaleData[2]; //HHH
	float         fRealLVDTScaleData[2];			  //HHH
	long		  lLvdtMark[2];					     //HHH

	unsigned int  uiGAPADLVDTZero[2];
	float         fDCPKValue[2];
	float         fACPKValue[2];
	int           iActualGAPNotOKValue[2];				//667.5  int

//	float         fRMSADAverageBAK[2][2];



	
	float  fDataRMSADAverage[2][8];














	float  fRMSIntegrateZeroValue[2];
	float  fRMSNotIntegrateLargeRangeValue[2];
	float  fRMSNotIntegrateLittleRangeValue[2];	   //20080730




//	unsigned long llllllll[20];







};


//-------------------------------------------------------------------------------
//本模块函数的声明
//-------------------------------------------------------------------------------
void ADModuleSoftInitialize();
void SetChannleType(unsigned char uchChannel,unsigned char uchChannelType);
void SetSensorDirection(unsigned char uchChannel, unsigned char uchSensorDirection);
void SetSensorSensitive(unsigned char uchChannel, unsigned int uiSensorSensitive);
void SetZeroPosition(unsigned char uchChannel, int iZeroPosition);
void SetScaleLow(unsigned char uchChannel,int iScaleLow);
void SetScaleHigh(unsigned char uchChannel,int iScaleHigh);
void SetVibADZero(unsigned char uchChannel,unsigned int uiVibADZero);
void SetVibADFull(unsigned char uchChannel,unsigned int uiVibADFull);
void SetDisADZero(unsigned char uchChannel,unsigned int uiDisADZero);
void SetDisADFull(unsigned char uchChannel,unsigned int uiDisADFull);
void CalculatePKPKValue0(unsigned int xdata  *SrcData,unsigned int uiSampleLocation,unsigned int uiCurGroupIndex,unsigned int uiPassedGroupIndex,unsigned int uiGroupNum);
void CalculatePKPKValue1(unsigned int xdata  *SrcData,unsigned int uiSampleLocation,unsigned int uiCurGroupIndex,unsigned int uiPassedGroupIndex,unsigned int uiGroupNum);
void CalculatePKPKValue2(unsigned int xdata  *SrcData,unsigned int uiSampleLocation,unsigned int uiCurGroupIndex,unsigned int uiPassedGroupIndex,unsigned int uiGroupNum);
void CalculatePKPKValue3(unsigned int xdata  *SrcData,unsigned int uiSampleLocation,unsigned int uiCurGroupIndex,unsigned int uiPassedGroupIndex,unsigned int uiGroupNum);
void SetSampleCompleteStatusAD(unsigned char uchSampleCompleteStatus);
void SetSampleBuffer0(unsigned int *pSampBuffer);
void SetSampleBuffer1(unsigned int *pSampBuffer);
void SetSampleBuffer2(unsigned int *pSampBuffer);
void SetSampleBuffer3(unsigned int *pSampBuffer);
void InitADSampleModule(void);
void CaculateDataScale(void);
void SetChannleType(unsigned char uchChannel,unsigned char uchChannelType);
void ADModuleSignalProcessing(unsigned char uchChannel);
float CaculateIntegralScale(unsigned char uchChannel);
float CaculateNotIntegralScale(unsigned char uchChannel);
void SetMeasureType(unsigned char uchChannel, unsigned char uchtMeasureType);
void CalculateCalibrationAD(unsigned char uchChannel,unsigned char uchZeroOrSpan);
void SetACADZero(unsigned char uchChannel,unsigned int uiACADZero);
void SetACADFull(unsigned char uchChannel,unsigned int uiACADFull);
void SetDCADZero(unsigned char uchChannel,unsigned int uiDCADZero);
void SetDCADFull(unsigned char uchChannel,unsigned int uiDCADFull);
void ADModuleSampleRateInitialize(void);
void CalculateCalibrateGAPAD(unsigned char uchChannel,unsigned char uchZeroOrSpan);
void SetGAPADZero(unsigned char uchChannel,unsigned int uiGAPADZero);
void SetGAPADFull(unsigned char uchChannel,unsigned int uiGAPADFull);
void SetCPUPosizationStatusAD(unsigned char uchCPUPosizationFlag);
//void SetDefaultCentricity(unsigned char uchChannel);
void CaculateNotIntegralChannelPKValue(unsigned char uchChannel);
void CaculateIntegralChannelPKValue(unsigned char uchChannel);
void SetSampleRateAD(unsigned char uchChannel, unsigned char uchSampleRate);
void SetLittleRangeADZero(unsigned char uchChannel,unsigned int uiLittleRangeADZero);
void SetLittleRangeADFull(unsigned char uchChannel,unsigned int uiLittleRangeADFull);
float CaculateNotIntegralLittleRangeScale(unsigned char uchChannel);
float CaculateLVDTScale(unsigned char uchChannel); //HHH
long CalculateLVDTZeroPosition(unsigned char uchChannel);//HHHHHHHH

//void SetRMSCompleteStatusAD(unsigned char uchRMSCompleteFlag);


void JudgeChannelScale(unsigned char uchChannel);

void SetSampleLocationStatus(unsigned char uchSampleLocationFlag);



void SetCurProcessingIndex(void);

void CaculateIntegrateRMSZero(unsigned char uchChannel);	
void CaculateNotIntegrateLargeRangeRMSZero(unsigned char uchChannel);
void CaculateNotIntegrateLittleRangeRMSZero(unsigned char uchChannel);







//---------------------------------------------------------------------------------
//其他模块函数的声明
//---------------------------------------------------------------------------------
extern void SetSampleRate(int counts);
extern void FeedDog(void);
extern void SetCurrentMeasureValueMain(unsigned char uchChannel,float iValue);
extern void SetPercentValueMain(unsigned char uchChannel,float iValue);
extern void SetGapVoltageMain(unsigned char uchChannel,int iValue);
extern void SetVibADZeroCountResultMain(unsigned char uchChannel, unsigned int uiVibADCountValue);
extern void SetVibADFullCountResultMain(unsigned char uchChannel, unsigned int uiVibADCountValue);
extern void SetDisADZeroCountResultMain(unsigned char uchChannel, unsigned int uiDisADCountValue);
extern void SetDisADFullCountResultMain(unsigned char uchChannel, unsigned int uiDisADCountValue);
extern void SetInitChannel(void);
extern void SampleStartControl(void);
extern void SampleStopControl(void);
extern void SetSampleCompleteStatusMain(unsigned char uchCompleteStatus);
extern void SetGAPZeroCountResultMain(unsigned char uchChannel, unsigned int uiGAPCountValue);
extern void SetGAPFullCountResultMain(unsigned char uchChannel, unsigned int uiGAPCountValue);
extern void SetLittleADZeroCountResultMain(unsigned char uchChannel, unsigned int uiLittleADCountValue);
extern void SetLittleADFullCountResultMain(unsigned char uchChannel, unsigned int uiLittleADCountValue);



extern void OutputCurrentValue(unsigned char uchChannel, int iCurrentValue);
extern void SetNOTOKGapVoltageMain(unsigned char uchChannel,int iValue);


 #endif

⌨️ 快捷键说明

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