ds1820
DS1820数字温度计的使用
35.DS18B20数字温度计使用1.DS18B20基本知识DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
1、DS18B20产品的特点(1)、只要求一个端口即可实现通信。
(2)、在DS18B20中的每个器件上都有独一无二的序列号。
(3)、实际应用中不需要外部任何元器件即可实现测温。
(4)、测量温度范围在-55。
C到+125。
C之间。
(5)、数字温度计的分辨率用户可以从9位到12位选择。
(6)、内部有温度上、下限告警设置。
2、DS18B20的引脚介绍TO-92封装的DS18B20的引脚排列见图1,其引脚功能描述见表1。
(底视图)图1表1DS18B20详细引脚功能描述序号名称引脚功能描述1 GND 地信号2 DQ 数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源。
3 VDD 可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
3.DS18B20的使用方法由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。
由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。
DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。
该协议定义了几种信号的时序:初始化时序、读时序、写时序。
所有时序都是将主机作为主设备,单总线器件作为从设备。
而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。
数据和命令的传输都是低位在先。
DS18B20的复位时序DS18B20的读时序对于DS18B20的读时序分为读0时序和读1时序两个过程。
DS18B20智能温度控制器(附软件程序)
DS18B20智能温度控制器DALLAS最新单线数字温度传感器DS18B20简介新的“一线器件”体积更小、适用电压更宽、更经济 Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。
一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
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,适用于对性能要求不高,成本控制严格的应用,是经济型产品。
继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。
DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。
DS18B20的内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
基于数字传感器DS1820测温系统
基于数字传感器DS1820的测温系统【摘要】:本文介绍了美国dallas半导体公司生产的数字传感器ds1820的电路结构、寄生电源供电方式和测温工作原理,设计了基于4个ds1820 构成的单线多点温度测量系统的电路,采用单片机at89c2051控制多点温度的采集和处理,并将采集到的多点温度循环显示。
给出了测温系统的工作原理和程序流程。
【关键词】:ds1820 数字温度传感器单线多点温度测量系统由ds1820 构成的单线多点温度测量系统是一种非常实用的现场总线分布式测量系统。
其硬件和软件简单,只占用单片机一个接口引脚,放大器和a/ d 转换器也都被省却,节约了大量的引线和控制通道切换的逻辑电路,安装方便,廉价,在- 55~ + 125 ℃范围内相对其它通用的现场总线分布式测温系统来讲具有绝对的优势[1]。
1、ds1820 芯片简介1.1ds1820引脚及功能ds1820有三个引脚:gnd(接地)、dq(数据输入/输出脚;单线接口,可作寄生供电)、vdd(接电源电压)。
1.2ds1820内部结构ds1820 内部硬件电路主要由四部分组成: 64 位rom、暂存存储器、温度传感器、温度报警触发装置th 和tl,如图1方框内结构所示[2]。
光刻rom中的64位序列号可以看作是该ds18b20的地址序列码。
光刻rom的作用是使每一个ds18b20都各不相同,这样就可以实现一根总线上挂接多个ds18b20的目的。
ds1820 的存贮器由一个高速暂存便笺式ram 和一个非易失性电可擦除eeram 组成,后者存贮高温度和低温度和触发器th 和tl。
暂存存贮器有助于在单线通信时确保数据的完整性。
2、ds1820的工作原理ds1820的测温原理:内部计数器对一个受温度影响的振荡器的脉冲计数,低温时振荡器的脉冲可以通过门电路,而当到达某一设置高温时振荡器的脉冲无法通过门电路。
计数器设置为-55℃时的值,如果计数器到达0之前,门电路未关闭,则温度寄存器的值将增加,这表示当前温度高于-55℃。
用DS1820实现温度测量
任务三用DS1820实现温度测量*一、任务要求DS1820是美国DALLAS公司生产的单总线式数字温度传感器,具有微型化、低功耗、高性能、搞干扰能力强、易配处理器等优点。
本任务利用DS1820来完成温度的检测,通过单片机进行数据处理并显示温度值。
知识目标:(1) 了解DS1820的工作原理。
(2) 掌握DS1820的使用和特性。
技能目标:(1) 会单片机和DS1820的接口电路设计。
(2) 能进行DS1820温度采集、单片机数值处理和温度显示的程序设计。
二、知识链接1. DS1820简介DS1820能在现场采集温度数据,并将温度数据直接转化成串行数字信号输出给单片机处理。
(1) 独特的单线接口方式:当DS1820与微处理器连接时,仅需要一条数据线即可实现微处理器与DS1820的双向通信。
(2) 测量温度范围为 -55℃~+125℃,在-10℃~+85℃范围内,精度为±0.5℃。
(3) 电压适用范围3V~5.5V。
(4) 可编程为9位~12位A/D转换精度。
(5) 用户设定的上、下限报警温度存储在EEPROM中,掉电后依然保存。
(6) 在没有外部电源时,DS1820依然能够继续工作,此时电源由总线为高电平时DQ脚上的上拉电阻提供(寄生供电模式),此模式下,VDD脚必须接地。
(7) 同一总线上可以挂接多个DS1820,适用于构成多点温度测控系统。
2. DS1820测温原理DS1820只有3个引脚,说明如下:DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端。
图4-25 DS1820内部测温电路框图DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。
高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。
初始时,温度寄存器被预置成-55℃,每当计数器1从预置数开始减法计数到0时,温度寄存器中的值就增加1℃,这个过程重复进行,直到计数器2计数到0时便停止。
ds1820温度传感器
-25 11111111 11001110 FFCE
-55 11111111 10010010 FF92
DS1820 是这样测温的:用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周 期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于-55 ℃的一个值。如果计数器在门周期结束前到达 0,则温度寄存器(同样被预置到-55℃)的值 增加,表明所测温度大于-55℃。 同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补 偿感温振荡器的抛物线特性。然后计数器又开始计数直到 0,如果门周期仍未结束,将重复 这一过程。 斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨力。这是通过 改变计数器对温度每增加一度所需计数的的值来实现的。因此,要想获得所需的分辨力,必 须同时知道在给定温度下计数器的值和每一度的计数值。 DS1820 内部对此计算的结果可提供 0.5℃的分辨力。温度以 16bit 带符号位扩展的二进制补 码形式读出,表 1 给出了温度值和输出数据的关系。数据通过单线接口以串行方式传输。 DS1820 测温范围-55℃~+125℃,以 0.5℃递增。如用于华氏温度,必须要用一个转换因子查 找表。 注意 DS1820 内温度表示值为 1/2℃LSB,如下所示 9bit 格式:
温度/数据关系(表 1)
温度℃ 数据输出(二进制) 数据输出(十六进制)
+125 00000000 11111010 00FA
+25 00000000 00110010 0032
+1/2 00000000 00000001 0001
0
00000000 00000000 0000
ቤተ መጻሕፍቲ ባይዱ
温度传感器DS18B20中文资料
以 0.5 的增量值 在 0.5 至+125 的范围内测量温度 对于应用华氏温度的场合 必须使用查
找表或变换系数
注意 在 DS1820 中 温度是以 1/2 LSB 最低有效位 形式表示时 产生以下 9 位格式
MSB 最高有效位 1
最低有效位 LSB 11001110
= -25 最高有效 符号 位被复制到存储器内两字节的温度寄存器中较高 MSB 的所有位 这种 符号扩展
4
PD om
PD om
er ww
er ww
F-XChange View !
Click to buy NOW
w.docu-track.c
TARGETECH®
DS1820
F-XChange View !
Click to buy NOW
w.docu-track.c
图 3 使用 VDD 提供温度变换所需电流
钭率累加器用于补偿振荡器温度特性的非线性 以产生高分辩率的温度测量 通过改变温度每 升高一度 计数器必须经历的计数个数来实行补偿 因此 为了获得所需的分辩率 计数器的数值
5
PD om
PD om
er ww
er ww
F-XChange View !
Click to buy NOW
w.docu-track.c
Click to buy NOW
w.docu-track.c
到这一点 当使用寄生电源方式时 VDD 引脚必须连接到地 向 DS1820 供电的另外一种方法是通过使用连接到 VDD 引脚的外部电源 如图 3 所示 这种方法
的优点是在 I/O 线上不要求强的上拉 总线上主机不需向上连接便在温度变换期间使线保持高电
3
DS1820高精度温度测量集成电路传感器
DS1820高精度温度测量集成电路传感器
DS1820简介
DS1820是美国DALLAS半导体公司生产的可组网数字式温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。
全部传感元件及转换电路集成在形如一只三极管的集成电路内。
与其它温度传感器相比,DS1820具有以下特性:
(1)独特的单线接口方式,DS1820在与微处理器连接时仅需要一条口线即可实现微处理器与DS1820的双向通讯。
(2)DS1820支持多点组网功能,多个DS1820可以并联在唯一的三线上,实现多点测温。
(3)DS1820在使用中不需要任何外围元件。
(4)温范围-55℃~+125℃,固有测温分辨率0.5℃。
(5)测量结果以9位数字量方式串行传送。
DS1820内部结构框图如图1所示。
基于智能化温度传感器DS1820的多点温度检测系统
2 1 D 1 2 的性 能特 点 . S 8 0
D 12 S 8 0是 一种 单 总线 数字 式温 度 传感 器, 在其 内部使 用 了在板 ( n O B r d [专利 技术 , 部传感 元件 与 转换 电路 封装 在一 片集 成 电路 中。它 采 o a )2 全 用独特 的单 线接 口方 式, S 8 0与微处 理器 连接 时仅 需要 一条 口线 即可实现 O 12 微处理 器与D 12 的双 向通 讯 : S8 0 在使用 中 不需要 任何 外 围元件, 不需 要备份 电 源, 可用 数据 线供 电 : 测温 范 围为 一 5 ~ +2 ℃, 过编 程可 实现 12 1 5℃ 15 通 /~ / l 的 4级精 度转 换 9 .5 s 7 0 s 6 在 3 7m 和 5m 内将 温度 转化 为 9 位和 l 位 的数 字 2 量: 用户 可 自设定 非易 失性 的报警 上下 限值 : 可适用 于各 种领 域、各种 环境 的 自动 化 测 量 及 控 制 系统 ,具 有 微 型化 、低 功耗 、高 性 能 、抗 干 扰 能 力 强 、 易 配微 处 理 器 等 优 点 。
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
数字温度传感器DS1820的介绍
数字温度传感器DS1820的介绍特性:·独特的单线接口,只需1 个接口引脚即可通信;·多点(multidrop)能力使分布式温度检测应用得以简化;·不需要外部元件;·可用数据线供电;·不需备份电源;·测量范围从-55至+125℃,增量值为0.5℃。
等效的华氏温度范围是-67 F 至257 F,增量值为0.9 F;·以9位数字值方式读出温度;·在1秒(典型值)内把温度变换为数字;·用户可定义的,非易失性的温度告警设置;·告警搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况);·应用范围包括恒温控制,工业系统,消费类产品,温度计或任何热敏系统。
详细说明DS1820有三个主要的数据部件:1)64位激光lasered ROM;2)温度灵敏元件,和3)非易失性温度告警触发器TH和TL。
器件从单线的通信线取得其电源,在信号线为高电平的时间周期内,把能量贮存在内部的电容器中,在单信号线为低电平的时间期内断开此电源,直到信号线变为高电平重新接上寄生(电容)电源为止。
作为另一种可供选择的方法,DS1820也可以用外部5V电源供电。
与DS1820 的通信经过一个单线接口。
在单线接口情况下,在ROM 操作未定建立之前不能使用存贮器和控制操作。
主机必须首先提供五种ROM操作命令之一;1)Read ROM(读ROM);2)Match ROM(符合ROM);3)Search ROM(搜索ROM);4)Skip ROM(跳过ROM);5)Alarm Search(告警搜索);这些命令对每一器件的64位激光ROM 部分进行操作,如果在单线上有许多器件,那么可以挑选出一个特定的器件,并给总线上的主机指示存在多少器件及其类型。
在成功地执行了ROM 操作序列之后,可使用存贮器和控制操作,然后主机可以提供六种存贮器和控制操作命令之一。
单总线数字温度计单片机课程设计
单片机课程设计DS1820单总线数字温度计一统设计目的,用途,功能1,目的:.S1820温度传感器控制温度,熟悉芯片的使用,温度传感器的功能,实验电路板的焊接,数码显示管的使用,汇编语言的设计。
锻炼团队合作能力,动手设计能力以及发现问题并且解决问题的能力。
2,用途:温度是工业控制中主要的被控参数之一。
随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展和广泛的应用。
单片机具有处理能强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量范围广,精度较高。
3,功能.:DS1820温度传感器温度的精确度高达0.1度,在许多工业控制中已经足够。
可以满足从-55摄氏度到+125摄氏度测量范围,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机直接从中读出数据转换成十进制就是温度,使用方便。
从用途上讲,该单片机类似于温度计,但用途又不仅仅集限于温度计,由于蜂鸣器的使用,编写程序后,超过预设温度后,蜂鸣器发出蜂鸣声,为工业控制的安全保驾护航。
二试验原原理DS1820单总线数字温度计引脚图DS1820单总线数字温度计一般说明:DS1820数字温度计提供9位温度读数,指示器件的温度信息经过单线接口送入 D S1820或从 DS1820送出因此从中央处理器到 DS1820仅需连接一条线和地读写和完成温度变换所需的电源可以由数据线本身提供而不需要外部电源因为每一个DS1820有唯一的系列号silicon serial number因此多个DS1820可以存在于同一条单线总线上这允许在许多不同的地方放置温度灵敏器件此性的应用范围包括HVAC环境控制建筑物设备或机械内的温度检测以及过程监视控制中的温度检测特性独特的单线接口只需1个接口引脚即可通信多点multidro 能力使分布式温度检测应用得以简化不需要外部元件可用数据线供电不需备份电源图1的方框图表示DS1820的主要部件DS1820有三个主要的数据部件164位激光laseredROM;2温度灵敏元件和3非易失性温度告警触发器TH和TL64位激光ROM每一DS1820包括一个唯一的64位长的ROM编码开绐的8位是单线产品系列编码DS1820编码是10h接着的48位是唯一的系列号最后的8 位是开始56位CRC见图564位 ROM 和 ROM 操作控制部分允许 DS1820作为一个单线器件工作并循单线总线系统一节中所详述的单线协议直到ROM操作协议被满足DS1820控制分的功能是不可访问的此协议在ROM操作协议流程图图6中叙述单线总线主机必须首先操作五种ROM操作命令之一1Read ROM(读ROM),2)Match ROM(匹配ROM),3) Search ROM(搜索ROM),4)Skip ROM(跳过ROM),或5)Alarm Search告警搜索在成功地执行了 ROM 操作序列之后DS1820特定的功能便可访问然后总线上主机可提供六个存贮器和控制功能命令之一DS1820内部结构框图如图1所示。
DS1820中文手册
移位寄存器的各位都被初始化为 0。然后从系列编号的最低有效位开始,一次一位移入寄存 器,8 位系列编码都进入以后,序列号再进入,48 位序列号都进入后,移位寄存器中就存储 了 CRC 值。移入 8 位 CRC 会使移位寄存器复 0。 存储器 DS1820 的存储器结构示于图 8。存储器由一个暂存 RAM 和一个存储高低温报警触发值 TH 和 TL 的非易失性电可擦除(E2)RAM 组成。当在单线总线上通讯时,暂存器帮助确保数据的完 整性。数据先被写入暂存器,这里的数据可被读回。数据经过校验后,用一个拷贝暂存器命 令会把数据传到非易性(E2)RAM 中。这一过程确保更改存储器时数据的完整性。
DS1820 依靠一个单线端口通讯。在单线端口条件下,必须先建立 ROM 操作协议,才能进行存 储器和控制操作。因此,控制器必须首先提供下面 5 个 ROM 操作命令之一:1)读 ROM,2) 匹配 ROM,3)搜索 ROM,4)跳过 ROM,5)报警搜索。这些命令对每个器件的激光 ROM 部分 进行操作,在单线总线上挂有多个器件时,可以区分出单个器件,同时可以向总线控制器指 明有多少器件或是什么型号的器件。成功执行完一条 ROM 操作序列后,即可进行存储器和控 制操作,控制器可以提供 6 条存储器和控制操作指令中的任一条。 一条控制操作命令指示 DS1820 完成一次温度测量。测量结果放在 DS1820 的暂存器里,用一 条读暂存器内容的存储器操作命令可以把暂存器中数据读出。温度报警触发器 TH 和 TL 各由 一个 EEPROM 字节构成。如果没有对 DS1820 使用报警搜索命令,这些寄存器可以做为一般用 途的用户存储器使用。可以用一条存储器操作命令对 TH 和 TL 进行写入,对这些寄存器的读 出需要通过暂存器。所有数据都是以最低有效位在前的方式进行读写。 寄生电源 寄生电源的方框图见图 1。这个电路会在 I/O 或 VDD 引脚处于高电平时“偷”能量。当有特 定的时间和电压需求时(见节标题“单线总线系统”),I/O 要提供足够的能量。寄生电源 有两个好处:1)进行远距离测温时,无需本地电源,2)可以在没有常规电源的条件下读 ROM。 要想使 DS1820 能够进行精确的温度转换,I/O 线必须在转换期间保证供电。由于 DS1820 的 工作电流达到 1mA,所以仅靠 5K 上拉电阻提供电源是不行的,当几只 DS1820 挂在同一根 I/O 线上并同时想进行温度转换时,这个问题变得更加尖锐。 有两种方法能够使 DS1820 在动态转换周期中获得足够的电流供应。第一种方法,当进行温度 转换或拷贝到 E2 存储器操作时,给 I/O 线提供一个强上拉。用 MOSFET 把 I/O 线直接拉到电源
温度传感器DS1820使用中注意事项
温度传感器DS1820使用中注意事项DS1820虽然具有测温系统简洁、测温精度高、连接便利、占用口线少等优点,但在实际应用中也应留意以下几方面的问题:(1)较小的硬件开销需要相对简单的软件进行补偿,由于DS1820与微处理器间采纳串行数据传送,因此,在对DS1820进行读写编程时,必需严格的保证读写时序,否则将无法读取测温结果。
在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采纳汇编语言实现。
由于本节技术简单性,对一般读者DS18B20内容只作阅读。
(2)在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,简单使人误认为可以挂任意多个DS1820,在实际应用中并非如此。
当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以留意。
(3)连接DS1820的总线电缆是有长度限制的。
试验中,当采纳一般信号电缆传输长度超过50m时,读取的测温数据将发生错误。
当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采纳每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。
这种状况主要是由总线分布电容使信号波形产生畸变造成的。
因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。
温度传感器DS18B20指令(命令)说明命令功能指令代码功能说明读ROM33H读DS18B20中的64位光刻ROM序列号启动转换44H启动温度转换,结果存入内部高速暂存器RAM中写温限值4EH向内部字节地址2和3 中写入上下限温度值匹配ROM55H发出命令后,还发送64位ROM序列号查找对应号码的18B20 读供电B4H读电源供应方式: 18B20发0为寄生供电,1为外接供电读取温度BEH读取温度寄存器等9字节的内容跳过ROMCCH单片18B20时,跳过读序列号操作,直接发温度转换报警搜寻ECH执行后,当温度超过上下限值时18B20才作响应搜寻ROMF0H搜寻同一条线上挂接有几个18B20,识别ROM(4)在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序会进入死循环。
18b20概述
数字温度传感器DS18B20概述传统的温度检测大多以热敏电阻为传感器,采用热敏电阻,可满足40 摄氏度至90 摄氏度测量范围,但热敏电阻可靠性差,测量温度准确率低,对于 1 摄氏度的信号是不适用的,还得经过专门的接口电路转换成数字信号才能由微处理器进行处理。
目前常用的微机与外设之间进行的数据通信的串行总线主要有I 2C 总线,SPI 总线等。
其中I 2C 总线以同步串行2 线方式进行通信(一条时钟线,一条数据线),SPI 总线则以同步串行3 线方式进行通信(一条时钟线,一条数据输入线,一条数据输出线)。
这些总线至少需要两条或两条以上的信号线。
而单总线(1-wire bus ),采用单根信号线,既可传输数据,而且数据传输是双向的,CPU 只需一根端口线就能与诸多单总线器件通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
因而,这种单总线技术具有线路简单,硬件开销少,成本低廉,软件设计简单,便于总线扩展和维护。
同时,基于单总线技术能较好地解决传统识别器普遍存在的携带不便,易损坏,易受腐馈,易受电磁干扰等不足,因此,单总线具有广阔的应用前景,是值得关注的一个发展领域。
单总线即只有一根数据线,系统中的数据交换,控制都由这根线完成。
主机或从机通过一个漏极开路或三态端口连至数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线。
单总线通常要求外接一个约为 4.7K 的上拉电阻,这样,当总线闲置时其状态为高电平。
DS18B20 数字式温度传感器,与传统的热敏电阻有所不同的是,使用集成芯片,采用单总线技术,其能够有效的减小外界的干扰,提高测量的精度,同时,它可以直接将被测温度转化成串行数字信号供微机处理,接口简单,使数据传输和处理简单化。
部分功能电路的集成,使总体硬件设计更简洁,能有效地降低成本,搭建电路和焊接电路时更快,调试也更方便简单化,这也就缩短了开发的周期。
DS18B20 单线数字温度传感器,即“一线器件”,其具有独特的优点:(1 )采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20 的双向通讯。
数字温度传感器DS1820
Read Scratchpad [0B EH ] 读内部笔记本中 9 字节的内容 。
Write Scratchpad [4EH ] 向笔记本的第 3 和第 4 字节写上下限数
解 PIC16C 系 列 单 片 机 解 密 MCS51 系 列 单 片 机 解 密
密 MC68 系 列 单 片 机 解 密 门阵列 GAL/ PALCE 系列解密 北京润飞公司 Tel :62574562 Fax :68429625
TX
复位
RX
先导脉冲
备 注
TX
55 HMatch ROMRX64 位地址
TX
0 EEH
Conver T
TX I/ O 线高电平
TX
复位
RX
先导脉冲
TX
55 H
TX
64 位地址
TX
0B EH
Read ScratchPad
RX
9 字节数据
略
略
TX
复位
RX
先导脉冲
TX
0CCH
Skip ROM
TX
04 EH
A/ D ; ●单线通讯接口 , 片内固化着不同的地
址序列号 ,可多片共用一条通讯线 ; ●有超温搜寻功能 ; ●2 字节 EEPROM 设定上下限或作它用 ; ●+ 5V 电源 ,具有寄生电源功能 。
2 、管脚及内部结构
2. 1 管脚封装参见图 1 。 2. 2 内部结构参见图 2 。
如图所示 , 它主要由三大部分组成 ——— 64 位 ROM 地址 、温度传感器和非挥发性高 低限超温触发单元 T H/ TL 。
RW1820和DS1820性能对比表
全球唯一的 64-bit ROMID
有
有
用户自定义的 24-bit ROMID
有
无
(作为用户自定义的多节点
通信地址)
额外的存储器
192-byte OTP
无
用于传感器身份识别的“电 2 组用户自定义的 eStamp 信息和
无
子印章”eStamp 信息
1 组厂家设置的 eStamp 信息,应
用于传感器防伪
±0.5℃
±0.5℃ 750ms 9~12 位
(分辨率越低、温度转换时
间越短) 用户通过软件校准温度
接口方式
二线制工作方式 (“寄生供电”方式)
通信速率
可以,校准参数存储在 OTP 单线串行 Single-Line,兼容于
1-wire 支持,需要在 Vcc 引脚上外接
10nF 电容 16Kbps 标准速率,或可变速率,
电子标签功能
存放生产日期、条码等生产信息,
无
用于产品跟踪和售后服务管理
封装形式
TO-92、SOT23-3L、业内更小
TO-92、uSOP8
2mmx2mm 的 DFN2x2-3L 封装
*RW1820 优于 DS18B20 的性能指标在表格中以青色颜色的文字显示, RW1820 软件兼容
于 DS18B20。
无 单线串行 1-wire
支持,无须外部元件 固定 16kbps
以适用于快速数据通信或者长距
多节点通信地址
离、低速的通信应用 64-bit ROM ID 或者用户自定义
的 24-bit Extension ROMID
64-bit ROMID
温度报警搜索功能
有
有
(TH、TL 分别设置温度上、
DS1820 单线数字温度计使用说明
基于51单片机的DS1302多功能开关控制器
本设计5v供电,通电即可显示当前日期和时间,第一行显示:data:XX:XX:XX
第二行显示time:XX:XX:XX
设置时间和日期:按下K1键可以设置日期及时间,按下K1依次调整年月日时和分,调整哪个那个会显示**,可以按K2+ K3-,来调整要调整的数据,按到调整分钟之后会全部出现**就是设置完成了。
设置开启和关闭时间:按下K4键,第一行显示kai:xx:xx,第二行显示guan:xx:xx.此时按下K2+ K3-,来调整要调整的数据,第一次设置开的小时,第二次设置开的分钟,第三次设置关的小时,第四次设置关的分钟。
第五次恢复正常显示,当时间与设置时间开启时间一样时,继电器会闭合,当时间与设置时间关闭时间一样时,继电器会断开。
安装方法:按照此图安装液晶
单片机
备用电池
DS1302 继电器
32.768晶振K1,K2,K3,K4
10k可调电阻对比度调节
1602液晶接口。
44半导体集成温度传感器精品PPT课件
线性特性,对曲线分段校正,
T
线性双积分A/D转换的基本公
测 量
式为:
值
0
80ºC
TC标准值
测量误差曲线
100ºC
写在最后
经常不断地学习,你就什么都知道。你知道得越多,你就越有力量 Study Constantly, And You Will Know Everything. The More
You Know, The More Powerful You Will Be
时,由于读写在操作上是分开的,故不存在信号竞争问 题。
DS1820采用了一种单线总线系统,即可用一根线连 接主从器件,DS1820作为从属器件,主控器件一般为 微处理器。单线总线仅由一根线组成,与总线相连的 器件应具有漏极开路或三态输出,以保证有足够负载 能力驱动该总线。DS1820的I/O端是开漏输出的,单线 总线要求加一只5kΩ左右的上拉电阻。
4 DS1820温度检测系统原理
由于单线数字温度传感器DS1820具有在一条总线上可同时挂 接多片的显著特点,可同时测量多点的温度,而且DS1820的连 接线可以很长,抗干扰能力强,便于远距离测量,因而得到了 广泛应用。
89C51
P1.0
Tx P1.1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
********************************************************** *DS1820驱动程序
*版本:V1.0
*编程:飞扬
**********************************************************/ #include <at89x52.h>
//引脚定义
sbit DS1820_DQ= P1^3; //单总线引脚
//函数声明
bit ds1820_reset();
void ds1820_write_data(unsigned char ds1820_wdat);
unsigned char ds1820_read_data();
//存放温度数据
unsigned char data temperature[2]; //将温度存储在低128RAM单元
/********************************************************** *读温度数据函数
**********************************************************/ void read_temp()
{
unsigned char i;
ds1820_reset(); //复位
ds1820_write_data(0xcc); //跳过ROM命令
ds1820_write_data(0x44); //温度转换命令
ds1820_reset(); //复位
ds1820_write_data(0xcc); //跳过ROM命令
ds1820_write_data(0xbe); //读DS1820温度暂存器命令
for (i=0;i<2;i++)
{
temperature[i]=ds1820_read_data();
}
ds1820_reset(); //复位,结束读数据
}
/**********************************************************
*DS1820复位及存在检测(通过存在脉冲可以判断DS1820是否损坏) *函数名称:DS1820_RESET()
*说明:函数返回一个位标量(0或1)flag=0存在,反之flag=1不存在
**********************************************************/ bit ds1820_reset()
{
unsigned char i;
bit flag; //DS1820存在标志位
DS1820_DQ = 0; //拉低总线
for (i=240;i>0;i--);//延时480微秒,产生复位脉冲
DS1820_DQ = 1; //释放总线
for (i=40;i>0;i--); //延时80微秒对总线采样
flag = DS1820_DQ;
for (i=200;i>0;i--); //延时400微秒等待总线恢复
return (flag);
}
/********************************************************** *写数据到DS1820
*函数名称:ds1820_write_data()
*
**********************************************************/ void ds1820_write_data(unsigned char ds1820_wdat)
{
unsigned char i,j;
for (i=8;i>0;i--)
{
DS1820_DQ = 0; //拉低总线,产生写信号
for (j=2;j>0;j--); //延时4us
DS1820_DQ = ds1820_wdat&0x01; //发送1位
for (j=30;j>0;j--); //延时60us,写时序至少要60us
DS1820_DQ = 1; //释放总线,等待总线恢复
ds1820_wdat>>=1; //准备下一位数据的传送
}
}
/********************************************************** *从DS1820中读出数据
*函数名称:ds1820_read_data()
*
**********************************************************/ unsigned char ds1820_read_data()
{
unsigned char i,j,ds1820_rdat;
for (i=8;i>0;i--)
{
ds1820_rdat>>=1;
DS1820_DQ = 0; //拉低总线,产生读信号
for (j=2;j>0;j--); //延时4us
DS1820_DQ = 1; //释放总线,准备读数据
for (j=4;j>0;j--); //延时8微秒读数据
if (DS1820_DQ == 1)
ds1820_rdat |= 0x80;
for (j=30;j>0;j--); //延时60us
DS1820_DQ = 1; //拉高总线,准备下一位数据的读取.
}
return (ds1820_rdat);//返回读到的数据
}
对数据的处理:
union
{ byte c[2]; //c[0]为x的高位,c[1]为X的低位
word x;
}Temp;
Temp.c[1]=ReadDsByte(which);
Temp.c[0]=ReadDsByte(which);
i = Temp.x >>4;
if(i & 0x80) //负温度,求补码
{i = ~i + 0x81;}
if(Temp.x & 0x0008)
{ if( i & 0x80) //负温度
{ i--;
if(i == 0x80)
{i=0;}
}
else //正温度
{ if(i != 0x7f)
{i++;}
}
}
结果要先右移4位,低4位是小数点后的。
可以做4舍5入处理。