如何用51单片机读取ds18b20的取负温度?求教.
来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/15 07:11:14
如何用51单片机读取ds18b20的取负温度?求教.
18b20的ram中,前两个字节放的是温度信息.其中第二个字节的高五位是符号位,当温度为正的时候,高五位的字节是0,当温度为负的时候,高五位字节为一.当温度为正的时候,只需要将两个字节的数合到一个字节,然后乘以0.0625就是实际的温度.
那么,当温度为负的时候,该怎么读取温度呢?是将两个字节合为一个字节,然后先取反,再加一,最后再和0.0625相乘吗?这样得出的结果就是实际的负温度值吗?
如果我说的问题一中的答案是对的,那么如果用液晶或者数码管显示负号.
是不是要自己在程序里判断18b20的第二个字节的高五位是不是为一.然后再
写出一个显示符号的程序啊?上面那个最后得出的结果,应该没有符号吧?
18b20的ram中,前两个字节放的是温度信息.其中第二个字节的高五位是符号位,当温度为正的时候,高五位的字节是0,当温度为负的时候,高五位字节为一.当温度为正的时候,只需要将两个字节的数合到一个字节,然后乘以0.0625就是实际的温度.
那么,当温度为负的时候,该怎么读取温度呢?是将两个字节合为一个字节,然后先取反,再加一,最后再和0.0625相乘吗?这样得出的结果就是实际的负温度值吗?
如果我说的问题一中的答案是对的,那么如果用液晶或者数码管显示负号.
是不是要自己在程序里判断18b20的第二个字节的高五位是不是为一.然后再
写出一个显示符号的程序啊?上面那个最后得出的结果,应该没有符号吧?
判断是否是负,就是取高几位的读取值采用与的方式判断,比如(000) 11111 00001000,那么高5位可以这样弄,tempH&0x1f,如果这个值=1;说明是负的,否则就是正的啊,不过有一点,取反是对的,还要加1啊,记得哦.
至于在LCD中显示的,确实是按你说的那样,直接写上一个符号即可.
至于在LCD中显示的,确实是按你说的那样,直接写上一个符号即可.
如何用51单片机读取ds18b20的取负温度?求教.
请教关于DS18B20温度传感器的温度读取
谁能告诉我单片机从ds18b20中读取温度的原理,是怎样将ds18b20中输出的一位信号变为多位的.
51单片机与DS18B20程序
ds18b20负温度显示问题
基于单片机的电池监控系统,其中温度采集电路运用到了DS18B20温度传感器
用51单片机加DS18B20构成的温度检测系统和用热敏电阻加运放构成的电路,哪个反映时间快些?
DS18b20中的温度值单片机可以直接用来运算吗?
在运行数字温度计仿真(proteus)时,怎样初始化温度? 为什么只显示0,我的DS18B20读取温度程序应该没问题
DS18B20温度显示的问题
关于ds18b20的温度补偿
ds18b20温度是几位的呀