rmml.net
当前位置:首页 >> DS18B20温度转换 >>

DS18B20温度转换

把tplsb和tpmsb都是8位的合成一个16位的有符号数tt;temp为浮点数 t=tpmsb

高五位S为符号位,分辨率为0.0625。正温度把16进制数转成10进制即可;负温度把16进制数取反后加1再转成10进制数,第一个是00FA是(15*16+10)*0.0625=15.62度,第二个是0032是(3*16+2)*0.0625=3.125度(负的)

如下图所述

请仔细看芯片手册,转换时间是跟据你所需要的精度而定的,DS18B20最少要93.57ms(9位时),最大750ms(12位时).在protues仿真的时候可以不按手册时间,但实际电路中一定要严格按照芯片手册要求来进行,否则温度转换不成功。如果等待的过程中,其...

举例说明:八位二进制为一字节,那最大为(1111 1111)255.,先将这个数除100得到百位2,然后100取余为55,将取余后的值55再除以10得到十位5,再用10取余得到个位数字5,那十进就为255; 再比如说二进制为(0001 1101)29,先将这个数除100得到...

根据你的叙述分析,把高低字节读出来了,用的是12位方式,这时候DS18B20的分辨率是0.0625度,你说DS18B20精度是±0.5度,是错误的,DS18B20精度最高是±1度。 转化为实际温度的方法是先判断高字节的D7、D6、D5、D4、D3为,如果为11111,温度为负,...

没事儿不要让51做浮点运算这种吃力不讨好的事情。 乘以0.0625的运算实际上就是除以16的运算。要搞清楚单片机适合做什么、不适合做什么…… 百度嫌我字数不够

四舍五入,这个程序是有错的。 应该在把 8 位数据,合成了之后,再进行。

可以直接读取,有的时候第一次读取出来的是不正常的,你可以在软件里做个判断,如果值不正常重新读或者干脆直接连续读两次,直接取第二次的值就可以了。

不需要, DS18B20为温度传感器, 可以直接跟单片机通信发送和接收温度数据, 有用望采纳,不满意可以追问。

网站首页 | 网站地图
All rights reserved Powered by www.rmml.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com