打印

请问DS18B20设置分辨率的问题

[复制链接]
8706|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wkgong|  楼主 | 2012-3-12 20:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用51单片机与DS18B20搭建了一个温度测量电路,能够正常测出温度。因在使用中不必要12位的分辨率(温度转换时间太长需750mms),想把分辨率改为9位就行了。但是,送入复位、忽略ROM、4E写暂存器指令接着送入TH、TL的数据和“1F”配置寄存器数据后,测量的温度还是以12位分辨率时显示,好像根本就没对DS18B20进行分辨率的配置。请问各位怎样才能正确配置DS18B20的分辨率。谢谢!

相关帖子

沙发
gyjolovero| | 2012-3-13 00:22 | 只看该作者
这个我做成功过!!数据是否写进去啦没有你可以读出来看看,写完后紧接着把1F配置寄存器数据读出来看看是不是自己写的数据!!

使用特权

评论回复
板凳
czchenchen| | 2014-1-17 14:04 | 只看该作者
我也碰到了同样的问题,9位分辨率写入后立即做读操作,确认分辨率写进去了,但是读出的温度值还是12位的温度值,有人碰到此类问题吗?怎么解决的啊?

使用特权

评论回复
地板
ningling_21| | 2014-1-17 14:28 | 只看该作者
数据位数不会变,但最后小数点部分,9位数据时,只有0或5两种可能。
否则,小数部分有16种数据...

使用特权

评论回复
5
czchenchen| | 2014-1-17 14:42 | 只看该作者
ningling_21,不是太明白你说的意思
12位分辨率时,bit0 是2^(-4)
9位分辨率时,bit0是2^(-1)

我目前读出的温度值不管12位或是9位分辨率,值都是默认12位分辨率的值00B8(11.5度)

使用特权

评论回复
6
ningling_21| | 2014-1-17 14:58 | 只看该作者
czchenchen 发表于 2014-1-17 14:42
ningling_21,不是太明白你说的意思
12位分辨率时,bit0 是2^(-4)
9位分辨率时,bit0是2^(-1)

9位数据时,会不会出现11.0625度?

使用特权

评论回复
7
czchenchen| | 2014-1-17 15:02 | 只看该作者
找到原因所在了,和楼上说的一样,可是这个和数据手册不符嘛 谢谢ningling_21!

使用特权

评论回复
8
呆呆呆呆子| | 2015-6-22 16:47 | 只看该作者
czchenchen 发表于 2014-1-17 15:02
找到原因所在了,和楼上说的一样,可是这个和数据手册不符嘛 谢谢ningling_21! ...

什么原因,。。。
我一直搞不懂,不是说分辨率是0.0625么,我测出来的小数部分的结果只有0和5

使用特权

评论回复
9
kooloo| | 2016-11-28 13:31 | 只看该作者
呆呆呆呆子 发表于 2015-6-22 16:47
什么原因,。。。
我一直搞不懂,不是说分辨率是0.0625么,我测出来的小数部分的结果只有0和5 ...

Datasheet上有一段话,关于此问题  意思是9Bit 转化 Bit0~Bit2是无效数据位   The DS18B20 output temperature data is calibrated in degrees centigrade; for Fahrenheit applications, a
lookup table or conversion routine must be used. The temperature data is stored as a 16-bit sign-extended
two’s complement number in the temperature register (see Figure 2). The sign bits (S) indicate if the
temperature is positive or negative: for positive numbers S = 0 and for negative numbers S = 1. If the
DS18B20 is configured for 12-bit resolution, all bits in the temperature register will contain valid data.
For 11-bit resolution, bit 0 is undefined. For 10-bit resolution, bits 1 and 0 are undefined, and for 9-bit
resolution bits 2, 1 and 0 are undefined. Table 2 gives examples of digital output data and the
corresponding temperature reading for 12-bit resolution conversions.

使用特权

评论回复
10
jefffu| | 2019-8-19 18:17 | 只看该作者
我的就是设置 9bit分辨率设置不成功,现在读温度就是太慢了,750ms 才能转化一次,想改成95ms  转化一次  但按上面的设置了 也是不 成功??  不知道什么原因???求大神指导

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

20

帖子

0

粉丝