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

📄 airtempb.h

📁 Fujitsu MB89P475的应用实例
💻 H
字号:
#include "Sersor.c"
unbyte ReadADValue(unbyte CheckAins);   //返回i=十六进制温度值  CheckAins 是当前要使用的通道
byte LetHexToTemp(unbyte AD_Hex,unbyte AllDot,unbyte StartDot,unbyte Tables,byte Remove);//返回k=十进制温度值
			//AD_Hex---->AD采样的十六进制数          AllDot---->当前通道总点数 
			//StartDot--->查表起始点                 Tables-->当前采样通道排号(0,1,2.....)
			//Remove---->(当前通道排号为n)以每组表格120点为基准,当前要查的表格以前所有点与((n-1)*120)的差值
byte LoadTemp(void);//返回k=十进制温度值

//=======================================

void AirTemp()
{
	if (Eenble_A_D_WorkFlag==0) return;
	Eenble_A_D_WorkFlag=0;
	AD_STARTBIT=true;	
	if (A_DCounter==0)
		{A_DSampleValue1=ReadADValue(0);A_DCounter++;return;}
	if (A_DCounter==1)	
		{A_DSampleValue2=ReadADValue(0);A_DCounter++;return;}
	if (A_DCounter==2)
		{A_DSampleValue3=ReadADValue(0);A_DCounter++;return;}
	if (A_DCounter==3)	
		{
			A_DSampleValue4=ReadADValue(0);
			A_DCounter=0;
			AccountAverage();
		}
	
	InRoomTemp=LetHexToTemp(A_DAverageValue,120,j,0,0);
}


AccountAverage()
{
	if (A_DSampleValue1<A_DSampleValue2)
		{i=A_DSampleValue1;A_DSampleValue1=A_DSampleValue2;A_DSampleValue2=i;}

	if (A_DSampleValue3<A_DSampleValue4)
		{i=A_DSampleValue3;A_DSampleValue3=A_DSampleValue4;A_DSampleValue4=i;}
	if (A_DSampleValue1<A_DSampleValue3)
	
		{i=A_DSampleValue1;A_DSampleValue1=A_DSampleValue3;A_DSampleValue3=i;}
	if (A_DSampleValue2<A_DSampleValue4)
		{i=A_DSampleValue2;A_DSampleValue2=A_DSampleValue4;A_DSampleValue4=i;}
		
	A_DAverageValue=(A_DSampleValue2+A_DSampleValue3)/2;
}



unbyte ReadADValue(unbyte CheckAins)
{
	AD_ANS=CheckAins;
	WDTC.byte=0x05;
	while (AD_ADMV)	{;}
	i=ADDV.word/4;
	return i;
}





byte LetHexToTemp(unbyte AD_Hex,unbyte AllDot,unbyte StartDot,unbyte Tables,byte Remove)
{
	j=0;
	if (!Channels1TransingFlag)
		{
			Channels1TransingFlag=true;
			if (SersorTable[j+Tables*120+Remove]>=AD_Hex)
				{
					LoadTemp();
					return SignedData;
				}
		}
	for (j=1;j<=AllDot;j++)
		{
			WDTC.byte=0x05;
			if (SersorTable[j+Tables*120+Remove]>AD_Hex)
				{
LoopLoadTemp:					
					j--;
					LoadTemp();
					nop;
					return SignedData;
				}
		}	
	goto LoopLoadTemp;	
}
//---------------------------------------------------------------------
byte LoadTemp()
{
	SignedData=j-30;

	LcdAllLightFlag=true;		

	if (LcdAllLightFlag)
		{
			if (SignedData<10)
				{TempErrorFlag=1;SignedData=10;}
			else if (SignedData>60)
				{TempErrorFlag=1;SignedData=60;}
			else
				{TempErrorFlag=0;}	
		}
	Channels1TransingFlag=false;	
	return SignedData;
}




⌨️ 快捷键说明

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