问题描述:
如何用51单片机读取ds18b20的取负温度?求教.
18b20的ram中,前两个字节放的是温度信息.其中第二个字节的高五位是符号位,当温度为正的时候,高五位的字节是0,当温度为负的时候,高五位字节为一.当温度为正的时候,只需要将两个字节的数合到一个字节,然后乘以0.0625就是实际的温度.
那么,当温度为负的时候,该怎么读取温度呢?是将两个字节合为一个字节,然后先取反,再加一,最后再和0.0625相乘吗?这样得出的结果就是实际的负温度值吗?
如果我说的问题一中的答案是对的,那么如果用液晶或者数码管显示负号.
是不是要自己在程序里判断18b20的第二个字节的高五位是不是为一.然后再
写出一个显示符号的程序啊?上面那个最后得出的结果,应该没有符号吧?
18b20的ram中,前两个字节放的是温度信息.其中第二个字节的高五位是符号位,当温度为正的时候,高五位的字节是0,当温度为负的时候,高五位字节为一.当温度为正的时候,只需要将两个字节的数合到一个字节,然后乘以0.0625就是实际的温度.
那么,当温度为负的时候,该怎么读取温度呢?是将两个字节合为一个字节,然后先取反,再加一,最后再和0.0625相乘吗?这样得出的结果就是实际的负温度值吗?
如果我说的问题一中的答案是对的,那么如果用液晶或者数码管显示负号.
是不是要自己在程序里判断18b20的第二个字节的高五位是不是为一.然后再
写出一个显示符号的程序啊?上面那个最后得出的结果,应该没有符号吧?
问题解答:
我来补答展开全文阅读