气温波动c语言编程,用MEGA16 AD 测量-20~400°C温度,温度波动大(内有原理图和程序)没找到原因??传感器PT100...

我用MEGA16 AD 测量-20~400°C   温度波动较大,有时有6~7°C。我第一次做PT100,搞几天了,没找到原因。那位前辈有这方便的经验,请指点,谢谢了!

参考电压内部2.56V.原理图如下,调试时将-20°C 的阻值输入,输出为0V,输入,将400°C 的阻值输入,输出2.56V.

thread-875356-1-1.html

/********************************************************************

函 原 型:unsigned int filter(unsigned int *p)

功    能:温度AD滤波

说    明:采样10次,去掉最大值和最小值求平均数

涉及变量:P为缓存数组

入口参数:无

出口参数:无

设    计:                 日    期:2006-08-10

修    改:                 日    期:

***********************************************************************/

unsigned int filter(unsigned int *p)

{

unsigned int temp;

signed char i;

//  p=AD_data;

for(i=1;i<10;i++)

{

if(*(p+i-1)>*(p+i))

{

temp=*(p+i-1);

*(p+i-1)=*(p+i);

*(p+i)=temp;

}

}

for(i=9;i>0;i--)

{

if(*(p+i-1)>*(p+i))

{

temp=*(p+i-1);

*(p+i-1)=*(p+i);

*(p+i)=temp;

}

}

return ((*(p+1)+*(p+2)+*(p+3)+*(p+4)+*(p+5)+*(p+6)+*(p+7)+*(p+8))/8);

}

/******************************************************************************

功能:温度测量转换

说明:温度段分8段,输入一个AD值,然后计算出温度.步进放大10倍处理

*******************************************************************************/

signed int PT100_Change(unsigned int AD)

{

signed int tp_temp=0;

if(AD<52)               //基度-20 --0  步进2.6

{

tp_temp=(20-(AD*10/26))*-1;

}

if((AD>=52)&&(AD<180))  //基度0 --50  步进2.6

{

tp_temp=(AD-52)*10/26;

}

if((AD>=180)&&(AD<306)) //基度50 --100  步进2.5

{

tp_temp=(AD-144)*10/25+50;

}

if((AD>=306)&&(AD<431)) //基度100 --150 步进2.5

{

tp_temp=(AD-306)*10/25+100;

}

if((AD>=431)&&(AD<553)) //基度150 --200 步2.4

{

tp_temp=(AD-431)*10/24+150;

}

if((AD>=553)&&(AD<674)) //基度200 --250 步进2.4

{

tp_temp=(AD-553)*10/24+200;

}

if((AD>=674)&&(AD<792)) //基度250 --300 步进2.4

{

tp_temp=(AD-674)*10/24+250;

}

if((AD>=792)&&(AD<909)) //基度300 --350 步进2.3

{

tp_temp=(AD-792)*10/23+300;

}

if((AD>=909)&&(AD<1024)) //基度350 ---400 步进2.3

{

tp_temp=(AD-909)*10/23+350;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值