首页 > 其他分享 >DS18B20温度传感器——51实验

DS18B20温度传感器——51实验

时间:2023-11-22 09:23:09浏览次数:38  
标签:温度传感器 字节 DS18B20 51 总线 低电平 ROM 温度

DS18B20是由 DALLAS半导体公司推出的一种“一线总线(单总线)”接口的温度传感器。与传统的热敏申阻等测温元件相比,它是一种新型的体积小,适用电压宽、与微处理器接口简单的数字化温度传感器。

 具有如下特点:

1、适应电压范围更宽,电压范围:3.0~5.5 V,在寄生电源方式下可由数据线供电。

2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

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

4、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在一只三极管的集成电路内。                                                         

5、温范围-55 ~ +125℃,在-10 ~ +85℃时精度为士0.5℃。                                                                                     

6、可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。                                                   

7、在9位分辨率时最多在93.75 ms,内把温度转换为数字,12位分辨率750 ms 内把温度值转换为数字,速度更快。                                                   

8、测量结果直接输出数字温度信号,以”一根总线"串行传送给 CPU,同时可传送CRC 校验码,具有极强的抗干扰纠错能力。                                             

9、负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作

 

引脚说明:正对传感器切面(即印有型号字符的那一面)时,管脚顺序从左到右分别为GND、数据DQ、VDD。

 

单总线系统
在每个DS18B20内部都有一个唯一的64位长的序列号,这个序列号值就存在DS18B20内部的ROM中。开始的8位是产品类型编码(DS18B20是28H),接着的48位是每个器件唯一的序号,最后的8位是CRC校验码。总线系统使用单总线主控来控制一个或多个从机设备。每个DS18B20都有独立唯一的64位-ID,此特性决定了它可以将任意多的DS18b20挂载到一根总线上,通过ROM搜索读取相应DS18B20的温度值。

 

DS18B20内部构成:

 


主要由以下3部分组成: 64 位ROM,高速暂存器,存储器

64 位ROM存储独有的序列号:ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。这样就可以实现一根总线上挂接多个DS18B20的目的。

高速暂存器包含:温度灵敏元件、低温触发器和高温触发器(TH和TL)、配置寄存器。

存储器:由一个高速的RAM和一个可擦除的EEPROM组成,EEPROM存储高温和低温触发器(TH和TL)以及配置寄存器的值,(就是存储低温和高温报警值以及温度分辨率)

DS18B20高速缓存器由9个字节组成

字节0~1 是温度存储器,用来存储转换好的温度。第0个字节存储温度低8位,第一个字节存储温度高8位

字节2~3 是用户用来设置最高报警和最低报警值(TH和TL)。
字节4 是配置寄存器,用来配置转换精度,可以设置为9~12 位。

 

 


字节5~7 保留位。芯片内部使用
字节8 CRC校验位。是64位ROM中的前56位编码的校验码。由CRC发生器产生。

 

DS18B20温度读取与计算
DS18B20采用16位补码的形式来存储温度数据,温度是摄氏度。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。

高字节的五个S为符号位,温度为正值时S=1,温度为负值时S=0

剩下的11位为温度数据位,对于12位分辨率,所有位全部有效,对于11位分辨率,位0(bit0)无定义,对于10位分辨率,位0和位1无定义,对于9位分辨率,位0,位1,和位2无定义

 

 

对应的温度计算:

当五个符号位S=0时,温度为正值,直接将后面的11位二进制转换为十进制,再乘以0.0625(12位分辨率),就可以得到温度值;

当五个符号位S=1时,温度为负值,先将后面的11位二进制补码变为原码(符号位不变,数值位取反后加1),再计算十进制值。再乘以0.0625(12位分辨率),就可以得到温度值;

例如:

+125℃的数字输出07D0(00000111 11010000) :转换成10进制是2000,对应摄氏度:0.0625x2000=125°C

-55℃的数字输出为 FC90:首先取反,然后+1,转换成原码为:11111011 01101111,数值位转换成10进制是870,对应摄氏度:-0.0625x870=-55°C。

工作流程:

初始化时序:主机输出低电平,保持低电平至少480us(480us~960us),以产生复位脉冲。接着主机释放总线(此时,外部的上拉电阻将单总线电平拉高),延时15~60us后,主机进入接收模式,等待检测从机发出的存在脉冲。然后芯片拉低总线60~240us,产生低电平应答脉冲,进行时延,从上拉电阻拉高电平到时延结束至少480us。

解释:1.单片机拉低总线至少480us,产生复位脉冲,然后释放总线(拉高电平)。
           2.这时DS8B20检测到请求之后,会拉低信号,大约60~240us表示应答。
           3.DS8B20拉低电平的60~240us之间,单片机读取总线的电平,如果是低电平,那么表示初始化成功
           4.DS18B20拉低电平60~240us之后,会释放总线。

 ROM操作:常用的有三个,其余可详见说明手册。

 

 

 

 

 

写时序
总线控制器通过控制单总线高低电平持续时间从而把逻辑1或0写DS18B20中。每次只传输1位数据

单片机想要给DS18B20写入一个0时,需要将单片机引脚拉低,延时60us,释放总线,延时2us。
单片机想要给DS18B20写入一个1时,需要将单片机引脚拉低,延时2us,释放总线,延时60us。

在写时序起始后15μs到60μs期间,DS18B20处于采样单总线电平状态。如果在此期间总线为高电平,则向DS18B20写入1;如果总线为低电平,则向DSl8B20写入0。

注意:2次写周期之间至少间隔1us

 

读时序
读时隙由主机拉低总线电平至少1μs然后再释放总线,读取DS18B20发送过来的1或者0

DS18B20在检测到总线被拉低1微秒后,便开始送出数据,若是要送出0就把总线拉为低电平直到读周期结束。若要送出1则释放总线为高电平。

 


注意:所有读时隙必须至少需要60us,且在两次独立的时隙之间至少需要1ps的恢复时间

同时注意:主机只有在发送读暂存器命令(0xBE)或读电源类型命令(0xB4)后,立即生成读时隙指令,DS18B20才能向主机传送数据。 也就是先发读取指令,再发送读时隙

最后一点: 写时序注意是先写命令的低字节,比如写入跳过ROM指令0xCC(11001100),写的顺序是“零、零、壹、壹、零、零、壹、壹”,

读时序时是先读低字节,在读高字节,也就是先读取高速暂存器的第0个字节(温度的低8位),在读取高速暂存器的第1个字节(温度的高8位) 我们正常使用DS18B20读取温度读取两个温度字节即可

标签:温度传感器,字节,DS18B20,51,总线,低电平,ROM,温度
From: https://www.cnblogs.com/sejwy/p/17847146.html

相关文章

  • 51单片机实验2:静态数码管
    数码管介绍共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极的数码管,共阳极数码管在应用时将公共端接到+5V。共阴极数码管是指将所有发光二极管的阳极接到一起形成公共阴极的数码管,共阴极数码管在应用时将公共端接到GND。硬件设计74HC138译码器管脚说明真值表(低电平有......
  • 适用于广泛的物联网应用RM500QAEAA-M20-SGASA、EG25GGB-MINIPCIE、EM06ELA-512-SGAS网
    1、RM500QAEAA-M20-SGASA是一款5Gsub-6GHzM.2模块,尺寸为52.0mm×30.0mm×2.3mm,符合3GPPRelease15规范,针对工业和商业物联网及eMBB应用进行了优化。它支持独立(SA)和非独立(NSA)模式,最大下行链路速率为2.5Gbps,最大上行链路速率为900Mbps。RM500QAEAA-M20-SGASA支持Q......
  • 02-51单片机之流水灯
    1、顺序法,流程图如下:程序如下:#include<reg52.h>//头文件#defineLED1P20//宏定义#defineLED2P21#defineLED3P22#defineLED4P23#defineLED5P24voiddelay_100ms()//延时函数{unsignedchari,j;i=195;j=138;do{while(--......
  • 代码随想录算法训练营第八天 | ● 344.反转字符串 ● 541. 反转字符串II ● 卡码网:54
    今日学习内容●344.反转字符串varreverseString=function(s){//returns.reverse();for(leti=0,j=s.length-1;i<Math.floor(s.length/2);i++,j--){[s[i],s[j]]=[s[j],s[i]]}returns};●541.反转字符串IIvarre......
  • 8051单片机:毕业自b站大学
    前言觉得痛苦、好像做不好是因为没花够时间查资料、调试(调试能力太重要了,一定要好好积累;其实也是分析问题解决问题的过程,算是mini科研),没有理解透彻。另外就是关注到别人的胜负或者说成绩了,别人的掌握情况重要也不重要。多关注自己的掌握情况、花费的时间、是否真的理解并思考过......
  • 51时钟实验——DS1302芯片
    关于DS1302芯片:1、引脚说明: Vcc1:主电源;Vcc2:备份电源。当Vcc2>Vcc1+0.2VVcc2>Vcc1+0.2VVcc2>Vcc1+0.2VVcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2<Vcc1时,由Vcc1向DS1302供电。SCLK:串行时钟,输入,控制数据的输入与输出;I/O:三线接口时的双向数据线;CE:输入信号,在读、写数据期......
  • 世微 降压恒流驱动IC 景观亮化洗墙灯舞台灯汽车灯LED照明 AP5199S
    1.特性 支持高辉调光,调光比  平均电流工作模式  高效率:最高可达95%  输出电流可调范围60mA~12A  最大工作频率1MHz 恒流精度≤±3% 支持PWM  封装:SOP8 2.应用领域  景观亮化洗墙灯  舞台调光效果灯汽车照明 3.说明 AP5199S是一款外围电路简单的多功能......
  • T399751 Liangle's Rose Problem(亮亮的玫瑰问题)题解
    LinkT399751Liangle'sRoseProblem(亮亮的玫瑰问题)Question给出一个数组\(a\),有\(Q\)次询问,每次询问\([L,R]\)种随便挑选几个连续的\(a_i\)使得,他们几个的或的值最大Solution考虑贪心,如果把负数视为\(0\),那么一个数或上另外一个数,数肯定是变大的,那么就应该或上\(......
  • HCS651统一备份FusionSphere备份失败问题小结
    登录ELB-DB节点在确认查询无网络问题后此节点从失败详情中能够查询到,主备IP可根据详情中的IP地址关联从om获取 #cat/etc/sudoers.d/elbommALL=(root)NOPASSWD:/opt/gaussdb/ha/tools/gsCerts/query_gs_ca.shommALL=(root)NOPASSWD:/opt/gaussdb/ha/tools/gsCerts/qu......
  • 51串行接口
       ......