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

📄 tem_meature.c

📁 本文介绍了利用两套SPCE061A精简开发板(简称61板)和两套传感器模组设计的遥控环境测量系统方案:其中利用一套61板作为主控制器
💻 C
字号:
//====================================================================================
//文 件 名: Tem_Meature.c
//功能描述: 温度测量驱动程序
//维护记录: 2006-6-27   v1.0         by hongyan.Feng
//====================================================================================
#include "SPCE061A.h"

extern unsigned int ADGet(void);			//申明热敏电阻上分到电压的A/D转换函数
unsigned int TADData,TCounter;

float V[125]={1.576304,1.558983,1.541521,1.523924,1.506198,1.488351,1.470389,1.452319,1.434150,1.415889,
              1.397544,1.379122,1.360632,1.342083,1.323481,1.304837,1.286158,1.267453,1.248731,1.230000,
              1.230000,1.211269,1.192547,1.173842,1.155163,1.136519,1.117917,1.099368,1.080878,1.062456,
              1.044111,1.025850,1.007681,0.989611,0.971650,0.953802,0.936076,0.918479,0.901017,0.883696,
              0.866524,0.849505,0.832646,0.815952,0.799428,0.783080,0.766911,0.750927,0.735131,0.719528,
              0.704121,0.688913,0.673907,0.659107,0.644514,0.630131,0.615961,0.602004,0.588263,0.574738,
              0.561431,0.548342,0.535473,0.522823,0.510392,0.498181,0.486190,0.474417,0.462862,0.451525,
              0.440405,0.429499,0.418808,0.408329,0.398061,0.388003,0.378152,0.368507,0.359066,0.349826,
              0.340785,0.331941,0.323291,0.314834,0.306566,0.298485,0.290588,0.282873,0.275336,0.267976,
              0.260789,0.253772,0.246923,0.240239,0.233717,0.227353,0.221146,0.215092,0.209187,0.203431,
              0.197819,0.192348,0.187016,0.181821,0.176758,0.171826,0.167021,0.162341,0.157783,0.153345,
              0.149023,0.144815,0.140719,0.136734,0.132852,0.129076,0.125401,0.121825,0.118346,0.114962,
              0.111669,0.10847,0.105353,0.1023233,0.099378}; //用来存放0~125摄氏度对应热敏电阻分到的标定电压值
//====================================================================================
//语法格式: void Temp_Init(void) 
//功能描述: 温度测量初始化
//入口参数: 无
//出口参数: 无
//维护记录: 2006年6月27         by hongyan.Feng
//====================================================================================
void Temp_Init(void)                     
{
	*P_IOA_Dir &= 0xfffe;						//初始化IOA0(LINE1)为悬浮输入口
	*P_IOA_Attrib |= 0x0001;
	*P_IOA_Data &= 0xfffe;
}
//====================================================================================
//语法格式: unsigned int Temp_Measure(void) 
//功能描述: 温度测量,测量得到的数据存放在iTemp中,并语音播放这个数据
//入口参数: 无
//出口参数: 温度值
//维护记录: 2006年6月27         by hongyan.Feng
//====================================================================================
unsigned int Temp_Measure(void)
{
	unsigned int x,iTemp,Flag;					//ADData用来存放A/D转换的数据,x用来循环,iTemp用来存放温度值
	float iADData;								//iADData用来存放转换后的电压数据
	  
	iADData = 0.0000;							//初始化为0
	Flag = 1;
		
	Temp_Init();								//端口初始化
	
	*P_INT_Ctrl = 0x0010;
	__asm("int irq");
	
	while(Flag)
	{
		if(TCounter==10)
		{
			__asm("int off");
			TADData = TADData/10;					//取10次测量数据的平均值  
			iADData = iADData+TADData*3.3/0x03ff;//把A/D转换后数据计算成电压,并进行累加 
			for(x=0;x<125;x++)					//查表,根据测量到的电压计算温度值
			{
 				if(iADData<V[x]&&iADData>V[x+1])
					iTemp = x;					//保存温度值
				*P_Watchdog_Clear = 0x0001;			
			}
			TCounter = 0;
			TADData = 0;
			Flag = 0;
		}
		*P_Watchdog_Clear = 0x0001;				//清看门狗
	}
	return iTemp;								//返回温度值
}

//====================================================================================
//语法格式: void Delay(unsigned int i) 
//功能描述: 延时函数
//入口参数: i延时时间
//出口参数: 无
//维护记录: 2006年6月27         by hongyan.Feng
//====================================================================================
void Delay(unsigned int i)
{
	int m,n;
	for(m=0;m<i;m++)
		for(n=0;n<0x03ff;n++)
			*P_Watchdog_Clear = 0x0001;
}


⌨️ 快捷键说明

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