DS18B20温度传感器
- 格式:doc
- 大小:152.50 KB
- 文档页数:12
单总线温度传感器DS18B20简介DS18B20是DALLAS公司生产的单总线式数字温度传感器,它具有微型化、低功耗、高性能、搞干扰能力强、易配处理器等优点,特别适用于构成多点温度测控系统,可直接将温度转化成串行数字信号(提供9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片。
它具有3引脚TO-92小体积封装形式,温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,也可采用寄生电源方式产生,多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
以上特点使DS18B20非常适用于远距离多点温度检测系统。
DS18B20外形及引脚说明外形及引脚如图2所示:图2 管脚排列图在TO-92和SO-8的封装中引脚有所不同,具体差别请查阅PDF手册,在TO-92封装中引脚分配如下:1(GND):地2(DQ):单线运用的数据输入输出引脚3(VDD):可选的电源引脚DS18B20工作过程及时序DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。
高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。
初始时,温度寄存器被预置成-55℃,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1℃,这个过程重复进行,直到计数器2计数到0时便停止。
初始时,计数器1预置的是与-55℃相对应的一个预置值。
以后计数器1每一个循环的预置数都由斜率累加器提供。
为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。
计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1℃计数器所需要的计数个数。
DS18B20是一种单总线数字温度传感器,测试温度范围-55℃-125℃,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。
单总线,意味着没有时钟线,只有一根通信线。
单总线读写数据是靠控制起始时间和采样时间来完成,所以时序要求很严格,这也是DS18B20驱动编程的难点。
一.DS18B20温度传感器1.引脚图2.DS18B20内部结构图主要由2部分组成:64位ROM、9字节暂存器,如图所示。
(1) 64 位ROM。
它的内容是64 位序列号,它可以被看作是该DS18B20 的地址序列码,其作用是使每个DS18B20 都各不相同,这样就可以实现一根总线上挂接多个DS18B20 的目的。
(2) 9字节暂存器包含:温度传感器、上限触发TH高温报警器、下限触发TL低温报警器、高速暂存器、8位CRC产生器。
3.64位ROM结构图8位CRC:是单总线系列器件的编码,DS18B20定义为28H。
48位序列号:是一个唯一的序列号。
8位系列码:由CRC产生器生产,作为ROM中的前56位编码的校验码。
4.9字节暂存器结构图以上是内部9 个字节的暂存单元(包括EEPROM)。
字节0~1 是温度存储器,用来存储转换好的温度。
字节2~3 是用户用来设置最高报警和最低报警值。
这个可以用软件来实现。
字节4 是配置寄存器,用来配置转换精度,让它工作在9~12 位。
字节5~7 保留位。
字节8 CRC校验位。
是64位ROM中的前56位编码的校验码。
由CRC发生器产生。
5.温度寄存器结构图温度寄存器由两个字节组成,分为低8位和高8位。
一共16位。
其中,第0位到第3位,存储的是温度值的小数部分。
第4位到第10位存储的是温度值的整数部分。
第11位到第15位为符号位。
全0表示是正温度,全1表示是负温度。
表格中的数值,如果相应的位为1,表示存在。
如果相应的位为0,表示不存在。
6.配置寄存器精度值:9-bit 0.5℃10-bit 0.25℃11-bit 0.125℃12-bit 0.0625℃7.温度/数据关系注意:如果温度是一个负温度,要将读到的数据减一再取反二.单总线协议1.单总线通信初始化初始化时序包括:主机发出的复位脉冲和从机发出的应答脉冲。
分辨率可编程单总线数字温度传感器——DS18B20 特征:独特单总线接口,只需要一个端口引脚线即可实现通信每个器件的片上ROM 有一个独特64 位串行码存储多点能力使分布式温度检测应用得到简化不需要外围元件能用数据线供电,供电的范围3.0V~5.5V测量温度的范围:-55℃~+125℃(-67℉~+257℉)从-10℃~+85℃的测量的精度是±0.5℃温度传感器分别率由用户从9-12 位中选择在750ms 内把温度转换为12 位数字字(最大值)用户可定义,非易失性温度告警设置告警搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况)可采用8 引脚SO(150mil)、8 引脚µSOP 和3 引脚TO-92 封装软件兼容DS1822 器件应用范围包括:恒温控制、工业系统、消费类产品、温度计和任何的热敏系统图1 DS18B20 引脚排列图引脚说明:GND—地DQ—数字输入输出VDD—供电电压NC—空连接一般说明:DS18B20 数字温度传感器提供9~12 位摄氏温度的测量,拥有非易失性用户可编程最高与最低触发点告警功能。
DS18B20 通过单总线实现通信,单总线通常是DS18B20 连接。
它能够感应温度的范围为-55℃~+125℃,在-10℃~+85℃的测量的精度是±0.5℃,而且DS18B20 可以直接从数据线上获取供电(寄生电源)而不需要一个额外的外部电源。
因为每个DS18B20 拥有一个独特的64 序列号,因此它允许多个DS18B20 在一条单总线上,所以很方便使用一个微控制器来控制多个分布在较大范围内的DS18B20。
受益于这一特性的应用包括HAVC 环境控制、建筑物、设备和机械内的温度监测、以及过程监测和控制过程的温度监测。
图2注意: A "+"符号在封装上也标有。
订购信息表1S O* µSOP * TO-924 4 15 1 23 8 3DS18B20 详细引脚说明号符明说GND 地当脚引线总单路开,脚引出输入输据数,DQ 生寄见(供件器给时式模源电生寄用使电)分部源电VDD 选可下式模作操源电生寄在脚引,VDDVDD 地接须必* 表中所有未列出的引脚都是NC(空接)概述:方框图3 给出了表一所描述的DS18B20 的主要引脚连接。
ds18b20工作原理
DS18B20温度传感器是一种数字温度传感器,采用"1-wire"
(单总线)接口通信,其工作原理如下:
1. 传感器结构:DS18B20传感器由温度传感器芯片、电源线
和数据线组成。
芯片内部包含温度传感器、模数转换器和存储器。
2. 电源供电:传感器通过电源线从计算机、微控制器或其他设备中获取供电。
传感器的VDD和GND引脚用于供电。
3. 温度测量:传感器使用其内部温度传感器测量环境温度。
当温度变化时,传感器内部的温度传感器会产生电压变化。
4. 模数转换:传感器内部的模数转换器将温度传感器测量到的电压转换为数字信号。
转换后的数字信号可以在数据线上传输。
5. 通信协议:传感器使用1-wire接口协议进行通信。
该协议
允许使用单根数据线进行数据传输。
传感器通过数据线将温度数据发送给主控设备。
6. 数据读取:主控设备发送读取指令给传感器,传感器将温度数据通过数据线返回给主控设备。
主控设备可以通过读取传感器返回的数据来获取环境温度。
总结:DS18B20温度传感器工作原理基于温度传感器芯片和
模数转换器的结构,在供电后,传感器通过测量温度传感器的
电压变化来获取环境温度,并通过1-wire接口协议将温度数据传输给主控设备。
数字温度传感器 DS18B20DS18B20 数字式温度传感器,使用集成芯片,采用单总线技术,其能够有效的减小外界的干扰,提高测量的精度,同时,它可以直接将被测温度转化成串行数字信号供微机处理,接口简单,使数据传输和处理简单化。
部分功能电路的集成,使总体硬件设计更简洁,能有效地降低成本,搭建电路和焊接电路时更快,调试也更方便简单化,这也就缩短了开发的周期。
DS18B20 单线数字温度传感器,即“一线器件”,其具有独特的优点:(1)采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。
单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
(2)测量温度范围宽,测量精度高 DS18B20 的测量范围为 -55 ℃ ~+ 125 ℃;在 -10~+ 85°C 范围内,精度为± 0.5°C 。
(3)在使用中不需要任何外围元件。
(4)持多点组网功能多个 DS18B20 可以并联在惟一的三线上,实现多点测温。
(5)供电方式灵活 DS18B20 可以通过内部寄生电路从数据线上获取电源。
因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。
(6)测量参数可配置 DS18B20 的测量分辨率可通过程序设定 9~12 位。
(7)负压特性电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
(8)掉电保护功能 DS18B20 内部含有 EEPROM ,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。
DS18B20 具有体积更小、适用电压更宽、更经济、可选更小的封装方式,更宽的电压适用范围,适合于构建自己的经济的测温系统,因此也就被设计者们所青睐。
DS18B20的内部结构DS18B20测温原理:DS18B20 的内部测温电路框图低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器 1 ,为计数器提供一频率稳定的计数脉冲。
DS18B20中文资料在现代电子技术领域,温度测量是一项非常重要的任务。
而DS18B20 作为一款常用的数字温度传感器,以其出色的性能和简单的接口,在各种温度测量应用中得到了广泛的应用。
DS18B20 是由美国达拉斯半导体公司(Dallas Semiconductor)推出的一款单线数字温度传感器。
它具有体积小、硬件开销低、抗干扰能力强、精度高等优点。
从外观上看,DS18B20 通常采用小型的TO-92 封装或者SOP 封装,这使得它能够轻松集成到各种电路中,占用极小的空间。
在性能方面,DS18B20 的测量范围非常广泛,从-55℃到+125℃,能够满足大多数实际应用场景的温度测量需求。
其测量精度在-10℃到+85℃范围内可达到 ±05℃,这对于很多对温度精度要求较高的场合来说,是非常出色的表现。
DS18B20 之所以能够在众多温度传感器中脱颖而出,很大程度上得益于其独特的单线接口。
这意味着它只需要一根数据线就可以与微控制器进行通信,大大简化了电路设计和布线工作。
在使用 DS18B20 进行温度测量时,首先需要将其正确连接到微控制器。
通常,将 DS18B20 的数据线连接到微控制器的一个通用输入输出引脚(GPIO)上。
然后,通过微控制器发送特定的指令来启动温度转换,并读取转换后的温度值。
DS18B20 的工作原理基于其内部的温度敏感元件和模数转换电路。
当接收到温度转换指令后,传感器内部的温度敏感元件会感知当前环境温度,并将其转换为对应的数字信号,然后通过单线接口传输给微控制器。
在编程方面,不同的微控制器平台可能会有一些差异,但基本的流程大致相同。
一般来说,需要先初始化单线接口,然后发送复位脉冲和搜索 ROM 指令来识别总线上的 DS18B20 设备。
接着,发送启动温度转换指令,并等待转换完成。
最后,读取转换后的温度数据,并进行相应的处理和显示。
为了确保测量的准确性和稳定性,在实际应用中还需要注意一些问题。
18B20温度传感器应用解析温度传感器的种类众多,在应用与高精度、高可靠性的场合时DALLA S(达拉斯)公司生产的DS18B20温度传感器当仁不让。
超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B 20更受欢迎。
对于我们普通的电子爱好者来说,DS18B20的优势更是我们学习单片机技术和开发温度相关的小产品的不二选择。
了解其工作原理和应用可以拓宽您对单片机开发的思路。
DS18B20的主要特征:全数字温度转换及输出。
先进的单总线数据通信。
最高12位分辨率,精度可达土0.5摄氏度。
12位分辨率时的最大工作周期为750毫秒。
可选择寄生工作方式。
检测温度范围为–55°C ~+125°C (–67°F ~+257°F)内置EEPROM,限温报警功能。
64位光刻ROM,内置产品序列号,方便多机挂接。
多样封装形式,适应不同硬件系统。
DS18B20芯片封装结构:DS18B20引脚功能:·GND 电压地·DQ 单数据总线·VDD 电源电压·NC 空引脚DS18B20工作原理及应用:DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。
其一个工作周期可分为两个部分,即温度检测和数据处理。
在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。
18B20共有三种形态的存储器资源,它们分别是:ROM 只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。
数据在出产时设置不由用户更改。
DS18B20共64位ROM。
RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,D S18B20共9个字节RAM,每个字节为8位。
第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。
DS18B20 单线温度传感器一.特征:●独特的单线接口,只需 1 个接口引脚即可通信●每个设备都有一个唯一的64位串行代码存储在光盘片上●多点能力使分布式温度检测应用得以简化●不需要外部部件●可以从数据线供电,电源电压范围为3。
0V至5。
5V●测量范围从-55 ° C至+125 ° C(—67 ° F至257 ° F),从—10℃至+85 ° C的精度为0。
5 °C●温度计分辨率是用户可选择的9至12位●转换12位数字的最长时间是750ms●用户可定义的非易失性的温度告警设置●告警搜索命令识别和寻址温度在编定的极限之外的器件 (温度告警情况)●采用8引脚SO(150mil),8引脚SOP和3引脚TO — 92封装●软件与DS1822兼容●应用范围包括恒温控制工业系统消费类产品温度计或任何热敏系统二.简介该DS18B20的数字温度计提供9至12位的摄氏温度测量,并具有与非易失性用户可编程上限和下限报警功能。
信息单线接口送入 DS1820 或从 DS1820 送出,因此按照定义只需要一条数据线(和地线)与中央微处理器进行通信.它的测温范围从—55 °C到 +125 ° C,其中从—10 °C至+85 °C可以精确到0。
5°C 。
此外,DS18B20可以从数据线直接供电(“寄生电源"),从而消除了供应需要一个外部电源。
每个 DS18B20 的有一个唯一的64位序列码,它允许多个DS18B20s的功能在同一1-巴士线.因此,用一个微处理器控制大面积分布的许多DS18B20s是非常简单的。
此特性的应用范围包括 HVAC、环境控制、建筑物、设备或机械内的温度检测以及过程监视和控制系统.三.综述64位ROM存储设备的独特序号。
存贮器包含2个字节的温度寄存器,它存储来自温度传感器的数字输出。
DS18B20 单线温度传感器一.特征:●独特的单线接口,只需 1 个接口引脚即可通信●每个设备都有一个唯一的64位串行代码存储在光盘片上●多点能力使分布式温度检测应用得以简化●不需要外部部件●可以从数据线供电,电源电压范围为3.0V至5.5V●测量范围从-55 ° C至+125 ° C(-67 ° F至257 ° F),从-10℃至+85 ° C的精度为0.5 °C●温度计分辨率是用户可选择的9至12位●转换12位数字的最长时间是750ms●用户可定义的非易失性的温度告警设置●告警搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况)●采用8引脚SO(150mil),8引脚SOP和3引脚TO - 92封装●软件与DS1822兼容●应用范围包括恒温控制工业系统消费类产品温度计或任何热敏系统二.简介该DS18B20的数字温度计提供9至12位的摄氏温度测量,并具有与非易失性用户可编程上限和下限报警功能。
信息单线接口送入 DS1820 或从 DS1820 送出,因此按照定义只需要一条数据线(和地线)与中央微处理器进行通信。
它的测温范围从-55 °C到 +125 ° C,其中从-10 °C至+85 °C可以精确到0.5°C 。
此外,DS18B20可以从数据线直接供电(“寄生电源”),从而消除了供应需要一个外部电源。
每个 DS18B20 的有一个唯一的64位序列码,它允许多个DS18B20s的功能在同一1-巴士线。
因此,用一个微处理器控制大面积分布的许多DS18B20s是非常简单的。
此特性的应用范围包括 HVAC、环境控制、建筑物、设备或机械内的温度检测以及过程监视和控制系统。
三.综述64位ROM存储设备的独特序号。
存贮器包含2个字节的温度寄存器,它存储来自温度传感器的数字输出。
此外,暂存器可以访问的1个字节的上下限温度告警触发器(TH和TL)和1个字节的配置寄存器。
51单片机DS18B20温度传感器原理及实验一、引言温度传感器是一种常用的传感器器件,它的作用是将物体的温度变化转换为电信号输出,以实现温度的监测和控制。
DS18B20是一种数字温度传感器,采用数字信号输出,具有体积小、精度高、线性度好等特点,被广泛应用于各种温度控制系统中。
本文将介绍DS18B20的工作原理及实验方法。
二、DS18B20的工作原理DS18B20是一种基于一线传输协议的数字温度传感器,其工作原理如下:1.接口电路:DS18B20具有三个引脚,分别是VDD、DQ和GND。
其中,VDD是供电引脚,DQ是数据引脚,GND是地引脚。
2.传感器原理:DS18B20内部包含一个温度传感器和一个数字转换器。
温度传感器采用热敏电阻的原理,通过测量热敏电阻的电阻值来反映物体的温度变化。
数字转换器将传感器测得的电阻值转换为数字信号输出。
三、实验流程以下是使用51单片机对DS18B20温度传感器进行实验的详细流程:1.硬件准备:-将DS18B20的VDD引脚连接到单片机的VCC引脚,DQ引脚连接到单片机的任意IO引脚,GND引脚连接到单片机的GND引脚。
-确保DS18B20的供电电压和单片机的工作电压一致。
2.初始化:-在程序中定义DS18B20的DQ引脚所对应的单片机的IO引脚。
-初始化DS18B20,即发送初始化指令给DS18B20。
3.温度转换:-发送温度转换指令给DS18B20,DS18B20开始测量温度。
-等待一定的延时,确保DS18B20完成温度转换。
4.读取温度:-发送读取温度指令给DS18B20,DS18B20将温度的原始数据发送给单片机。
-单片机通过计算将原始数据转换为温度值。
-温度值可以通过串口或LCD等方式进行显示。
5.循环实验:-以上步骤需要不断重复,以便实时监测温度的变化。
四、总结DS18B20温度传感器是一种常用的数字温度传感器,具有精度高、体积小、线性度好等特点,适用于各种温度控制系统。
特点 ● 单总线接口,节约布线资源● 应用简单,无需额外器件● 转换温度时间500ms● 可编程9~12位数字输出●宽供电电压范围● 每颗芯片有可编程的ID 序列号 ● 用户可自行设置报警值 ● 超强ESD 保护能力(HBM>8000V )● 典型待机电流功耗1µA @3V ●典型换电流功耗0.6mA@3V典型应用● 便携应用,手机与穿戴设备● 温度监控 ●粮情监测● 智能家电系统 ● 水温测量● 建筑、设备或机房内部温度监测系统● 过程监测和控制系统概述是一款高精度的单总线温度测量芯片。
温度传感器的测温范围为-55°C 到+125°C ;根据用户需要通过配置寄存器可以设定数字转换精度和测温速度。
芯片内置4byte 非易失性存储单元供用户使用,2byte 用于高低温报警,另外2byte 用于保存用户自定义信息。
在-10°C 到+85°C 范围内最大误差为±°C 。
用户可自主选择电源供电模式和寄生供电模式。
单总线接口允许多个设备挂在同一总线,该特性使得也非常便于部署分布型温度采集系统。
管脚图和管脚描述34167852GNDDQ VDD MSOP82.5V-5.5V DS18B20H DS18B200.4DS18B20图1 DS18B20框图结构框图图1是DS18B20的原理框图。
64位ROM存储了器件的唯一序列码。
暂存器包含了两个字节的温度寄存器,存储来自于温度传感器的数字输出。
另外,暂存器提供了一高一低两个报警触发阈值寄存器(TH和TL)。
配置寄存器允许用户设定温度数字转换的分辨率为9,10,11或12位。
2个字节的用户可编程E2PROM是非易失性存储,器件掉电时数据不会失去。
DS18B20使用单总线协议,总线通讯通过一根控制信号线实现。
控制线需要一个弱上拉电阻这样所有的器件都通过三态或者开漏极端口(就是DS18B20的DQ引脚)连接到总线上。
DS18B20的工作原理DS18B20是一种数字温度传感器,具有高精度和数字输出的特点。
它采用一线通信协议,可以直接与微控制器通信,广泛应用于温度监测领域。
本文将详细介绍DS18B20的工作原理。
一、温度测量原理1.1 DS18B20采用数字式温度传感器芯片,内部集成为了温度传感器和ADC转换器,能够直接输出数字信号。
1.2 DS18B20的温度传感器采用特殊的材料,随温度的变化而改变其电阻值,通过ADC转换器将电阻值转换为数字信号。
1.3 DS18B20的数字输出信号经过微处理器处理后,可以直接显示温度数值或者通过串口通信传输到其他设备。
二、通信协议2.1 DS18B20采用一线通信协议,只需一根数据线即可与微控制器通信,简化了连接方式。
2.2 通信协议中包括初始化、发送命令、读取数据等步骤,确保数据的准确传输。
2.3 通过一线通信协议,DS18B20可以实现多个传感器的串联连接,方便实现多点温度监测。
三、精度和分辨率3.1 DS18B20具有高精度的温度测量能力,温度测量误差仅为±0.5℃。
3.2 DS18B20的分辨率可调节,最高可达12位,能够满足不同应用场景的需求。
3.3 高精度和可调节的分辨率使得DS18B20在工业控制、医疗设备等领域得到广泛应用。
四、工作电压和功耗4.1 DS18B20的工作电压范围广泛,可在3V至5.5V之间工作,适合于不同的电源供应环境。
4.2 DS18B20的功耗较低,工作电流仅为1mA摆布,可以节省能源。
4.3 低功耗和广泛的工作电压范围使得DS18B20适合于电池供电或者低功耗设备。
五、应用领域5.1 DS18B20广泛应用于温度监测系统、气象站、医疗设备等领域。
5.2 DS18B20的高精度和数字输出特点使得其在工业控制、实验室研究等领域得到广泛应用。
5.3 DS18B20的一线通信协议和低功耗特点使得其在挪移设备、智能家居等领域具有广阔的应用前景。
温度传感器ds18b20温度传感器DS18B201. 简介温度传感器DS18B20是一种数字温度传感器,可用于测量环境温度。
该传感器由Maxim Integrated公司生产,并在许多应用中得到了广泛的应用,如家庭自动化、气象站、工业控制等。
DS18B20采用了数字化接口,并具有高精度、可编程分辨率和低功耗等特点。
2. 技术规格DS18B20的技术规格如下:- 工作电源:3.0V至5.5V- 测量范围:-55°C至+125°C- 分辨率:可编程为9、10、11或12位- 精度:±0.5°C(在-10°C至+85°C范围内)- 通信接口:一线式数字接口3. 工作原理DS18B20采用了一线式数字接口,这意味着它只需要一根数据线进行通信。
传感器从控制器接收命令,并通过数据线将温度数据发送回控制器。
传感器的数据线同时起到了供电的作用。
DS18B20通过内部的精密温度传感器测量环境温度。
传感器将温度转换为数字信号,并通过数据线将其发送给控制器。
传感器的分辨率可以根据需要进行编程,从而在精度和响应速度之间进行平衡。
4. 使用方法使用DS18B20温度传感器非常简单。
首先,将传感器的电源引脚连接到可用的电源引脚,并将数据线连接到控制器的GPIO引脚。
然后,通过控制器向传感器发送命令,请求温度数据。
传感器将在一段时间后将温度数据发送回控制器,控制器可以读取这些数据并进行相应的处理。
DS18B20还具有一些特殊的命令,如启动温度转换、复位传感器和读取ROM代码等。
这些命令可以通过与控制器的通信来实现。
5. 应用领域温度传感器DS18B20在许多应用中得到了广泛的应用。
以下是一些常见的应用领域:- 家庭自动化:DS18B20可以用于监测室内温度,从而实现智能化的温控系统。
- 气象站:DS18B20可以用于监测室外温度,并将数据发送到气象站系统进行分析和显示。
DS18B20数据手册-中文版关键信息项1、协议名称:DS18B20 数据手册中文版2、适用产品:DS18B20 传感器3、数据格式:详细说明数据的传输和存储格式4、测量范围:明确传感器能够测量的温度范围5、精度:给出测量温度的精度数值6、响应时间:描述传感器对温度变化的响应速度7、供电要求:说明所需的供电电压和电流等参数8、接口类型:注明与其他设备连接的接口类型和规范11 概述本协议旨在提供关于DS18B20 传感器的详细技术规格和使用说明,以确保用户能够正确、有效地使用该传感器进行温度测量和数据处理。
111 DS18B20 简介DS18B20 是一款数字式温度传感器,具有体积小、精度高、接口简单等优点,广泛应用于各种温度测量场景。
112 特点1、独特的单总线接口,仅需一根数据线即可与微控制器进行通信。
2、测量范围广,可满足大多数应用场景的需求。
3、在-10℃至+85℃范围内,精度可达 ±05℃。
12 技术规格121 测量范围-55℃至+125℃122 精度在-10℃至+85℃范围内,精度为 ±05℃;在其他温度范围内,精度会有所降低。
123 分辨率用户可通过编程设置分辨率,可选 9 位至 12 位。
124 响应时间典型的温度转换时间为 750ms(12 位分辨率)。
13 供电要求131 供电电压工作电压范围为 30V 至 55V。
132 电流消耗在待机模式下,电流消耗极低;在温度转换期间,电流消耗会有所增加。
14 接口类型141 单总线接口采用独特的单总线协议进行通信,数据线需要上拉电阻。
142 时序要求严格遵循单总线的时序要求,以确保数据的正确传输。
15 数据格式151 温度数据以 16 位补码形式存储温度值。
152 校验位包含校验位以确保数据的准确性。
16 操作指令161 初始化指令用于启动传感器与控制器之间的通信。
162 温度转换指令触发传感器进行温度测量和转换。
163 读取数据指令读取传感器转换后的温度数据。
智能数字温度传感器DS18B20
由美国dallas 半导体公司生产的ds18b20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可把温度信号直接转换成串行数字信号供微机处理。
采用严格的焊接及封装等工艺,芯片每个引脚均用热缩管隔开,防止短路,内部封胶,防水防潮提高了测量精度,延长了使用寿命。
产品应用
1 该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域.
2 轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。
3 汽车空调、冰箱、冷柜、以及中低温干燥箱等。
4 供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制.
5 冷藏库温度监测、药厂GMP 监测系统、电信机房监控、啤酒生产、楼宇自控、仓库温度监测、环境监测、过程温度监测、空调监测、孵化温度控制、养殖业温度测量、温室大棚温度监测、家用冰箱、温度报警器、温度监控系统等。
参数介绍
工作电源电压(V )
DC 3~5V 测温分辨率(%)
+0.006% 工作温度范围(℃)
-55℃~ +125℃ 测量数据传送方式
9~12位数字量串行传送 输出线连接方式
黑色:GND 黄色:DATA 红色:VDD+
线长
1米 探头尺寸
不锈钢探头6*50mm ;线耳传感器;M10*1.5mm 螺纹传感器
线耳传感器螺纹传感器
深圳嘉智捷电子技术有限公司是一家以产品研发,生产加工,销售为服务的技术型公司,拥有完整、科学的质量管理体系,主要产品有温度报警器、温湿度报警器、综合报警设备、传感器、语音拨号器等。
深圳嘉智捷电子技术有限公司以诚信、实力和产品质量获得业界的认可。
欢迎各界朋友莅临参观、指导和业务洽谈。
实验十DS18B20温度传感器喻海中一、实验目的1、掌握用单片机控制以“一线总线”数字方式传输数据的器件的编程方法;2、理解温度传感器DS18B20温度编码方法;3、了解温度传感器DS18B20的工作原理。
二、实验仪器1、微型计算机2、AT89S52单片机系统3、HNIST-I单片机系统实验箱4、USB接口数据线及跳线三、实验原理本实验采用AT89S52单片机P3^5口控制温度传感器DS18B20的温度测量,以四位数码感形式输出测量温度,原理图如下图一:图一1、DS18B20特性介绍DS18B20是DALLAS公司的最新单线数字温度传感器, 它的体积更小、适用电压更宽、更经济。
DS18B20是世界上第一片支持“一线总线”接口的温度传感器。
一线总线独特而且经济的特点, 使用户可轻松地组建传感器网络, 为测量系统的构建引入全新概念。
他的测量温度范围为-55~+125℃, 在-10~+85℃范围内, 精度为±0、5℃。
现场温度直接以“一线总线”的数字方式传输大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量, 如: 环境控制、设备或过程控制、测温类消费电子产品等。
与前一代产品不同, 新的产品支持3~5、5V 的电压范围, 使系统设计更灵活、方便。
而且新一代产品更便宜, 体积更小。
DS18B20可以程序设定9~12位的分辨率, 精度为±0、5℃。
可以选择更小的封装方式,更宽的电压适用范围分辨率设定及用户设定的报警温度存储在E2PROM 中, 掉电后依然保存。
DS18B20 的性能是新一代产品中最好的, 性能价格比也非常出色, 继“一线总线”的早期产品后,DS18B20开辟了温度传感器技术的新概念。
DS18B20和DS18B22使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。
1、1 DS18B20的内部结构DS18B20内部结构主要由4 部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL,配置寄存器。
DS18B20的管脚排列如图二所示:图二DS18B20 中的温度传感器可完成对温度的测量, 以12位转化为例: 用16 位符号扩展的二进制补码读数形式提供, 以0、0625℃/LSB 形式表达,其中S为符号位。
表1 12 位转化后得到的12 位数据表1 是12 位转化后得到的12 位数据, 存储在18B20的2 个8 bit 的RAM 中, 二进制中的前面5 位是符号位,如果测得的温度大于0℃, 则这5 位为0,只要将测到的数值乘于01062 5 即可得到实际温度; 如果温度小于0℃,则这5 位为1,测到的数值需要取反加1 再乘于01062 5即可得到实际温度。
例如: +125℃的数字输出为07D0H, +25、0625℃的数字输出为0191H,-25、0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。
表2 温度与数字输出的对应关系1、2DS18B20 温度传感器的存储器DS18B20 温度传感器的内部存储器包括一个高速暂存RAM 和一个非易失性的可电擦除的E2 RAM , 后者存放高温度和低温度触发器TH , TL 和结构寄存器。
暂存存储器包含了8 个连续字节, 前2 个字节是测得的温度信息, 第1 个字节的内容是温度的低8 位, 第2 个字节是温度的高8 位。
第3 个和第4 个字节是TH , TL 的易失性拷贝, 第5 个字节是结构寄存器的易失性拷贝, 这3 个字节的内容在每一次上电复位时被刷新。
第6 , 7 , 8个字节用于内部计算。
第9 个字节是冗余检验字节。
根据DS18B20 的通讯协议, 主机控制DS18B20 完成温度转换必须经过3 个步骤: 每一次读写之前都要对DS18B20 进行复位; 复位成功后发送一条ROM 指令; 最后发送RAM 指令。
这样才能对DS18B20 进行预定的操作。
复位要求主CPU 将数据线下拉500 μs , 然后释放,DS18B20 收到信号后等待16 ~60 μs 左右, 后发出60 ~240μs低脉冲, 主CPU 收到此信号表示复位成功。
1、3 DS18B20 使用中的注意事项DS18B20 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点, 但在实际应用中也应注意以下几方面的问题:(1) DS18B20 从测温结束到将温度值转换成数字量需要一定的转换时间, 这是必须保证的, 不然会出现转换错误的现象, 使温度输出总是显示85 。
(2) 在实际使用中发现, 应使电源电压保持在5 V 左右。
若电源电压过低,会使所测得的温度与实际温度出现偏高现象, 经过试验发现, 一般在5 V 左右。
(3) 较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送, 因此,在对DS18B20 进行读写编程时, 必须严格保证读写时序,否则将无法读取测温结果。
(4)在DS18B20 测温程序设计中, 向DS18B20 发出温度转换命令后, 程序总要等待DS18B20 的返回信号,一旦某个DS18B20 接触不好或断线, 当程序读该DS18B20 时, 将没有返回信号, 程序进入死循环。
这一点在进行DS18B20 硬件连接和软件设计时也要给予一定的重视。
2、对DS18B20的一般控制流程整个对DS18B20的操作都是以“复位”、“等待应答”、“读一字节”、“写一字节”这几个操作为基础的, 所以他们是使DS18B20 能否正常测温的关键。
对不同的操作只要发出相应的命令控制字即可, 详情请参看有关技术文档。
典型的测温流程如图三所示:图三四、实验步骤1、连线:温度传感器输入输出口OUT接P3^5口;2、打开电源,观察数码管显示的温度;3、改变温度传感器DS18B20附近温度,观察数码管上温度的变化。
五、流程图与程序设计1、流程图1.1.主函数部分:1.2 .温度测量部分:NY开 始温度测量数据计算处理数据位分配数码管显示数码管刷新初始化DS18B20 TxReset()应答脉冲RxWait() 复位,初始化DS18B20 TxReset() 跳过ROM 匹配WrByte(0xcc)启动温度转换convert() 读取温度RdByte()返回值返回跳过ROM 匹配WrByte(0x44)1.3数据计算处理部分 1.3.1整数部分NYYN1.3.2小数部分Y N2、源程序/********************************************************************************* ****************程序名:main.c ********************* ****************功 能:温度传感器测量温度 ********************** **************** ********************** ****************单 位:湖南理工物电系创新基地 ********************** **************** All rights reserved ********************** **************** ********************** ****************开始时间:2009.08.07 ********************** ****************结束时间:2009.08.10 ********************** ********** ******版本信息: **************************************备 注:DS18B20的输入输出口接单片机的P3^5口********************* *********************************************************************************/ #include<reg52.h>取出8位整数部分数据ii >=0 ?返回值返回i=i-1小数部分全为0取出4位小数部分存入数组整数i >=0 ?原码计算小数位的值补码计算小数位的值返回值返回#define uint unsigned int#define uchar unsigned char#define negative -100uchar tplsb;//温度值低位字节uchar tpmsb;//温度值高位字节/***************************数字0-9及字母A,b,C,d,E,F,负号*******************/ uchar code table1[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e,0x02};/***********************************带小数点的数字0-9****************************/ uchar code table2[]={0xfd,0x61,0xdb,0xf3,0x67,0xb7,0xbf,0xe1,0xff,0xf7};/**************************************端口定义*********************************/ sbit DQ=P3^5;sbit P14=P1^4;/*************************************延时t秒************************************/ void delay(uint t){uint i;while(t--)for(i=0;i<125;i++);}/******************************产生复位脉冲,初始化DS18B20*********************/ void TxReset(void){uint i;DQ=0;/*拉低约900us*/i=100;while(i>0) i--;DQ=1; //产生上升沿i=4;while(i>0) i--;}/************************************等待应答脉冲*******************************/ void RxWait(void){uint i;while(DQ);while(~DQ);i=4;while(i>0) i--;}/***************************读取数据的一位,满足读时限要求*********************/bit RdBit(void){uint i;bit b;DQ=0;i++; //保持低至少1usDQ=1;i++; //延时15us以上,读时隙上升沿后15us,DS18B20输出数据才有效i++;b=DQ;i=8;while(i>0) i--;//读时延时不低于60usreturn(b);}/********************************读取数据的一个字节*******************************/ uchar RdByte(void){uchar i,j,b;b=0;for(i=1;i<=8;i++){j=RdBit();b=(j<<7)|(b>>1);}return(b);}/**********************写数据的一个字节,满足写1和写0的时隙要求****************/ void WrByte(uchar b){uint i;uchar j;bit btmp;for(j=1;j<=8;j++){btmp=b&0x01;b=b>>1; //取下一位(由低位到高位)if(btmp){/*写1*/DQ=0;i++;i++; //延时15usDQ=1;i=8;while(i>0) i--;//整个写1时隙不低于60us}else{/*写0*/DQ=0;i=8;while(i>0) i--;//保持低电平在60us到120us之间DQ=1;i++;i++;}}}/**********************************启动温度转换**********************************/ void convert(void){TxReset();//产生复位脉冲,初始化DS18B20RxWait();//等待DS18B20给出应答脉冲delay(1);//延时WrByte(0xcc);//skip rom命令WrByte(0x44);//convert T命令}/*************************************读取温度值**********************************/ void RdTemp(void){TxReset();//产生复位脉冲,初始化DS18B20RxWait();//等待DS18B20给出应答脉冲delay(1);//延时WrByte(0xcc);//skip rom命令WrByte(0xbe);//read scratchpad 命令tplsb=RdByte();//温度值低位字节(其中低4位位二进制的"小数"部分)tpmsb=RdByte();//温度值高位字节(其中高5位为符号位)}/************************************温度测量主函数******************************/ char Temperature(void){char T=0;delay(1);//延时1msconvert();//启动温度转换,需要750msdelay(1000);//延时1sRdTemp();//读取温度tplsb=tplsb>>4;tpmsb=tpmsb<<4;T=tpmsb|tplsb;return (T); //返回取出的温度值整数部分,有符号}/*********************************取出四位小数位********************************/ uchar *XiaoShuWei(void){ uchar i,AfterDot[4];bit Compare=1; //用于取位for(i=0;i<4;i++){AfterDot[i]=tplsb&Compare;tplsb=tplsb>>1; //每取一位右移,准备下一次}return(AfterDot);//四位小数位以数组返回}/*********************************小数位值的计算*********************************/ unsigned short JiSuanXiaoShu(char T1,uchar *After_Dot){unsigned short XSW;if(T1>=0)//为正数时小数原码表示XSW=After_Dot[3]*500+After_Dot[2]*250+After_Dot[1]*125+After_Dot[0]*62;else//为负数时小数补码表示{if(After_Dot[0]==1)//最后一位是1,转换位原码时不用借位XSW=(!After_Dot[3])*500+(!After_Dot[2])*250+(!After_Dot[1])*125+After_Dot[0]*62;if(After_Dot[0]==0&&After_Dot[1]==1)XSW=(!After_Dot[3])*500+(!After_Dot[2])*250+After_Dot[1]*125;if(After_Dot[0]==0&&After_Dot[1]==0&&After_Dot[2]==1)XSW=(!After_Dot[3])*500+After_Dot[2]*250;if(After_Dot[0]==0&&After_Dot[1]==0&&After_Dot[2]==0&&After_Dot[3]==1)XSW=After_Dot[3]*500;if(After_Dot[0]==0&&After_Dot[1]==0&&After_Dot[2]==0&&After_Dot[3]==0)XSW=0;}return(XSW);//小数部分返回小数点左移三位后的值}/*******数位分配函数***********/uchar *shuweifenpei(char CC, unsigned short DD,uchar After_dot[4]){uchar tab[4];uchar ge,shi,bai,sign,k;/*温度范围是-55~125*/if(CC>=0){sign=CC/100; //分配百位bai=(CC%100)/10; //分配十位shi=CC%10; //分配个位ge=DD/100; //分配小数位}if(CC<0){sign=negative;bai=(0-CC)/10;k=After_dot[3]==0&&After_dot[2]==0&&After_dot[1]==0&&After_dot[0]==0;// k用于判断小数位是否全为0if(k==1)shi=(0-CC)%10;//如果小数位全0,个位是补码形式if(k!=1) shi=(-1-CC)%10;//如果小数位非全0,整数部分为反码,个位是反码ge=DD/100;}tab[0]=sign;tab[1]=bai;tab[2]=shi;tab[3]=ge;return(tab);//将数位以数组tab[]返回}/***************************结果显示数位译码(不带小数点) *************************/ uchar yima(uchar ge_shi_bai_sign){uchar GE_SHI_BAI_SIGN;switch(ge_shi_bai_sign){case 0:GE_SHI_BAI_SIGN=table1[0];break;case 1:GE_SHI_BAI_SIGN=table1[1];break;case 2:GE_SHI_BAI_SIGN=table1[2];break;case 3:GE_SHI_BAI_SIGN=table1[3];break;case 4:GE_SHI_BAI_SIGN=table1[4];break;case 5:GE_SHI_BAI_SIGN=table1[5];break;case 6:GE_SHI_BAI_SIGN=table1[6];break;case 7:GE_SHI_BAI_SIGN=table1[7];break;case 8:GE_SHI_BAI_SIGN=table1[8];break;case 9:GE_SHI_BAI_SIGN=table1[9];break;case negative:GE_SHI_BAI_SIGN=table1[16];break; //负号'-'//case Error:GE_SHI=table1[14];break; //报错'EE'}return(GE_SHI_BAI_SIGN);}/******************************译码带小数点的个位*********************************/ uchar yima2(uchar ge_shi_bai_sign){uchar GE_SHI_BAI_SIGN;switch(ge_shi_bai_sign){case 0:GE_SHI_BAI_SIGN=table2[0];break;case 1:GE_SHI_BAI_SIGN=table2[1];break;case 2:GE_SHI_BAI_SIGN=table2[2];break;case 3:GE_SHI_BAI_SIGN=table2[3];break;case 4:GE_SHI_BAI_SIGN=table2[4];break;case 5:GE_SHI_BAI_SIGN=table2[5];break;case 6:GE_SHI_BAI_SIGN=table2[6];break;case 7:GE_SHI_BAI_SIGN=table2[7];break;case 8:GE_SHI_BAI_SIGN=table2[8];break;case 9:GE_SHI_BAI_SIGN=table2[9];break;//case negative:GE_SHI_BAI_SIGN=table1[16];break; //负号'-'//case Error:GE_SHI=table1[14];break; //报错'EE'}return(GE_SHI_BAI_SIGN);}/********************************数码管显示初始化*********************************/ void Init_shumaguan(void){P1=0x00;}void Output(uchar figure1,uchar figure2,uchar figure3,uchar figure4) //figure1,figure2,figure3,figure4分别为符号位,百位,十位,个位{ //负数显示符号位,正数显示百位P14=1;P0=figure1;P14=0;P1=0x08;delay(1);//显示十位P14=1;P0=figure2;P14=0;P1=0x04;delay(1);//显示个位(带小数点)P14=1;P0=figure3;P14=0;P1=0x02;delay(1);P14=1; //显示小数位P0=figure4;P14=0;P1=0x01;delay(1);}/************************************main()主函数********************************/ void main(){ while(1){char WenDu;uchar i=100,j=2;uchar *SW,*XiaoShu2,SIGN,GE,SHI,BAI;unsigned short XiaoShu;WenDu=Temperature();//测量温度,并把整数部分赋值给WenDuXiaoShu2=XiaoShuWei();//将四位小数位取出存入数组XiaoShu2XiaoShu=JiSuanXiaoShu(WenDu,XiaoShu2);//计算小数的值SW=shuweifenpei(WenDu,XiaoShu,XiaoShu2);//将各位数字分配到数码管上SIGN=yima(SW[0]);//将数字译码为数码管的代码BAI=yima(SW[1]);SHI=yima2(SW[2]);GE=yima(SW[3]);while(i--){ while(j--){Output(SIGN,BAI,SHI,GE);}j=6;}Init_shumaguan();}}六、问题与讨论1、怎样用液晶来显示温度的测量数据;2、怎样利用温度传感器来设置报警装置或实现自动控制。