如何用51单片机读取ds18b20的取负温度?求教。
18b20的ram中,前两个字节放的是温度信息。其中第二个字节的高五位是符号位,当温度为正的时候,高五位的字节是0,当温度为负的时候,高五位字节为一。当温度为正的时候,只...
18b20的ram中, 前两个字节放的是温度信息。其中第二个字节的高五位是符号位,当温度为正的时候,高五位的字节是0,当温度为负的时候,高五位字节为一。当温度为正的时候,只需要将两个字节的数合到一个字节,然后乘以0.0625就是实际的温度。
问题1:那么,当温度为负的时候,该怎么读取温度呢?是将两个字节合为一个字节,然后先取反,再加一,最后再和0.0625相乘吗?这样得出的结果就是实际的负温度值吗?
问题2:如果我说的问题一中的答案是对的,那么如果用液晶或者数码管显示负号。
是不是要自己在程序里判断18b20的第二个字节的高五位是不是为一。然后再
写出一个显示符号的程序啊?上面那个最后得出的结果,应该没有符号吧?
问题3:如果我上两个问题理解的不对,还请大神帮忙解答一下。谢谢! 展开
问题1:那么,当温度为负的时候,该怎么读取温度呢?是将两个字节合为一个字节,然后先取反,再加一,最后再和0.0625相乘吗?这样得出的结果就是实际的负温度值吗?
问题2:如果我说的问题一中的答案是对的,那么如果用液晶或者数码管显示负号。
是不是要自己在程序里判断18b20的第二个字节的高五位是不是为一。然后再
写出一个显示符号的程序啊?上面那个最后得出的结果,应该没有符号吧?
问题3:如果我上两个问题理解的不对,还请大神帮忙解答一下。谢谢! 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询