作业帮 > 综合 > 作业

ds18b20里的 温度值正负判断 为什么要判断大于6348 ,为什么取这个值?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/11 03:39:55
ds18b20里的 温度值正负判断 为什么要判断大于6348 ,为什么取这个值?
ds18b20里的 温度值正负判断 为什么要判断大于6348 ,为什么取这个值?
if(tem>6348) // 温度值正负判断
其实不一定要大于6348

根据手册,要是温度为负值,则寄存器的高八位的高五位全为1,加入你把采集到的数据合成一个unsigned int 型,位tem,则temp为 1 1 1 1 1 X X X     X X X X X X X X,必定大于 0 0 0 0 0 1 1 1
     1 1 1 1 1 1 1 1 (11个1),为2047,所以你只要判断temp>(2047~63489(二进制数为 11111 000 00000001))
不明白的可以看下图