haibinglong 发表于 2010-1-8 15:48:24

请教各位高手DS18B20的9位分辨率如何设置啊?

帮忙的,路过的,有事的,没事的,各位大哥大姐们,小弟正在弄DS18B20的实验,实验要求我用DS18B20的9位分辨率进行温度测量,小弟费劲了千辛万苦,也没有达到实验效果,希望各位好心人能给小弟点帮助,让我能够从痛苦的挣扎中解脱出来,在此小弟先谢过了!

dudu_q 发表于 2010-1-8 16:38:55

要达到什么效果啊?

haibinglong 发表于 2010-1-11 10:26:03

回复【1楼】dudu_q
-----------------------------------------------------------------------
DS18b20默认的情况下是12位数据采集,可实在12位的情况下,速率很慢,我的实验要求就是把速率提上来,采用9位数据采集

dudu_q 发表于 2010-1-11 15:54:56

一般情况下的温度值应为9 位(符号占1 位) , 但因符号位扩展成高8 位, 故以16 位补码形式读出。
哪里来的12位呢?

kaixinlaohe 发表于 2010-1-11 23:36:06

呵呵。我今天才做了。
步骤是:先写0x1f到配置寄存器,这就是9位,再保存到18B20EEPROM里面
再把第一步的程序注释掉,用你12位的程序读温度,你发现变成9位了。

kaixinlaohe 发表于 2010-1-11 23:36:51

还有一个方法就是取12位里面的9位。

kaixinlaohe 发表于 2010-1-11 23:37:41

速率的问题其是不大,你可以用定时的方式解决

haibinglong 发表于 2010-1-12 10:12:27

回复【4楼】kaixinlaohe
-----------------------------------------------------------------------

呵呵,谢谢你啊。不过你说的我有点不懂啊,“把第一步的程序注释掉”是什么意思啊?

haibinglong 发表于 2010-1-12 10:13:35

回复【3楼】dudu_q
-----------------------------------------------------------------------

DS18b20是9~12位可编程的

dudu_q 发表于 2010-1-14 11:43:14

以前做的时候还真没细看
又翻了一下
设置分辨率是设置存储器里面的第九个字节冗余检验字节
修改里面的R1和R0就可以设定分辨率了。

haibinglong 发表于 2010-1-14 17:57:59

回复【9楼】dudu_q
-----------------------------------------------------------------------

是啊,PDF里面说的轻松啊,实际操作起来好难啊!

helloshi 发表于 2010-1-14 18:03:06

enum ds18b20_bits {
   DS18B20_BITS_9   =   0x1F,
   DS18B20_BITS_10=   0x3F,
   DS18B20_BITS_11=   0x5F,
   DS18B20_BITS_12=   0x7F,
   };
// 设置上下限温度和位数
voidDS18B20Config(unsigned char alarm_h,unsigned char alarm_l,unsigned charbits)
{
        OWWriteByte(0x4E);
      OWWriteByte(alarm_h);
        OWWriteByte(alarm_l);
        OWWriteByte(bits);
}

点击此处下载 ourdev_526069.rar(文件大小:7K) (原文件名:atmega_ds18b20_api.rar)

haibinglong 发表于 2010-1-14 18:14:00

哥们,先谢谢你了啊!回头试一下。

edo_full 发表于 2010-2-3 15:07:42

11楼的 资料下载不了

289457095 发表于 2011-8-2 12:59:57

正需要呢,谢谢啊,回去我好好看看

zhangshihuan 发表于 2011-8-24 08:48:25

18B20不显示采集温度是怎么回事啊,前几天还显示呢,
现在只是显示初始化温度0℃

rauqwmourmhtkgn 发表于 2012-10-28 09:01:37

我 也遇到这样的问题唉,

rauqwmourmhtkgn 发表于 2012-10-28 09:53:42

为什么我配置成12位与配置 成9位读出的数据是一样的

liangjiatian 发表于 2012-12-1 10:58:34

rauqwmourmhtkgn 发表于 2012-10-28 09:53 static/image/common/back.gif
为什么我配置成12位与配置 成9位读出的数据是一样的

我也是啊!!!怎么回事我读出来 都已经是1F 的了,显示温度数据   还是12位的   !{:cry:} {:cry:} {:cry:} {:cry:} {:cry:} {:cry:} {:cry:} {:cry:} {:cry:} {:cry:} {:cry:} {:cry:} {:cry:}
页: [1]
查看完整版本: 请教各位高手DS18B20的9位分辨率如何设置啊?