求一个ds18b20例案,正负数都可以显示,精度到0.1的

2020-02-01 16:34发布

最简单的skip rom方案 或者给我讲一下最后接收到的两个byte的数据怎么处理就行了
谢谢了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
24条回答
xiaoaf
2020-02-03 19:05
void get_tem()
{
        uchar teml,temh;
        reset();
        Write_Byte(0xcc);//跳过读序列号的操作
        Write_Byte(0x44);//启动温度转换
        delay_ms(750);//750ms
        reset();
        Write_Byte(0xcc);
        Write_Byte(0xbe);//读取温度转换结果
        teml=Read_Byte();
        temh=Read_Byte();
       
        if((temh&0xf0)==0xf0)//如果是负温度
                {
                        flag_low=1;
                        temper=(~((temh)*256+(teml))+1)*6.25;
                }

        else
                temper=(temh*256+teml)*6.25;//放大100倍
}

一周热门 更多>