很显然啊,我就看到一点不对的
zhuanhuan()
{
……
k=h[0]>>4; //低位右移4位,舍弃小数部分
k=h[1]<<4; //高位左移4位,舍弃符号位
k=k|h[0];
……
}
我绝对你这个 h[0]的值根本就没变啊, 第一句应该改为 h[0]=h[0]>>4 ,这样才能取得他的高四位值。
如果你读取的温度值仍然不对,那你就用数字示波器测试你的延时时间,ds18b20对延时还是有要求的。http://hi.baidu.com/%C9%F1%BE%AD%BB%F0%B9%E2/blog/item/2489f910c027ca986438db69.html 上面有硬件延时的方法,你可参考一下!
希望对你有所帮助~
1111111