News新闻中心
行业资讯 公司新闻
当前位置:南宁棋牌游戏 > 新闻中心 > 行业资讯 > ds18b20负温度,DS18B20数据处理支持负温度

ds18b20负温度,DS18B20数据处理支持负温度

TIME:2020-09-28   click: 732 次    编辑:南宁棋牌游戏    当前栏目:行业资讯

Description:░◢单片机测温芯片DS18B20み是一款常用的IC,那么它有何优势和特点呢?对于ds18b20ほ又是如何处理和支持负温度的呢?一起网络棋牌十大排行榜来了解一下。ds18↖b20优势和特点(1)在温░,本文发布时间:2020-09-28,关于【ds18b20负温度,DS18B20数据处理支持负温度】的文章内容即将呈现,预计花费您504秒时间

  ◢单片机测温芯片DS18B20 み是一款常用的IC,那么它有何优势和特点呢?对于ds18b20 ほ又是如何处理和支持负温度的呢?一起网络棋牌十大排行榜来了解一下。

  ds18↖b20优势和特点

  (1)在温度转换精度为±0.5℃时,电压范围:3¢.0~5.┽ 5V,寄生电源方式下可由数据线供电。既可以用寄生电源供电,也可采用外∮部电源供电。

  (2)独特的单线接口方△ 式:DS18B20与微处理器连接仅需一个I/O口线便可实现微处理器与DS18B20的双向通讯。无需变换其他电路,∷即可直□接输出被测温度值。

  (3)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现☆组网多点测温。

  (4)温度测量范⊙◎ 围为-55℃~+125℃,在-10~+85℃时精度为±0.5℃,固有测温分辨率为0.5℃。

  (5)掉电保护功能:内部有EEPROM(?Electrically-Erasable Programmable Read-Only ★Memory,可擦可编程只读存储器),系统掉电后,它仍可保存分辨率及报警温度的设定值。┝

  (6)在9位分辨率时最长转换时间为9【】3.75ms;12位分辨率时,最长转换时间为750ms。

  (7)直接以数字信号方式输出温度测量结果,以“一线总线”串行方式传送给CPU (Central Processing ざUnit,中央处理器),同时可传送校验码,具ゎ 有极强的抗干扰纠错能力。

↗  (8)负压特性:电源极性接反时,芯片不会被烧毁,但不能正常工作。

  (9)可编程分辨率为9~12位,对应ぁ的分辨温度为0.5℃、0★ .25℃♂、0.125℃、和 0.0625℃。

  (10)每个芯片唯一编码,支持联网寻址,零功耗等待。

安卓棋牌下载大全

  DS18B20数据ま处理支持负温度

  18B20片内有一个9Byte的 SRAM 和一个3Byte的 EEPROM。如下图:

  ゐ¥ ▁ds18b20 负温度,DS18B20数据处理支持负温度ょけ♀№ ▏

  其中我们需要使用的就是SRAM中的前两个字节,这里储存的就是我们要的▆温度值。这两个字节的结构如下:

  …ds18b20 负温度,DS18B20数据处理支持负温度√ #

  我们可以看到,LS(低字节)的ず高四位 和 MS(高字节)的低四位共8个字节构成了实际的一个带符号位的字节数据可以表示(-128~127↑ )足够表示18B20的温度范围。MS的じ高四位为符号为的扩展,当温度值为正时MS高5位(图中S的五位)全■为0,温度值为负时全为1。LS的低四位为小数部分,不き是要求太高的话可以忽略。我们这里暂不套路小数部分的处理方法。

  下面我们就来讨论整数部分的数据处理方法。

  整数部分我们实际只要高字节的第四位和低字节的高ね四位。首先通过移位求或后生成一个无符号位的字节。然后判断这个无符号的值是否大于127,如果大于128@ 说明是个负温度需要处理,否则就可以直接返回。

  ◎ 18B20的负温度使用补码形式输出,我们只需安卓棋牌游戏手机版下载要对这个字节进行取反加1后就ぱ是这个负温度的绝对值,这时候我们需要一ぜ个符号标记告诉输出函数这是个负温度需要显示负号即可。

  下面贴出数据处理部ぎ 分的代码:

  uchar readtemp() //读取温度

  {

  uchar temp=0く;

  uchar たtmp[2]

  reset();

  writebyte(0xCC); ぶ♀/→/ 跳过序¤列号

  writebyte(0x44); // る 启动温度转换⊙

  delayms(1000);

  reset();

  writebyte(0xCC);

  writebyte(0xBE); ぼ //读9个寄存器,前两个为温度

男  tmp[0]=readbyte(); //低位

  tmp[1]=readbyte(); //高位

  temp=((tmp[1]《《4)&0xF0)|((tmp[0]》》4)&0x0F);┰

  if(temp》127)

  {

  temp=~temp $+ 1;

  }

  return (temp);

  }

相关文章推荐: