本帖最后由 lmt50211 于 2014-6-4 18:04 编辑
一般情况我们都是使用八通道的方法。如图
ADC接法.JPG (58.56 KB, 下载次数: 0)
下载附件
2014-6-4 17:42 上传
有很多看不明白,现在上传程序,希望各位能解答一下温度转换部分。
/*********************temperature()******读温区温度*****************************/
uchar temperature(uchar x)
{
uchar i;
OU0838=1;
CL0838=0;
CS0838=0;
for(i=0; i<5; i++)
{
if(x&0x01)
{
IN0838=1;
}
else
{
IN0838=0;
}
_nop_();
_nop_();
_nop_();
_nop_();
CL0838=1;
_nop_();
_nop_();
_nop_();
_nop_();
CL0838=0;
x=x>>1;
}
_nop_();
_nop_();
_nop_();
_nop_();
for(i=0; i<8; i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
CL0838=1;
_nop_();
_nop_();
_nop_();
_nop_();
CL0838=0;
x=x<<1;
if(OU0838)
{
x+=1;
}
}
CS0838=1;
CL0838=1;
return(x);
}
void temp_process(void)//温度转换
{
t=temperature(0xe3);
if(t==255)
{
t=temperature(0xe9);
if(t==255)
{
t=temperature(0xf1);
if(t==255)
{
TANK=t;
}
else
{
TANK=t/3+165;
}
}
else
{
TANK=t/3+80;
}
}
else
{
TANK=t/3;
}
}
>>但是不知道此种接法的作用
这差分接法是用来得到 10-Bit 的总分辨率的,差分输入(+)端电压如果小於(-)端,ADC 结果将会是零。这接法是四组,用者只要检查那些组别差分输入ADC 结果是零就能给出额外 2bit 的值。
一周热门 更多>