Ds18b20温度传感器使用手册

合集下载

DS18B20数据手册-中文版-140407

DS18B20数据手册-中文版-140407
DS18B20 的温度输出数据时在摄氏度下校准的;若是在华氏度下应用的话,可以用查表法或 者常规的数据换算。温度数据以一个 16 位标志扩展二进制补码数的形式存储在温度寄存器中(详
DS18B20
见图 2)。符号标志位(S)温度的正负极性:正数则 S=0,负数则 S=1。如果 DS18B20 被定义为 12 位的转换精度,温度寄存器中的所有位都将包含有效数据。若为 11 位转换精度,则 bit 0 为未 定义的。若为 10 位转换精度,则 bit 1 和 bit 0 为未定义的。 若为 9 位转换精度,则 bit 2、bit 1 和 bit 0 为未定义的。表格 1 为在 12 位转换精度下温度输出数据与相对应温度之间的关系表。
管脚定义图
DS18B20
订购信息
零件
温度范围
引脚数-封装
DS18B20
-55℃至+125℃
3 TO-92
DS18B20+
-55℃至+125℃
3 TO-92
DS18B20/T&R
-55℃至+125℃
3 TO-92(2000 片)
DS18B20+T&
-55℃至+125℃
3 TO-92(2000 片)
DS18B20-SL/T
VPU
DQ
GND
VDD
TH
CPP
TL
VDD
说明-温度测量
DS18B20 的核心功能是直接温度-数字测量。其温度转换可由用户自定义为 9、10、11、12 位 精度分别为 0.5℃、0.25℃、0.125℃、0.0625℃分辨率。值得注意的是,上电默认为 12 位转换精 度。DS18B20 上电后工作在低功耗闲置状态下。主设备必须向 DS18B20 发送温度转换命令[44h] 才能开始温度转换。温度转换后,温度转换的值将会保存在暂存存储器的温度寄存器中,并且 DS18B20 将会恢复到闲置状态。如果 DS18B20 是由外部供电,当发送完温度转换命令[44h]后, 主设备可以执行“读数据时序”(请参阅“1-Wire 总线系统”章节),若此时温度转换正在进行 DS18B20 将会响应“0”,若温度转换完成则会响应“1”。如果 DS18B20 是由“寄生电源”供电, 该响应的技术将不能使用,因为在整个温度转换期间,总线必须强制拉高。该总线的“寄生电源” 供电方式将会在“DS18B20 的供电”章节中详细讲解。

数字温度传感器DS18B20C-25页说明

数字温度传感器DS18B20C-25页说明

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※DS1B820单总线数字温度计※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※一、概述1.1一般说明DS18B20数字温度计提供9至12位(可设置)温度读数,指示器件的温度。

信息经过单线接口送入DS18B20或从DS18B20送出,因此从中央处理器到DS18B20仅需连接一条线(另加上地线)。

读、写和完成温度变换所需的电源可以由数据线本身提供,而不需要外部电源。

因为每一个DS18B20有唯一的系列号(silicon serial number),因此多个DS18B20可以连接在于同一条单线总线上。

这允许在许多不同的地方放置DS18B20温度传感器。

此特性可广泛地应用于HVAC环境控制,建筑物、设备或机械内的温度检测,以及过程监视和控制中的温度检测。

1.2特性·独特的单线接口,只需1个接口引脚即可通信·多点并接能力使分布式温度检测的应用得以简化·不需要外部元件·可用数据线供电,若外加电源,范围3V至5.5V·不需备份电源·测量范围从-55℃至+125℃,对应的华氏温度范围是-67℉至257℉。

·在-10℃至+85℃内的准确度为±0.5℃。

·可编程设定9至12位的温度分辨率·在750毫秒(最大值)内把温度变换为12位数字值·用户可设置,非易失性的温度告警值·告警搜索命令可在众多的器件中,快速识别出超过设定的“告警温度”值的器件。

·应用范围包括恒温控制,工业系统,消费类产品,温度计或任何热敏系统25/11.3引脚排列1.4详细的引脚说明TSOC8脚SOIC TO92符说明151GND地线242DQ数据输入/输出引脚。

漏极开路结构,详见“寄生电源”一节。

DS18B20温度传感器的使用方法

DS18B20温度传感器的使用方法

DS18B20温度传感器的使用方法;这是关于DS18B20的读写程序,数据脚P2.2,晶振11.0592mhz;温度传感器18B20汇编程序,采用器件默认的12位转化,最大转化时间750微秒;可以将检测到的温度直接显示到AT89C51的两个数码管上;显示温度00到99度,很准确无需校正!ORG 0000H;单片机内存分配申明!TEMPER_L EQU 29H;用于保存读出温度的低8位TEMPER_H EQU 28H;用于保存读出温度的高8位FLAG1 EQU 38H;是否检测到DS18B20标志位a_bit equ 20h ;数码管个位数存放内存位置b_bit equ 21h ;数码管十位数存放内存位置MAIN:LCALL GET_TEMPER;调用读温度子程序;进行温度显示,这里我们考虑用网站提供的两位数码管来显示温度;显示范围00到99度,显示精度为1度;因为12位转化时每一位的精度为0.0625度,我们不要求显示小数所以可以抛弃29H的低4位;将28H中的低4位移入29H中的高4位,这样获得一个新字节,这个字节就是实际测量获得的温度;这个转化温度的方法可是我想出来的哦~~非常简洁无需乘于0.0625系数MOV A,29HMOV C,40H;将28H中的最低位移入CRRC AMOV C,41HRRC AMOV C,42HRRC AMOV C,43HRRC AMOV 29H,ALCALL DISPLAY;调用数码管显示子程序CPL P1.0AJMP MAIN; 这是DS18B20复位初始化子程序INIT_1820:SETB P2.2NOPCLR P2.2;主机发出延时537微秒的复位低脉冲MOV R1,#3TSR1:MOV R0,#107DJNZ R0,$DJNZ R1,TSR1SETB P2.2;然后拉高数据线NOPNOPNOPMOV R0,#25HTSR2:JNB P2.2,TSR3;等待DS18B20回应DJNZ R0,TSR2LJMP TSR4 ; 延时TSR3:SETB FLAG1 ; 置标志位,表示DS1820存在CLR P1.7;检查到DS18B20就点亮P1.7LEDLJMP TSR5TSR4:CLR FLAG1 ; 清标志位,表示DS1820不存在CLR P1.1LJMP TSR7TSR5:MOV R0,#117TSR6:DJNZ R0,TSR6 ; 时序要求延时一段时间TSR7:SETB P2.2RET; 读出转换后的温度值GET_TEMPER:SETB P2.2LCALL INIT_1820;先复位DS18B20JB FLAG1,TSS2CLR P1.2RET ; 判断DS1820是否存在?若DS18B20不存在则返回TSS2:CLR P1.3;DS18B20已经被检测到!!!!!!!!!!!!!!!!!!MOV A,#0CCH ; 跳过ROM匹配LCALL WRITE_1820MOV A,#44H ; 发出温度转换命令LCALL WRITE_1820;这里通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话750微秒LCALL DISPLAYLCALL INIT_1820;准备读温度前先复位MOV A,#0CCH ; 跳过ROM匹配LCALL WRITE_1820MOV A,#0BEH ; 发出读温度命令LCALL WRITE_1820LCALL READ_18200; 将读出的温度数据保存到35H/36HCLR P1.4RET;写DS18B20的子程序(有具体的时序要求)WRITE_1820:MOV R2,#8;一共8位数据CLR CWR1:CLR P2.2MOV R3,#5DJNZ R3,$RRC AMOV P2.2,CMOV R3,#21DJNZ R3,$SETB P2.2NOPDJNZ R2,WR1SETB P2.2RETREAD_18200: ; 读DS18B20的程序,从DS18B20中读出两个字节的温度数据MOV R4,#2 ; 将温度高位和低位从DS18B20中读出MOV R1,#29H ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)RE00:MOV R2,#8;数据一共有8位RE01:CLR CSETB P2.2NOPNOPCLR P2.2NOPNOPNOPSETB P2.2MOV R3,#8RE10:DJNZ R3,RE10MOV C,P2.2MOV R3,#21RE20:DJNZ R3,RE20RRC ADJNZ R2,RE01MOV @R1,ADEC R1DJNZ R4,RE00RET;显示子程序display: mov a,29H;将29H中的十六进制数转换成10进制mov b,#10 ;10进制/10=10进制div abmov b_bit,a ;十位在amov a_bit,b ;个位在bmov dptr,#numtab ;指定查表启始地址mov r0,#4dpl1: mov r1,#250 ;显示1000次dplop: mov a,a_bit ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码mov p0,a ;送出个位的7段代码clr p2.7 ;开个位显示acall d1ms ;显示1mssetb p2.7mov a,b_bit ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码mov p0,a ;送出十位的7段代码clr p2.6 ;开十位显示acall d1ms ;显示1mssetb p2.6djnz r1,dplop ;100次没完循环djnz r0,dpl1 ;4个100次没完循环ret;1MS延时D1MS: MOV R7,#80DJNZ R7,$RET;实验板上的7段数码管0~9数字的共阴显示代码numtab: DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH END。

DS18B20中文手册

DS18B20中文手册
总线控制器通过发出报警搜索命令[ECh]检测总线上所有的 DS18B20 报警标识。 任何置位报警标识的 DS18B20 将响应这条命令,所以总线控制器能精确定位每一 个满足报警条件的 DS18B20。如果报警条件成立,而 TH 或 TL 的设置已经改变, 另一个温度转换将重新确认报警条件。
DS18B20 供电
达拉斯 半导体
DS18B20 可编程分辨率的 单总线®数字温度计
特征
引脚排列
l 独特的单线接口仅需一个端口引脚 进行通讯
l 每个器件有唯一的 64 位的序列号存 储在内部存储器中
l 简单的多点分布式测温应用 l 无需外部器件 l 可通过数据线供电。供电范围为 3.0V
到 5.5V。 l 测温范围为-55~+125℃(-67~+
外部电源给 DS18B20 供电 图 5
64 位(激)光刻只读存储器
每只 DS18B20 都有一个唯一存储在 ROM 中的 64 位编码。最前面 8 位是单线系列 编码:28h。接着的 48 位是一个唯一的序列号。最后 8 位是以上 56 位的 CRC 编 码。CRC 的详细解释见 CRC 发生器节。64 位 ROM 和 ROM 操作控制区允许 DS18B20 作为单总线器件并按照详述于单总线系统节的单总线协议工作。
每个 DS18B20 都有一个独特的 64 位序列号,从而允许多只 DS18B20 同时连在 一根单线总线上;因此,很简单就可以用一个微控制器去控制很多覆盖在一大片 区域的 DS18B20。这一特性在 HVAC 环境控制、探测建筑物、仪器或机器的温 度以及过程监测和控制等方面非常有用。
详细的引脚说明 表 1
8 引脚 SOIC 封装* TO-9 封装
5
1
4

DS18B20详细使用方法

DS18B20详细使用方法

DS18B20的详细使用方法1.DS18B20概述DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。

因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。

2、DS18B20产品的特点〔1〕.只要求一个端口即可实现通信。

〔2〕.在DS18B20中的每个器件上都有独一无二的序列号。

〔3〕.实际应用中不需要外部任何元器件即可实现测温。

〔4〕.测量温度范围在-55。

C到+125。

C之间。

〔5〕.数字温度计的分辨率用户可以从9位到12位选择。

〔6〕.内部有温度上、下限告警设置。

3、DS18B20引脚图及引脚功能介绍TO-92封装的DS18B20的引脚排列见图1,其引脚功能描述见表1。

〔底视图〕图1表1DS18B20详细引脚功能描述4.DS18B20的使用方法由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。

由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。

DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。

该协议定义了几种信号的时序:初始化时序、读时序、写时序。

所有时序都是将主机作为主设备,单总线器件作为从设备。

而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。

数据和命令的传输都是低位在先。

DS18B20的复位时序DS18B20的读时序对于DS18B20的读时序分为读0时序和读1时序两个过程。

对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。

DS18B20在完成一个读时序过程,至少需要60us才能完成。

DS18B20温度传感器使用简介

DS18B20温度传感器使用简介

DS18B20温度传感器使⽤简介DS18xx系列温度传感器是数字式温度传感器,相对于传统温度传感器精度⾼、稳定性好、电路简单、控制⽅便,在这⾥以DS18B20为例做简单应⽤介绍。

详细资料请参阅芯⽚⼿册。

⼀、特性:(1)应⽤中不需要外部任何元器件即可实现测温电路。

(2)测温范围-55~+125℃,最⼤精度0.0625℃。

(3)只通过⼀条数据线即可实现通信。

(4)每个DS1820器件上都有独⼀⽆⼆的序列号,所以⼀条数据线上可以挂接很多该传感器。

(5)内部有温度上、下限告警功能。

⼆、操作简介DS18B20⼯作时需要接收特定的指令来完成相应功能(指令,可以简单的理解为可以被识别并有相应意义的⼀系列⾼低电平信号),它的指令可分为ROM指令和RAM指令;ROM指令主要对其内部的ROM进⾏操作,如查所使⽤DS18B20的序列号等,如果只使⽤⼀个DS18B20,ROM操作⼀般就可以直接跳过了;RAM指令主要是完成对其内RAM中的数据进⾏操作,如让其开始进⾏数据采集、读数据等。

DS18B20数字温度传感器是单总线器件,数据的读写只通过⼀条数据线进⾏并且这⼀条线上允许挂很多该传感器;这样对器件进⾏读写指令时就会⿇烦⼀些,必须应⽤特定时序来识别⾼低电平信号(如写⾼电平1,并不是把数据线直接拉⾼,⽽是⽤有⼀定时序关系的⾼低电平来代表写1),所以指令表中的0、1在写给DS18B20时就得变成代表0、1电平的时序段序列。

同样,从DS18B20读数据时,也是由特定的时序来完成数据读取。

对DS18B20进⾏读写的时序图如下:硬件连接⽅式有两种,⼀种是由单独电源供电(3~5V);第⼆种是由数据线为DS18B20供电(⼯作速度相对较慢)。

单独电源供电⽅式数据线为DS1820供电⽅式三、DS1820的⼯作过程:1. 复位操作2. 执⾏ROM操作的5条指令之⼀:1)读ROM,2)匹配ROM,3)搜索ROM,4)跳过ROM,5)报警搜索。

DS18B20使用方法

DS18B20使用方法

DS18B20的外形和内部结构
DS18B20内部结构主要由4部分组成:64位光刻ROM、温度传感器、非挥发的 温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排列如图所示。
DS18B20引脚定义如下: (1)DQ为数字信号输入/输出端。 (2)GND为电源地。 (3)VDD为外接供电电源输入端 (在寄生电源接线方式时接地)。
DS18B20外形及引脚排列图
DS18B20工作原理
DS18B20测温原理框图如图所示: DS18B20测温原理框图
图中低温度系数晶振的振荡频率受温度影响很小, 用于产生固定频率的脉冲信号送给计数器1。高温 度系数晶振随温度变化其振荡频率明显改变,所产 生的信号作为计数器2的脉冲输入。计数器1和温度 寄存器被预置在55℃所对应的一个基数值。计数 器1对低温度系数晶振产生的脉冲信号进行减法计 数,当计数器1的预置值减到0时,温度寄存器的值 将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数, 如此循环直到计数器2计数到0时,停止温度寄存器 值的累加,此时温度寄存器中的数值即为所测温度。 斜率累加器用于补偿和修正测温过程中的非线性, 其输出用于修正计数器1的预置值。
单总线的时序
One-Wire协议定义了复位脉冲、应答脉冲、写0、读0和读1时序等几种 信号类型。所有的单总线命令序列(初始化,ROM命令,功能命令) 都是由这些基本的信号类型组成的。在这些信号中,除了应答脉冲外, 其他均由主机发出同步信号,并且发送的所有命令和数据都是字节的低 位在前。
• 初始化时序
数字化温度传感器DS18B20
美国DALLAS半导体公司的数字化温度传感器DS18B20是世界上第一片支 持“一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用 户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新 一代的DS18B20体积更小、更经济、更灵活。DS18B20测量温度范围为 55℃~+125℃。在10℃~+85℃范围内,精度为0.5℃。现场温度直接 以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

亿学通电子 DS18B20 温度传感器使用手册

亿学通电子 DS18B20 温度传感器使用手册

1) DS18B20 是DALLAS 公司生产的一线制数字温度传感器; 2) 具有3 引脚TO-92 小体积封装形式; 3) 温度测量范围为-55℃~+125℃; 4) 电源供电范围为3V~5.5V ; 5) 可编程为9 位~12 位数字表示;6) 测温分辨率可达0.0625℃,被测温度用符号扩展的16 位数字量方式串行输出;7) 其工作电源既可在远端引入,也可采用寄生电源方式产生;8) 多个DS18B20 可以并联到3 根(VDD、DQ 和GND)或2 根(利用DQ 线供电、GND)线上,CPU 只需一根端口线就能与总线上的多个串联的DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。

一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。

TO-92封装的DS18B20DS18B20 的管脚排列及不同封装形式如图 2所示,DQ 为数字信号输入/输出端;GND 为电源地;VDD 为外接供电电源输入端(在寄生电源接线方式时接地,见),NC 表示无连接。

管脚图DS18B20内部结构如图3所示,主要由4 部分组成:64 位ROM 、温度传感器、非易失性存储的温度报警触发器TH 和TL 、配置寄存器。

DS18B20管脚DS18B20概述DS18B20内部结构图非常适用于远距离多点温度检测系统。

DQ-数据输入输出。

漏极开路1 线接口。

也在寄生电源模式时给设备提供电源。

访问DS18B20 的顺序如理初始化;DS18B20读写 连接图应用领域ROM 命令(接着是任何需要的数据交换);DS18B20 函数命令(接着是任何需要的数据交换)。

每一次访问DS18B20 时必须遵循这一顺序,如果其中的任何一步缺少或打乱它们的顺序,DS18B20 将不会响应。

(1)初始化时序所有与DS18B20 的通信首先必须初始化:控制器发出复位脉冲,DS18B20 以存在脉冲响应。

DS18B20中文手册

DS18B20中文手册

达拉斯DS18B20半导体可编程分辨率的单总线®数字温度计特征引脚排列l独特的单线接口仅需一个端口引脚进行通讯l每个器件有唯一的64位的序列号存储在内部存储器中l简单的多点分布式测温应用l无需外部器件l可通过数据线供电。

供电范围为3.0V到5.5V。

l测温范围为-55~+125℃(-67~+257℉)l在-10~+85℃范围内精确度为±5℃l温度计分辨率可以被使用者选择为9~12位l最多在750ms内将温度转换为12位数字l用户可定义的非易失性温度报警设置l报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件l与DS1822兼容的软件l应用包括温度控制、工业系统、消费品、温度计或任何热感测系统引脚说明GND -地DQ -数据I/OVDD -可选电源电压NC -无连接说明DS18B20数字温度计提供9-12位摄氏温度测量而且有一个由高低电平触发的可编程的不因电源消失而改变的报警功能。

DS18B20通过一个单线接口发送或接受信息,因此在中央处理器和DS18B20之间仅需一条连接线(加上地线)。

它的测温范围为-55~+125℃,并且在-10~+85℃精度为±5℃。

除此之外,DS18B20能直接从单线通讯线上汲取能量,除去了对外部电源的需求。

每个DS18B20都有一个独特的64位序列号,从而允许多只DS18B20同时连在一根单线总线上;因此,很简单就可以用一个微控制器去控制很多覆盖在一大片区域的DS18B20。

这一特性在HVAC环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。

详细的引脚说明表18引脚SOIC封装* TO-9封装符号说明5 1 GND 接地。

4 2 DQ 数据输入/输出引脚。

对于单线操作:漏极开路。

当工作在寄生电源模式时用来提供电源(建“寄生电源”节)。

3 3 VDD 可选的VDD引脚。

工作与寄生电源模式时VDD必须接地。

*所有上表未提及的引脚都无连接。

DS18B20使用教程

DS18B20使用教程

DS18B20使用教程一、硬件准备使用DS18B20前,需要准备以下硬件:1.DS18B20传感器:一种带有3引脚的传感器,其中VCC引脚连接到3.3V或5V电源,GND引脚连接到地,数据引脚连接到一个GPIO引脚。

2.上拉电阻:将数据引脚连接到一个引脚,同时引脚上接一个4.7kΩ的上拉电阻。

二、软件准备使用DS18B20需要安装相应的软件库。

根据所用的控制器和开发环境不同,可以选择不同的库。

下面以Arduino为例,介绍DS18B20的使用方法。

1.配置引脚首先,在Arduino代码中设置引脚,指定将DS18B20的数据引脚接到哪个引脚上。

可以通过如下代码片段实现,其中的`ONE_WIRE_BUS`表示数据引脚所连接的Arduino引脚编号。

```cpp#define ONE_WIRE_BUS 2 // 数据引脚连接到Arduino的2号引脚```2.加载库文件然后,在Arduino IDE中,点击“工具”->“管理库”,`OneWire`库并安装。

这个库提供了与DS18B20进行通信的函数。

3.编写代码接下来,编写代码来读取DS18B20的温度。

首先在代码中引入`OneWire`库,然后初始化一个`OneWire`对象,并将数据引脚作为参数传入。

接下来,通过`search`函数查找DS18B20设备的地址,通过`reset`函数向其发送初始化信号。

然后,使用`readTemperature`函数从DS18B20读取温度值,最后将温度值打印出来。

```cpp#include <OneWire.h>OneWire ds(ONE_WIRE_BUS); // 初始化数据引脚void setuSerial.begin(9600); // 初始化串口void loobyte i;byte present = 0;byte type_s;byte data[12];byte addr[8];float celsius, temperature;if ( !ds.search(addr))Serial.println("No more addresses.");Serial.println(;ds.reset_search(;delay(250);return;}Serial.print("ROM =");for( i = 0; i < 8; i++)Serial.write(' ');Serial.print(addr[i], HEX);}if (OneWire::crc8(addr, 7) != addr[7])Serial.println("CRC is not valid!");return;}Serial.println(;//DS18B20的型号//下面的代码是根据型号不同采用不同的温度读取方式if (addr[0] == 0x10)Serial.println(" Chip = DS18S20");type_s = 1;} else if (addr[0] == 0x28)Serial.println(" Chip = DS18B20");type_s = 0;} elseSerial.println("Device is not a DS18x20 family device.");return;}ds.reset(;ds.select(addr);ds.write(0x44, 1); // 开始温度转换delay(1000); //等待温度转换完成present = ds.reset(;ds.select(addr);ds.write(0xBE); // 读取温度for ( i = 0; i < 9; i++) { // 从DS18B20读取9个字节的温度数据data[i] = ds.read(;}//将读取到的数据进行处理int raw = (data[1] << 8) , data[0];if (type_s)raw = raw << 3; // 9 bit resolution defaultif (data[7] == 0x10)raw = (raw & 0xFFF0) + 12 - data[6];}} elsebyte cfg = (data[4] & 0x60);if (cfg == 0x00) raw = raw << 3; // 9 bit resolution, 93.75 mselse if (cfg == 0x20) raw = raw << 2; // 10 bit res, 187.5 mselse if (cfg == 0x40) raw = raw << 1; // 11 bit res, 375 ms }celsius = (float)raw / 16.0; // 将数据转换为摄氏度temperature = celsius * 1.8 + 32.0; // 将数据转换为华氏度Serial.print(" Temperature = ");Serial.print(celsius);Serial.print(" Celsius, ");Serial.print(temperature);Serial.println(" Fahrenheit");```4.上传代码最后,在Arduino IDE中将代码上传到Arduino板上。

DS18B20数据手册-中文版

DS18B20数据手册-中文版
13.2
由接闪器、引下线和接地装置组成,主要用于防护直击雷的防雷装置。
13.3
除外部防雷装置外,所有其他附加设施均为内部防雷装置,主要用于减小和防护雷电流在需防护空间内所产生的电磁效应。
13.4
一种有意或非有意的导电连接,由于这种连接,可使电路或电气设备接到大地或接到代替大地的某种较大的导电体。
1注:接地的目的是:a.使连接到地的导体具有等于或近似于大地(或代替大地的导电体)的电位;b.引导入地电流流入和流出大地(或代替大地的导电体)。
15.5.12
15.5.13
表2等电位连接工频接地电阻值
名 称
允许值
交流工作地(即中性线或零线接地)
<4Ω
直流工作地(即信号地或逻辑地)
<4Ω
安全保护地(即PE线)
<4Ω
防雷地
<10Ω
共用地(即联合接地)
<4Ω
15.5.14
15.6
15.6.1
15.6.2
15.6.3
15.6.4
15.6.5
15.6.6
13.12
对防雷装置的外观部分进行目测,对隐蔽部分利用原设计资料或质量监督资料核实的过程。
13.13
按照防雷装置的设计标准要求,对防雷装置进行的检查、测量及检测数据分析处理的全过程。
14
14.1
14.2
当第一类防雷建筑物的面积占建筑物总面积的30%及以上时,该建筑物宜确定为第一类防雷建筑物;
当第一类防雷建筑物的面积占建筑物总面积的30%以下,且第二类防雷建筑物的面积占建筑物总面积的30%及以上时,或当这两类防雷建筑物的面积均小于建筑物总面积的30%但其面积之和又大于30%时,该建筑物宜确定为第二类防雷建筑物;

DS18B20数据手册

DS18B20数据手册

位 ROM 和 ROM 操作控制部分允许 DS1820 作为一个单线器件工作并遵循 单线总线系统 一节中所
详述的单线协议 直到 ROM 操作协议被满足 DS1820 控制部分的功能是不可访问的 此协议在 ROM
操作协议流程图 图 6 中叙述 单线总线主机必须首先操作五种 ROM 操作命令之一 1 Read ROM(读
+0
00000000 00000000
-1/2
11111111 11111111
-25
11111111 11001110
-55
11111111 10010010
安息字输出 十六进制 00FAh 0032h 0001h 0000h FFFFh FFCEh FF92h
2 4 运用 告警信号
在 DS1820 完成温度变换之后 温度值与贮存在 TH 和 TL 内的触发值相比较 因为这些寄存
DS1820
DS1820 单总线数字温度计
一 概述
济南清风电子
1 1 一般说明
----------------更多资料和源程序,请访问以下网站
===========================
DS1820 数字温度计提供ht9tp位://w温ww度.q读fm数cu.,co指m示器件的温度

以下的过程可以获得较高的分辩率 首先 读温度 并从读得的值截去 0.5 位(最低有效位) 这个值便是 TEMP_READ 然后可以读留在计数器内的值 此值是门开通期停止之后计数剩余
TEMPRATURE(温度 = TEMP _ READ − 0.25 + (COUNT _ PER _ C − COUNT _ REMAIN) COUNT _ PER _ C

伟纳电子 DS18B20 单线数字温度传感器 说明书

伟纳电子 DS18B20 单线数字温度传感器 说明书

DS18B20 单线数字温度传感器☆☆☆☆ Email: support@DS18B20 单线数字温度传感器新的“一线器件”BS18B20 体积更小、适用电压更宽、更经济Dallas 半导体公司的数字化温度传感器 DS1820 是世界上第一片支持 “一线总线”接口的温度传感 器。

一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。

现在,新一代的“DS18B20”体积更小、更经济、更灵活。

使您可以充分发挥“一线总线”的长处。

DS18B20、 DS1822 “一线总线”数字化温度传感器同 DS1820 一样, DS18B20 也 支持“一线总线”接口, 测量温度范围为 -55°C~+125°C, 在-10~+85°C 范围内,精度为±0.5°C。

DS1822 的精度较差为± 2°C 。

现场温度直接以“一线总线”的数字方式传输, 大大提高了系统的抗干扰性。

适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类 消费电子产品等。

与前一代产品不同,新的产品支持 3V~5.5V 的电压范围,使系统设计更灵活、方便。

而且新一代产品 更便宜,体积更小。

DS18B20、 DS1822 的特性DS18B20 可以程序设定 9~12 位的分辨率,精度为±0.5°C。

可选更小的封装方式,更宽的电压适用范 围。

分辨率设定,及用户设定的报警温度存储在 EEPROM 中,掉电后依然保存。

DS18B20 的性能是新一代产 品中最好的!性能价格比也非常出色! DS1822 与 DS18B20 软件兼容, DS18B20 的简化版本。

是 省略了存储用户定义报警温度、 分辨率参数的 EEPROM, 精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。

DS18B20说明书

DS18B20说明书

附录1:DS18B20型单线智能温度传感器简介由美国DALLAS半导体公司生产的DSl8B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中,例如多路温度测控仪、中央空调、大型冷库、恒温装置等。

此外巧妙利用DSl8B20内部64位激光ROM中具有惟一性的48位产品序号,还可设计成专供大型宾馆客房或军事仓库使用的保密性极佳的电子密码锁。

DSl8B20的电源电压范围均扩展到+3~+5.5V,DSl8B20还能对温度分辨力进行编程,选择9位~12位模式下工作,在12位模式下的最高分辨力可达0.0625℃。

下面介绍DSl8B20的性能特点和工作原理。

1.1 DS18B20的性能特点(1)DSl8B20采用DALLAS公司独特的“单线(1-Wire)总线”专有技术,通过串行通信接口(I/O)直接输出被测温度值(9位二进制数据,含符号位)。

(2)在测温范围是-55~+125℃时,测量误差不超过±2℃,在-10~+85℃范围内,可确保测量误差不超过±0.5℃。

温度/数字量转换时间的典型值仅需93.75ms,比DS1820有很大的提高.(3)内含64位经过激光修正的只读存储器ROM,扣除8位产品系列号和8位循环冗余校验码CRC之后,产品序号占48位。

出厂前就作为DSl8B20惟一的产品序号,存入其ROM中。

在构成大型温控系统时,允许在单线总线上挂接多片DSl8B20。

(4)适配各种单片机或系统机。

(5)用户可分别设定各路温度的上、下限并写入随机存储器RAM中。

利用报警搜索命令和寻址功能,可迅速识别出发生了温度越限报警的器件。

(6)内含寄生电源。

该器件既可由单线总线供电,亦可选用外部+5V电源(允许电压范围是3.0~5.5V),进行温度/数字转换时的工作电流约为1.5mA,待机电流仅25uA,典型功耗为5mW。

DS18B20的使用方法

DS18B20的使用方法

图1 DS18B20的封装图DS18B20的特点:1、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内2、温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃3、支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定4、工作电源: 3~5V/DC5、可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温,测量结果以9~12位数字量方式串行传送6、在9位分辨率时最多在 93.75ms内把温度转换为数字量,12位分辨率时最多在750ms内把温度值转换为数字量,速度更快7、测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力8、负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作1)产品型号与规格型号测温范围安装螺纹电缆长度适用管道TS-18B20 -55~125 无 1.5 mTS-18B20A -55~125 M10X1 1.5m DN15~25TS-18B20B -55~125 1/2G 接线盒 DN40~60DS18B20测温原理如图2所示:图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。

高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。

计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。

DS18B20使用教程

DS18B20使用教程

DS18B20 单线通信功能是分时完成的,他有严格的时隙概念,如果出现序列混乱, 1-WIRE 器件将不响应主机,因此读写时序很重要。系统对 DS18B20 的各种操作必 须按协议进行。根据 DS18B20 的协议规定,微控制器控制 DS18B20 完成温度的转 换必须经过以下 4 个步骤 : (1)每次读写前对 DS18B20 进行复位初始化。复位要求主 CPU 将数据线 下拉 500us ,然后释放, DS18B20 收到信号后等待 16us~60us 左右,然后发出 60us~240us 的存在低脉冲,主 CPU 收到此信号后表示复位成功。 (2)发送一条 ROM 指令
主机首先发出一个480-960微秒的低电平脉冲,然后释放总线变为高电平,并在随后 的480微秒时间内对总线进行检测,如果有低电平出现说明总线上有器件已做出应答。 若无低电平出现一直都是高电平说明总线上无器件应答。 做为从器件的DS18B20在一上电后就一直在检测总线上是否有480-960微秒的低 电平出现,如果有,在总线转为高电平后等待15-60微秒后将总线电平拉低60-240微 秒做出响应存在脉冲,告诉主机本器件已做好准备。若没有检测到就一直在检测等待。

(3)发送存储器指令
DS18B20 的存储器指令集
现在我们要做的是让DS18B20进行一次温度的转换,那具体的操作就是: 1、主机先作个复位操作, 2、主机再写跳过ROM的操作(CCH)命令, 3、然后主机接着写个转换温度的操作命令,后面释放总线至少一秒,让 DS18B20完成转换的操作。在这里要注意的是每个命令字节在写的时 候都是低字节先写,例如CCH的二进制为11001100,在写到总线上时 要从低位开始写,写的顺序是“零、零、壹、壹、零、、壹、壹”。 整个操作的总线状态如下图。

DS18B20数据手册-中文版

DS18B20数据手册-中文版

概述DS18B20数字温度传感器提供9-Bit 到12-Bit的摄氏温度测量精度和一个用户可编程的非易失性且具有过温和低温触发报警的报警功能.DS18B20采用的1-Wire通信即仅采用一个数据线(以及地)与微控制器进行通信。

该传感器的温度检测范围为-55℃至+125℃,并且在温度范围超过—10℃至85℃之外时还具有+-0。

5℃的精度.此外,DS18B20可以直接由数据线供电而不需要外部电源供电。

每片DS18B20都有一个独一无二的64位序列号,所以一个1-Wire总线上可连接多个DS18B20设备。

因此,在一个分布式的大环境里用一个微控制器控制多个DS18B20是非常简单的。

这些特征使得其在HV AC环境控制,在建筑、设备及机械的温度监控系统,以及温度过程控制系统中有着很大的优势.特性·独特的1—Wire总线接口仅需要一个管脚来通信。

·每个设备的内部ROM上都烧写了一个独一无二的64位序列号。

·多路采集能力使得分布式温度采集应用更加简单.·无需外围元件.·能够采用数据线供电;供电范围为 3.0V至5.5V.·温度可测量范围为:-55℃至+125℃(-67℉至+257℉)。

·温度范围超过-10℃至85℃之外时具有+—0。

5℃的精度.·内部温度采集精度可以由用户自定义为9-Bits 至12-Bits。

DS18B20 分辨率可编程1-Wire数字温度传感器·温度转换时间在转换精度为12—Bits时达到最大值750ms。

·用户自定义非易失性的的温度报警设置。

·定义了温度报警搜索命令和当温度超过用户自定义的设定值时。

·可选择的8—Pin SO (150 mils), 8-PinμSOP,及3—Pin TO—92封装。

·与DS1822程序兼容。

·应用于温度控制系统,工业系统,民用产品,温度传感器,或者任何温度检测系统中。

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 读取数据指令读取传感器转换后的温度数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Ds18b20温度传感器使用手册一、传感器实物图
二、引脚说明
(1)
1 VCC 3.0~5.5V/DC 3 GND
4
2 DQ 数字信号输入/输出

(2)
1 5 GND
2 6
3 VCC 3.0~5.5V/DC 7
4 DQ 数字信号输入/输出
8

三、软件设计
功能说明:ds18b20采集温度并显示在1602液晶上#include <reg52.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
sbit ds=P2^4; //温度传感器信号线
uint temp;
float f_temp;
sbit rs=P1^0; //
sbit lcden=P1^2; // 液晶
sbit wr=P1^1; //
void delay(uint z)//延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/***********液晶**************/
void write_com(uchar com)
{//写液晶命令函数
rs=0;
lcden=0;
P0=com;
delay(3);
lcden=1;
delay(3);
lcden=0;
}
void write_date(uchar date)
{//写液晶数据函数
rs=1;
lcden=0;
P0=date;
delay(3);
lcden=1;
delay(3);
lcden=0;
}
void init() //液晶初始化
{
lcden=0;
write_com(0x38);
write_com(0x0e);
write_com(0x06);
write_com(0x01);
}
/***********ds18b20**********/
void dsreset(void) //18B20复位,初始化函数
{
uint i;
ds=0;
i=103;
while(i>0)i--;
ds=1;
i=4;
while(i>0)i--;
}
bit tempreadbit(void) //读1位函数
{
uint i;
bit dat;
ds=0;i++; //i++ 起延时作用
ds=1;i++;i++;
dat=ds;
i=8;while(i>0)i--;
return (dat);
}
uchar tempread(void) //读1个字节
{
uchar i,j,dat;
dat=0;
for(i=1;i<=8;i++)
{
j=tempreadbit();
dat=(j<<7)|(dat>>1); //读出的数据最低位在最前面,这样刚好一个字节在DAT里
}
return(dat);
}
void tempwritebyte(uchar dat) //向18B20写一个字节数据{
uint i;
uchar j;
bit testb;
for(j=1;j<=8;j++)
{
testb=dat&0x01;
dat=dat>>1;
if(testb) //写1
{
ds=0;
i++;i++;
ds=1;
i=8;while(i>0)i--;
}
else
{
ds=0; //写0
i=8;while(i>0)i--;
ds=1;
i++;i++;
}
}
}
void tempchange(void) //DS18B20 开始获取温度并转换{
dsreset();
delay(1);
tempwritebyte(0xcc); // 写跳过读ROM指令tempwritebyte(0x44); // 写温度转换指令
}
uint get_temp() //读取寄存器中存储的温度数据{
uchar a,b;
dsreset();
delay(1);
tempwritebyte(0xcc);
tempwritebyte(0xbe);
a=tempread(); //读低8位
b=tempread(); //读高8位
temp=b;
temp<<=8; //两个字节组合为1个字
temp=temp|a;
f_temp=temp*0.0625; //温度在寄存器中为12位分辨率位0.0625°temp=f_temp*10+0.5; //乘以10表示小数点后面只取1位,加0.5是四舍五入
f_temp=f_temp+0.05;
return temp; //temp是整型
}
uchar change(uchar a) //将数字转换为字符
{
uchar b;
if(a==0) b='0';
if(a==1) b='1';
if(a==2) b='2';
if(a==3) b='3';
if(a==4) b='4';
if(a==5) b='5';
if(a==6) b='6';
if(a==7) b='7';
if(a==8) b='8';
if(a==9) b='9';
return b;
}
void dis_temp(uint t) //显示程序
{
uchar a,b;
write_com(0x80+0x40);
a=t/100;
b=change(a);
write_date(b); //十位数
delay(5);
a=t%100/10;
b=change(a); //个位数
write_date(b);
delay(5);
write_date(0x2e); //小数点
delay(5);
a=t%100%10;
b=change(a); //十分位
write_date(b);
delay(5);
write_date(0xdf); //摄氏度的符号delay(5);
write_date(0x43);
delay(5);
}
void main()
{
wr=0;
init();
while(1)
{
write_com(0x01);
tempchange();
dis_temp(get_temp());
delay(500);
}
}。

相关文档
最新文档