я тож с такой фигней столкнулся, попробуй
int th,tl; //значения регистров температуры
float tc; //температура в градусах цельсия (float)
th=w1_read(); //чтение регистров DS18B20
tl=w1_read(); //
tl=(tl<<8)|th; //сложение слов в одно
tc=(float)(tl)/16; //преобразование в float
http://www.jensens.org/tim/read-temperature.txt