?? tem_meature.c
字號:
//====================================================================================
//文 件 名: Tem_Meature.c
//功能描述: 溫度測量驅動程序
//維護記錄: 2006-6-27 v1.0 by hongyan.Feng
//====================================================================================
#include "SPCE061A.h"
extern unsigned int ADGet(void); //申明熱敏電阻上分到電壓的A/D轉換函數
unsigned int ADData,Counter;
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(Counter==10)
{
__asm("int off");
ADData = ADData/10; //取10次測量數據的平均值
iADData = iADData+ADData*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;
}
Counter = 0;
ADData = 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 + -