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

📄 framemodule.h

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

#define PARALENGTH   107
#define MODULE20     0x05

xdata struct ChannelPara
{
	unsigned int   uiSampleRate,   uiSamPeriod,    uiMeasureType,    uiMeasureUnit;
	unsigned int   uiSensorType,   uiSensitive,    uiSensorDirection, uiAlertType; 
	int            iDangerHigh,    iFallingDangerH,iDangerLow,       iFallingDangerL;
	int			   iAlertLow,      iFallingAlertL, iAlertHigh,		 iFallingAlertH;
	int            iGapHigh,       iGapLow,		   iGapFalling,      iScaleHigh;
	unsigned int   uiAlertDelay,   uiDangerDelay,  uiLatch,			 uiChEnable;
	unsigned int   uiPhaseRef,     uiChType;
	int            iScaleLow,	   iExponentValue, iZeroPosition,    iHystersisVolt;   
	int            iTriggerVolt;					
	unsigned int   uiteeth,        uiTriggerSelect, uiAngle,          uiBarrier;
    unsigned int   uiLowCutoff,    uiHighCutOff,   uiChConfig;   
};		//38 * 2

xdata struct FactoryInfo										 
{
    unsigned int   uiSoftwareVer;
	unsigned long  uiProductSN;
	unsigned int   uiCheckerNum,   uiModuleType,    uiHardwareVer;       
};	  // 6

xdata struct Calibration
{
//---------------------------------------------------------------------------------------------
//说明:为了兼容10程序,不改动变量的名称,振动对应20模块的积分通道,轴位置对应20模块的不积分通道
//		增加了小量程积分通道的标定变量,共4个
//---------------------------------------------------------------------------------------------
	
	unsigned int   uiVibADZero,    uiVibADFull,    uiDisADZero,      uiDisADFull;   
	unsigned int   uiLittleRangeZero,              uiLittleRangeFull;  
	unsigned int   uiGAPADZero,    uiGAPADFull;                    
	unsigned int   uiDAZero,       uiDAFull;
};	   // 10*2


xdata struct System
{
	struct       ChannelPara Ch[2];
	struct       FactoryInfo Info;
	struct       Calibration Channel[2];
	int          iDataSpan;
	unsigned int uiTripValue[2];
	unsigned int uiBypassFlag[2];
	unsigned int uiTemp;
};

xdata union	para1
{
	struct       System Para;
	unsigned int Array[PARALENGTH + 1];
} ;

xdata struct Status
{
	unsigned char  uchStartReportTimeFlag;
	unsigned char  uchSelfTestControlStatus;
	unsigned char  uchHWBypassStatus;
	unsigned char  uchSamplelCompleteStatus;
	unsigned char  uchChannelOK[2];
	unsigned char  uchLastChannelAlarm[2];
	unsigned char  uchChannelAlarm[2];
	unsigned char  uchPowerStatus;
	unsigned char  uchCalibrationStatus[2];			
	unsigned char  uchModuleStatus;                  
	unsigned char  uchModuleFlag;
	unsigned char  uchSystemOKStatus;
	unsigned char  uchBypassStatus[2];					 
	unsigned char  uchBypassFlag[2];
	unsigned char  uchHWTripleStatus;
	unsigned char  uchChannelGapStatus[2];
	unsigned char  uchHWConfigStatus;
	int            iReportCurrentMeasureValue[2];
	int            iReportCurrentGAPValue[2];
//	unsigned int   uiReportAlarmEvenStatus[2];
//	unsigned int   uiReportSystemEventStatus;
	unsigned char  uchCPUAddressFlag;      //0:表示上CPU  1:表示下CPU
	float          iCurrentMeasureValue[2];
	int            iGapVoltage[2];
	float		   iPercentValue[2];	

//-------------------------------系统事件变量-------------------------------
	unsigned char  uchPhaseLoseStatus;
	unsigned char  uchRAMLostStatus;
	unsigned char  uchFlashLostStatus;
	unsigned char  uchModuleNewConfigStatus;
	unsigned char  uchModuleConfigLostStatus;
	unsigned char  uchModuleChannelParaStatus;
//	unsigned char  uchSoftBypassTotalStatus;
//	unsigned char  uchSoftTripleTotalStatus;	 //tong
	unsigned char  uchTripleStatus[2];
	unsigned char  uchChannelOKBAK[2];   		 //默认通道状态OK
	unsigned char  uchChannelBypassStatus[2];  
	unsigned char  uchModuleFlagBAK;
	unsigned char  uchPowerFlag;
	unsigned char  uchPhaseFlag;
	unsigned char  uchRAMLostFlag;
	unsigned char  uchFlashLostFlag;
	unsigned char  uchModuleNewConfigFlag;
	unsigned char  uchModuleConfigLostFlag;
	unsigned char  uchModuleStatusChange;
	unsigned char  uchModuleReportCount;
	unsigned char  uchHotResetReasonStatus;
	unsigned char  uchNotOKToOKStatus[2];
	int            iNOTOKGapVoltage[2];


	unsigned char  uchReportNumber;
	unsigned char  uchEnableStatus[2];    //&&&&


} ;

//-----------------------------定义报警事件------------------------------------------
#define    	ENTERLOWDANGERALARM        					201
#define    	QUITLOWDANGERALARM         					202
#define    	ENTERLOWALERTALARM         					203
#define    	QUITLOWALERTALARM          					204
#define    	ENTERHIGHALERTALARM        					205
#define    	QUITHIGHALERTALARM         					206
#define    	ENTERHIGHDANGERALARM       					207
#define    	QUITHIGHDANGERALARM		  					208

//-----------------------------报警事件定义结束--------------------------------------
//-----------------------------定义系统事件------------------------------------------
#define    	RAMLAPSE                   					1001
#define    	EEPROMORFLASHLAPSE         					1002
#define    	MODULEISNEWCONFIG          					1006
#define    	CONFIGLAPSE                					1007
#define    	MODULEENTERRUNMODE         					1011
#define    	MODULEQUITRUNMODE          					1012
#define    	MODULEENTERCONFIGMODE	  					1013
#define    	MODULEQUITCONFIGMODE		  				1014
#define    	MODULEENTERTESTMODE		  					1015
#define    	MODULEQUITTESTMODE		  					1016
#define    	MODULEENTERCALIBRATIONMODE 					1017
#define    	MODULEQUITCALIBRATIONMODE  					1018
#define		XCHANNELENTERBYPASS             			1209
#define		XCHANNELQUITBYPASS             				1210
#define		PHASELOST									1211
#define		XCHANNELENTERNOTOKSTATUS					1212
#define		XCHANNELQUITNOTOKSTATUS   					1213
#define		SIGNALBOARDPOSITIVEFIVEVLAPSE				1214
#define   	SIGNALBOARDPOSITIVEFIFTEENVLAPSE			1215
#define		SIGNALBOARDNEGATIVETWENTYFOURVLAPSE			1216
#define		SIGNALBOARDPOSITIVEFOURPOINTFIVEVLAPSE	  	1217
#define		SIGNALBOARDNEGATIVETWENTYTWOVLAPSE	  		1218
#define		SIGNALBOARDPOSITIVETHREEPOINTTHREEVLAPSE	1219
#define		SIGNALBOARDPOSITIVETHREEVLAPSE	 			1220



										
//-------------------------------------------------------------------------------------
//本模块函数的声明      由于本文件是框架文件所以用到函数都在包含的各个文件之中
//-------------------------------------------------------------------------------------
void SetSystemOkStatusMain(unsigned char uchOkStatus);
void SetChannelOkStatusMain(unsigned char uchChannel,unsigned char uchOkStatus);
void SetPowerStatusMain(unsigned char uchPowerStatus);
void SetAlarmStatusMain(unsigned char uchChannel, unsigned char uchAlarmStatus);	 
void SetCurrentMeasureValueMain(unsigned char uchChannel,float iValue);
void SetPercentValueMain(unsigned char uchChannel,float iValue);
void SetGapVoltageMain(unsigned char uchChannel,int iValue);
void SetHWTripleStatusMain(unsigned int uchHWTripleStatus)	;		
void SetHWBypassStatusMain(unsigned char uchHWBypassStatus);		
void SetModuleStatusMain(unsigned char uchModuleStatus);	
void SetCalibrationStatusMain(unsigned char uchChannel, unsigned char uchCalibrationStatus);		 
void SetSampleCompleteStatusMain(unsigned char uchCompleteStatus);
void SetSystemStatusMain(void);				  
unsigned int SensitiveChange(unsigned int Sensitive,unsigned int uiUnit, unsigned int uiChannelType);
unsigned int UnifyUnit(int iValue, int iExponentValue, unsigned int uiUnit);
void InitAlarmPara(void);
void InitDAPara(void);
void InitChannelStatusPara(void);
void InitADPara(void);
void InitFramemoduleParameters(void);
void MainSignalProcess(void) ;
unsigned char ChannelStatus(unsigned char uchChannel);
void CaculateTripleStatus(unsigned char uchChannel);
unsigned char JudgeTripleStatus(unsigned char uchChannel);
void SetDAFullCountResultMain(unsigned char uchChannel, unsigned int uiDACountValue);
void SetDAZeroCountResultMain(unsigned char uchChannel, unsigned int uiDACountValue);
void SetVibADZeroCountResultMain(unsigned char uchChannel, unsigned int uiVibADCountValue);
void SetVibADFullCountResultMain(unsigned char uchChannel, unsigned int uiVibADCountValue);
void SetDisADZeroCountResultMain(unsigned char uchChannel, unsigned int uiDisADCountValue);
void SetDisADFullCountResultMain(unsigned char uchChannel, unsigned int uiDisADCountValue);
void JudgeBypassStatus(unsigned char uchChannel);
void CaculateReportMeasureValue(unsigned char uchChannel);
void CaculateReportGapValue(unsigned char uchChannel);
void JudgeAndReportAlertEvenStatus(unsigned char uchChannel);
void InitFramemoduleVariable(void);
void JudgeBypassFlag(unsigned char uchChannel);
void JudgeCPUSituationFlag(void);
void StopSelfLEDControl(void);
void StartSelfLEDControl(void);
void SetSelfTestControlStatusMain(unsigned char uchSelfTestStatus);
void CaculateStartReportTime(void);
void DelayTimeReportModuleType(void);
void RuningLEDControl(void);
void SetRAMLostStatusMain(unsigned char uchRAMLostFlag);
void SetFLASHLostStatusMain(unsigned char uchFLASHLostFlag);
void SetModuleNewConfigStatusMain(unsigned char uchModuleNewConfigFlag);
void JudgeChannelParaRight(unsigned char uchChannel);
void SetModuleChannelParaStatusMain(unsigned char uchModuleChannelParaFlag);
void RunChannelParaJudge(void);
void JudgeModuleStatus(void);
//void SetSoftBypassTotalStatus(unsigned char uchSoftBypassTotalFlag);
//void SetSoftTripleTotalStatus(unsigned char uchSoftTripleTotalFlag);
void JudgeAndReportSpecialSystemEvenStatus(unsigned char uchChannel);
void JudgeAndReportCommonSystemEvenStatus(void);
void LEDConfigControl(void);
void SetGAPZeroCountResultMain(unsigned char uchChannel, unsigned int uiGAPCountValue);
void SetGAPFullCountResultMain(unsigned char uchChannel, unsigned int uiGAPCountValue);
void SetFullScale(unsigned int uiFullScaleValue);
unsigned char ReadCANAddress(void);
void ClearSelfFlag(void);
void SetLittleADZeroCountResultMain(unsigned char uchChannel, unsigned int uiLittleADCountValue);
void SetLittleADFullCountResultMain(unsigned char uchChannel, unsigned int uiLittleADCountValue);

void CaculateHotResetStartReportTime(void);


void InitHotResetFramPara(void);
void SetHotResetFlag(unsigned char uchHotResetFlag);

void SetNotOKToOKFlag(unsigned char uchChannel,unsigned char uchNOTOKTOOKFlag);
void SetNOTOKGapVoltageMain(unsigned char uchChannel,int iValue);

void CaculateEnableStatus(unsigned char uchChannel);		//&&&&

void ClearModuleNewConfigStatus(void);   //20080514
void JudgeChannelPara(void); //20080528

#endif

⌨️ 快捷键说明

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