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

📄 temp.c

📁 这是一款温度采集并用液晶显示温度的程序
💻 C
字号:
#include "SPCE061A.h"
#include "M.h"
#include "SPLC501User.h"

unsigned int temp;
float Degree;
float Temp_Degree(float Vol_Value)
{	
	float Vol=Vol_Value;
//	float Vol=0;
//  float Vol=0;
	int i_of_V_above,j_of_V_above;
	int i_of_V_below,j_of_V_below;
	int CirNum;
//	float Degree;
	float Deci;
//	int temp;
	if(Vol<0.5252)
		i_of_V_above=0;
	else
		if(Vol>=0.5252 && Vol<0.6955)i_of_V_above=2;
	else
		if(Vol>=0.6955 && Vol<1.0712)i_of_V_above=3;
	else
		if(Vol>=1.0712 && Vol<1.4377)i_of_V_above=4;
	else
		if(Vol>=1.4377 && Vol<1.8007)i_of_V_above=5;
	else
		if(Vol>=1.8007 && Vol<2.2065)i_of_V_above=6;
	else
		if(Vol>=2.2065 && Vol<2.5772)i_of_V_above=7;
	else
		if(Vol>=2.5772 && Vol<2.9305)i_of_V_above=8;
	else
		if(Vol>=2.9305 && Vol<3.2417)i_of_V_above=9;
	else
		i_of_V_above=10;

	switch(i_of_V_above)
	{
	case 0:j_of_V_above=2;break;
	case 2:
		for(CirNum=6;CirNum<=9;CirNum++)
		if(Vol<=Temp_Volt[i_of_V_above][CirNum]){j_of_V_above=CirNum;break;}
		if(CirNum==10){i_of_V_above=3;j_of_V_above=0;}//如果比[2][9]大,那么一定比[3][0]小,下面同理
		break;
	case 3:
		for(CirNum=1;CirNum<=9;CirNum++)
		if(Vol<=Temp_Volt[i_of_V_above][CirNum]){j_of_V_above=CirNum;break;}
		if(CirNum==10){i_of_V_above=4;j_of_V_above=0;}
		break;
	case 4:
		for(CirNum=1;CirNum<=9;CirNum++)
		if(Vol<=Temp_Volt[i_of_V_above][CirNum]){j_of_V_above=CirNum;break;}
		if(CirNum==10){i_of_V_above=5;j_of_V_above=0;}
		break;
	case 5:
		for(CirNum=1;CirNum<=9;CirNum++)
		if(Vol<=Temp_Volt[i_of_V_above][CirNum]){j_of_V_above=CirNum;break;}
		if(CirNum==10){i_of_V_above=6;j_of_V_above=0;}
		break;
	case 6:
		for(CirNum=1;CirNum<=9;CirNum++)
		if(Vol<=Temp_Volt[i_of_V_above][CirNum]){j_of_V_above=CirNum;break;}
		if(CirNum==10){i_of_V_above=7;j_of_V_above=0;}
		break;
	case 7:
		for(CirNum=1;CirNum<=9;CirNum++)
		if(Vol<=Temp_Volt[i_of_V_above][CirNum]){j_of_V_above=CirNum;break;}
		if(CirNum==10){i_of_V_above=8;j_of_V_above=0;}
		break;
	case 8:
		for(CirNum=1;CirNum<=9;CirNum++)
		if(Vol<=Temp_Volt[i_of_V_above][CirNum]){j_of_V_above=CirNum;break;}
		if(CirNum==10){i_of_V_above=9;j_of_V_above=0;}
		break;
	case 9:
		for(CirNum=1;CirNum<=9;CirNum++)
		if(Vol<=Temp_Volt[i_of_V_above][CirNum]){j_of_V_above=CirNum;break;}
		break;
	case 10:j_of_V_above=0;break;
	default:
		break;
	}


	if(j_of_V_above!=0)
	{
		i_of_V_below=i_of_V_above;
		j_of_V_below=j_of_V_above-1;
	}
	else
	{
		i_of_V_below=i_of_V_above-1;
		j_of_V_below=9;
	}
	
	if(i_of_V_above==0 && j_of_V_above==2)
		return Degree=0.0;
	else if(i_of_V_above==10 && j_of_V_above==0)
	{
		Deci=(Vol-Temp_Volt[i_of_V_below][j_of_V_below])/
		(3.2850f-Temp_Volt[i_of_V_below][j_of_V_below]);

		temp=(int)(Deci*10);
		return Degree=i_of_V_below*10+j_of_V_below+(float)(temp)/10;
		
	}
	else
	{
		Deci=(Vol-Temp_Volt[i_of_V_below][j_of_V_below])/
		(Temp_Volt[i_of_V_above][j_of_V_above]-Temp_Volt[i_of_V_below][j_of_V_below]);
		temp=(int)(Deci*10);
		return Degree=i_of_V_below*10+j_of_V_below+(float)(temp)/10;
	}
}

⌨️ 快捷键说明

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