郭天祥写的数码管显示ds18b20温度数值转换(msp430单片机) 哪位高手给解释一下后面的温度转换,谢谢!

2024-11-15 06:48:58
推荐回答(2个)
回答1:

从DS18B20读取的温度数据,共有11bit:BIT10~BIT0。

每一位,都代表一种十进制数:
BIT0为1,就代表:0.0625;
BIT1为1,就代表:0.125;
BIT2为1,就代表:0.25;
……
为0就是代表0。

本程序,就是分别判断 BIT0、BIT1、...BIT10,
如果为1则然后在十进制数中,分别加上625、125、25...。

如下就是判断 BIT0 的:
if(temper & BIT0)
{
dN[0] = 5;
dN[1] = 2;
dN[2] = 6;
}

如下就是判断 BIT1 的:
if(temper&BIT1)
{
dN[1] += 5;
dN[2] += 2;
dN[3] += 1;
}

……

说实话,还从来没有见过有谁,竟能编写出来这么笨的程序。

回答2:

这算法还真是一点也没明白,求解释。