DS18B20测温
使用DS18B20温度传感器测温
第11章使用DS18B20温度传感器测温11.1 概述现实生产生活中,小到测量体温的温度计,大到航天飞机的温控系统,处处都离不开温度测量。
工业生产中的三大指标(流量、压力、温度)之一就是温度,温度测量可以说是无处不在,遍布了我们生活生产的方方面面。
DS18B20温度传感器是美国DALLAS半导体公司生产的数字化温度传感器,它与以往模拟量温度传感器不同,数字化是其一大特点,它能将被测环境温度直接转化为数字量,并以串行数据流的形式传输给单片机等微处理器去处理。
DS18B20温度传感器的另一个主要特点是它是单总线的,即它与单片机等微处理器连接时,只需占用一个I/O管脚,并且不再需要其它任何外部元器件,这大大简化了它与但单片机之间的接口电路。
11.2 DS18B20温度传感器介绍目前,使用最普遍的DS18B20温度传感器是三脚TO-92直插式封装这一种,这种封装的DS18B20实物如图11-1所示。
可以看到它体积很小,只有三只管脚,外形与一般的三极管极其相似。
图11-2是其三脚TO-92直插式封装图,表11-1列出了DS18B20各个引脚的定义。
如图11-1 如图11-2表11-1 DS18B20引脚定义。
1、DS18B20温度传感器特性简介◆独特的单总线(一条线)接口,与微处理器通信只需一个I/O管脚,且硬件连接无需其它外部元件;◆测量结果直接输出数字量,可直接与微处理器通信;◆供电电压范围3.0V~5.5V;在寄生电源方式下可有数据线供电;◆测温范围-55℃~+125℃;在-10℃~+85℃范围内,测量精度可达±0.5℃;◆可编程的9~12位测温分辨率,对应的可分辨温度值分别为0.5℃,0.25℃,0.125℃,0.0625℃;12位分辨率时的温度测量转换最长时间(上限)只有750ms;◆每一片DS18B20都有自己独一无二的芯片号码;多片DS18B20可以并联在一条数据总线上实现不同地点的多点组网;◆应用范围包括温度调控,工业现场测温,消费类产品,温度计及热敏系统等。
DS18B20温度检测
目录1引言 (1)2系统描述 (2)2.1系统功能 (2)2.2系统设计指标 (2)3系统的主要元件 (3)3.1单片机 (3)3.2温度传感元件 (4)3.3LCD显示屏 (6)4硬件电路 (7)4.1系统整体原理图 (7)4.2单片机晶振电路 (7)4.3温度传感器连接电路 (8)4.4LCD电路 (9)4.5报警和外部中断电路 (10)5结论 (11)温度监测系统硬件设计摘要:利用DS18B20为代表的新型单总线数字式温度传感器实现温度的监测,可以简化硬件电路,也可以实现单线的多点分布式温度监测,而不会浪费单片机接口,提供了单片机接口的利用率。
同时提高了系统能够的抗干扰性,使系统更灵活、方便。
本系统主要实现温度的检测、显示以及高低温的报警。
也可以通过单总线挂载多个DS18B20实现多点温度的分布式监测。
关键词: DS18B20,单总线,温度,单片机1引言在科技广泛发展的今天,计算机的发展已经越来越快,它的应用已经越来越广泛。
而单片机的发展和应用是其中的重要一方面。
单片机在工业生产(机电、化工、轻纺、自控等等)和民用家电各方面有广泛的应用。
其中,单片机在工业生产中的应用尤其广泛。
单片机具有集成度高,处理能力强,可靠性高,系统结构简单,价格低廉的优点,因此被广泛应用。
在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要测量参数。
例如:在冶金工业、化工工业、电力工程、机械制造和食品加工等许多领域中,人们都需要对各类加热炉、热处理炉、反映炉和锅炉,尤其是热学试验(如:物体的比热容、汽化热、热功当量、压强温度系数等教学实验)中的温度进行测量,并经常会对其进行控制。
传统的方式是采用热电偶或热电阻,但是由于模拟温度传感器输出为模拟信号,必须经过A/D 转换环节获得数字信号后才能够被单片机等微处理器接收处理,使得硬件电路结构复杂,制作成本较高。
近年来,美国DALLAS公司生产的DS18B20为代表的新型单总线数字式温度传感器以其突出优点广泛使用于仓储管理、工农业生产制造、气象观测、科学研究以及日常生活中。
DS18B20实现测温功能
题目:室内温度检测系统<一> 实验要求:1. 用温度传感器DS18B20实现能检测室内环境温度(-10 o C~40o C),要求用2位或多位LED 显示;2. 要求能有报警功能,当温度超过报警上限时要能报警,报警上限要能通过键盘设定;3. 自己制作电路板。
(可考虑留有上传温度数据的接口)<二> 设计思想和说明:室内温度检测系统是由AT89C51单片机和温度传感器DS18B20和实现对温度检测。
由DS18B20将测得的温度通过DQ端传给单片机,再通过单片机在LED上显示,完成测温功能。
<三>器件清单器件名称数量AT89C51单片机 1温度传感器DS18B20 14位LED数码显示器 1晶振11.0592 Mhz 174LS245 1蜂鸣器 1三极管2N3904 5按钮 533 pf电容 210 uf电容 14.7k电阻710k电阻 50.1k电阻 11 k电阻 45V电源 1<四>硬件原理图<五>硬件原理图与其软件配合介绍DS18B20的DQ端与单片机的P2.0口相连,进行数据传送。
DSl8820内部结构主要由4部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
根据DSl8820的通信协议,主机控制DSl8820完成温度转换必须经过3个步骤:每一次读写之前都要对其进行复位,复位成功后发送1条ROM指令,最后发送RAM指令,这样才能对DSl8820进行预定的操作。
复位要求主CPU将数据线下拉500μs,然后释放,DSl8820收到信号后等待16~60μs左右,后发出60~240μs的存在低脉冲,主CPU收到此信号表示复位成功。
由于DSl8820采用的是单线进行控制与读取数据,因此对操作的时序要求非常严格,否则由于时序不匹配,将无法完成对器件的正确操作。
P0口与4位LED显示的“字型码”端相连,P1口的低四位与4位LED显示的“位”选择相连,实现将从DS18B20中读取的数据显示出来。
Ds18b20百度百科
DS18B20DS-18B20 数字温度传感器本公司最新推出TS-18B20数字温度传感器,该产品采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
1: 技术性能描述1.1 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
1.2 测温范围-55℃~+125℃,固有测温分辨率0.5℃。
1.3 支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定,实现多点测温1.4 工作电源: 3~5V/DC1.5 在使用中不需要任何外围元件1.6 测量结果以9~12位数字量方式串行传送1.7 不锈钢保护管直径Φ61.8 适用于DN15~25, DN40~DN250各种介质工业管道和狭小空间设备测温1.9 标准安装螺纹M10X1, M12X1.5, G1/2”任选1.10 PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。
2:应用范围2.1 该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域2.2 轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。
2.3 汽车空调、冰箱、冷柜、以及中低温干燥箱等。
2.5 供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制3:产品型号与规格型号测温范围安装螺纹电缆长度适用管道TS-18B20 -55~125 无 1.5 mTS-18B20A -55~125 M10X1 1.5m DN15~25TS-18B20B -55~125 1/2”G 接线盒DN40~ 604:接线说明特点独特的一线接口,只需要一条口线通信多点能力,简化了分布式温度传感应用无需外部元件可用数据总线供电,电压范围为3.0 V至5.5 V 无需备用电源测量温度范围为-55 °C至+125 ℃。
(完整版)概述DS18B20是DALLAS公司生产的一线式数字温度传感器,具.
概述: DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
以上特点使DS18B20非常适用于远距离多点温度检测系统。
内部结构:DS18B20内部结构如图1所示,主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的管脚排列如图2所示,DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端。
图1DS18B20的内部结构图2DS18B20的管脚排列关键特性:±0.5°C accuracy from -10°C to +85°CMeasures temperatures from -55°C to +125°C (-67°F to +257°F)9- to 12-bit user-configurable resolution1-Wire interface requires only one port pin for communication Has a 64-bit unique and unchangeable electronic serial number Multi-drop capability for simplified distributed temperature sensing Alarm function with user-defined nonvolatile alarm settings Converts temperature to 12-bit digital word in 750ms (max.)No external components required to sense temperature3.0V to 5.5V supply rangeOptional "parasite-power" operation (power derived directly from 1-Wire bus)8-pin µMAX/µSOP (DS18B20U), 3-pin TO-92 (DS18B20), and 150mil 8-pin SO (DS18B20Z) packages应用:农用系统、音频设备、汽车、气象控制、GPS设备、硬盘驱动器、医疗装置、机顶盒、电信。
ds18b20的多点测量利弊分析
这种并行操作的最大好处就是节省时间,其查询多个DS18B20 器件操作所消耗的时间与查询单个DS18B20 器件操作所消耗的时间是一样的,从而达到了快速多点测温的目的,能够满足对实时性要求较高的温度测量系统的设计需求。同时,由于这种操作方法并不涉及DS18B20 的序列号问题,因而省掉了烦琐的读取与匹配序列号的操作过程,程序的设计、编写、调试也变得较为简单些,有利于缩短产品的研制开发周期,使得利用DS18B20 进行多点测温的操作变得更方便、容易。
摘要:多点测温广泛应用于工业自动化控制、农业生产温度测量等领域。8B20 多点测温的二种方法进行了分析与探讨。
1. 前言
多点测温在粮食仓库存储的温度监控,禽蛋孵化箱自动温度控制,机柜仪器设备的温度监控,电力、电讯设备的过热故障预知检测,交通工具温度监视,医疗与保健诊断的温度测试,以及智能家居的室温自动调节等领域有着广泛的应用。
4. DS18B20 的多点测温应用
根据DS18B20 的电气特性,我们可以采取以下二种方法使用DS18B20 进行多点测温。
(1)单端口单总线的多点测温法。典型的应用如图2 所示,所有的DS18B20 相互并联后其数据线连接到微处理器的某个I/O 端口线上,其显著的特点是只占用微处理器的一个端口。因为每个DS18B20 内部均有一个唯一的64 位序列号,在系统安装及工作之前先将主机与DS18B20 逐个挂接,分别读出其序列号并存储在主机的EEPROM 中,微处理器根据序列号就可以对同一条总线上的多支DS18B20 进行识别与控制,分别读取它们的温度。
传统的温度检测大多以热敏电阻为传感器,但利用热敏电阻测量温度精度较低、可靠较差,且必须经过A/D 转换等接口电路转换成数字信号后才能送给微处理器进行处理,这样就使得测温装置的电路结构较复杂,降低了系统的安全可靠性。
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两种不同的测温
DALLAS公司单线数字温度传感器DS18B20是一种新的“一线器件”,它具有体积小、适用电压宽等特点。
一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
DS18B20支持“一线总线”接口,测量温度范围为-55℃~+125℃,在-10℃~+85℃范围内,精度为±0.5℃;通过编程可实现9~12位的数字值读数方式;可以分别在93.75ms和750ms内将温度值转化为9位和12位的数字量。
每个DS18B20具有唯一的64位长序列号,存放于DS18B20内部ROM只读存储器中。
DS18B20温度传感器的内部存储器包括1个高速暂存RAM和1个非易失性的电可擦除E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
暂存存储器包含了8个连续字节,前2字节为测得的温度信息,第1个字节为温度的低8位,第2个字节为温度的高8位。
高8位中,前4位表示温度的正(全“0”)与负(全“1”);第3个字节和第4个字节为TH、TL的易失性拷贝;第5个字节是结构寄存器的易失性拷贝,此三个字节内容在每次上电复位时被刷新;第6、7、8个字节用于内部计算;第9个字节为冗余检验字节。
所以,读取温度信息字节中的内容,可以相应地转化为对应的温度值。
表1列出了温度与温度字节间的对应关系。
系统分为现场温度数据采集和上位监控PC两部分。
图1为系统的结构图。
需要指出的是,下位机可以脱离上位PC机而独立工作。
增加上位机的目的在于能够更方便地远离现场实现监控、管理。
现场温度采集部分采用8051单片机作为中央处理器,在P1.0口挂接10个DS18B20传感器,对10个点的温度进行检测。
非易失性RAM用作系统温度采集及运行参数等的缓冲区。
上位PC机通过RS485通信接口与现场单片微处理器通信,对系统进行全面的管理和控制,可完成数据记录,打印报表等工作。
2.1DS18B20与单片机的接口电路DS18B20与8051单片机连接非常简单,只需将DS18B20信号线与单片机一位I/O线相连,且一位I/O线可连接多个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温度传感器进行温度测量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、配置寄存器。
DS18B20 构成测温系统
毕业论文范文模板
for (j=1;j<=8;j++) { testb = dat & 0x01; dat = dat >> 1; if (testb) { TMDAT = 0; //写 0 i++; i++; TMDAT = 1; for(i=0;i<8;i++); } else { TMDAT = 0; //写 0 for(i=0;i<8;i++); TMDAT = 1; i++; i++;} } }
P0=seg7code[sdata%10]; //输出个位
Delay(8); P2=P2|0xf0;
P2=P2&0x7f;
P0=seg7code[xiaoshu1]; //输出小
Delay(4); P2=P2|0xf0;
}
}
main()
{fg=1;
while(1)
{
DS18B20PRO();
Led();
void tmstart (void) //发送 ds1820 开始转换 { fashong(); //复位 yanshi(1); //延时 tmwbyte(0xcc); //跳过序列号命令 tmwbyte(0x44); //发转换命令 44H, } void tmrtemp (void) //读取温度 { unsigned char a,b; fashong (); //复位 yanshi (1); //延时 tmwbyte (0xcc); //跳过序列号命令 tmwbyte (0xbe); //发送读取命令 a = tmrbyte (); //读取低位温度 b = tmrbyte (); //读取高位温度 if(b>0x7f) //最高位为 1 时温度是负 {a=~a; b=~b+1; //补码转换,取反加一 fg=0; //读取温度为负时 fg=0 } sdata = a/16+b*16; //整数部分 xiaoshu1 = (a&0x0f)*10/16; //小数第一位 xiaoshu2 = (a&0x0f)*100/16%10;//小数 xiaoshu=xiaoshu1*10+xiaoshu2; //小数 } void DS18B20PRO(void) { tmstart();
DS18B20高精度测温
delay1820(200); //精确延时 大于 480us
DQ = 1; //拉高总线
delay1820(60);
delay1820(20);
DQ=1;
}
//------------------读一个字节 -------------------------
b=ReadOneChar(); //读取温度值高位
DQ=1;
g=a;
g=b<<8; //最终数据在a和b中,怎么处理你自己用吧 呵呵
g=g|a;
re=g*0.0625;//选用的精度为 0.0625
return re;
}
/**************************************************************************************************************************/
{
Init_DS18B20();
WriteOneChar(0xcc); //skip rom
WriteOneChar(0x4e); //write scratchpad
WriteOneChar(0x55); //上限 TH 85度
WriteOneChar(0x00); //下限 TL
/******************************************************************************************************************/
// 文件1/2(end)
DS18B20测温教程
DS18B20一、DS18B20背景介绍美国Dallas半导体公司的数字化温度传感器DS18B20是世界上第一片支持 "一线总线"接口的温度传感器,在其内部使用了在板(O N-B0ARD)专利技术。
全部传感元件及转换电路集成在形如一只三极管的集成电路内。
一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
二、DS18B20主要特性在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。
因此,DS18B20具有以下特性:1.适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电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.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快8.测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力9.负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
三、DS18B20的外形和内部结构1、DS18B20的外形结构如下图所示:DS18B20引脚定义:(1)DQ为数字信号输入/输出端;(2)GND为电源地;(3)VDD为外接供电电源输入端。
DS18B20测量温度液晶1602显示
DS18B20测量温度液晶1602显示DS18B20温度传感器简介DS18B20是一种数字温度传感器。
它输出的是数字信号,同时具有体积小,硬件资源耗费少,抗干扰能力强,精度高等特点。
DS18B20温度传感器特点1、单线接口:DS18B20仅需一条线可实现与微处理器双向通信。
2、测温范围: DS18B20温度传感器的测温范围可达-55℃~+125℃,在-10℃到+85℃范围内误差为±0.4°。
3、支持多点组网功能:多个DS18B20温度传感器可以并联在一条数据线上,最多可以并联8个,实现多点测温。
4、工作电源: 3.0~5.5V/DC ,DS18B20温度传感器可以采用外部独立电源供电,也可以用数据线寄生电源供电。
5、DS18B20温度传感器在应用过程中不需要任何外围元件。
6、DS18B20测量温度的结果以9~12位数字量方式串行传送。
7、掉电保护功能, DS18B20温度传感器内部含有 EEPROM ,通过配置寄存器可以设定数字转换精度和报警温度。
在DS18B20温度传感器掉电以后仍可保存分辨率及报警温度的设定值。
8、DS18B20温度传感器返回16位二进制数代表此刻探测的温度值,其高五位代表正负。
如果高五位全部为1,则代表返回的温度值为负值。
如果高五位全部为0,则代表返回的温度值为正值。
后面的11位数据代表温度的绝对值,将其转换为十进制数值之后,再乘以0.0625即可获得此时的温度值。
DS18B20温度传感器引脚说明DS18B20温度传感器接口电路液晶1602接口电路DS18B20测量温度程序源代码/*****************DS18B20测量温度,用1602显示温度值******************* 单片机:51单片机* 开发环境:keil* 功能: DS18B20测量温度,并在LCD1602中显示出来**********************************************************************/#include <reg51.h>#define LCD_Data P0#define Busy 0x80#define uchar unsigned char#define uint unsigned intuchar code table0[] = {" SL-51A "};uchar code table1[] = {" TEMP: XX.X "};uchar temperature[5]; //温度值uint temp;sbit LCD_RS = P1^0;sbit LCD_RW = P1^1;sbit LCD_E = P2^5;sbit DS = P2^2;void Delay5Ms(void);void delay(uint count);void WriteDataLCD(unsigned char WDLCD);void WriteCommandLCD(unsigned char WCLCD,BuysC);unsigned char ReadDataLCD(void);unsigned char ReadStatusLCD(void);void LCDInit(void);void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData); void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData); void Info_display(void);void dsreset(void);bit tmpreadbit(void);uchar tmpread(void);void tmpwritebyte(uchar dat);void tmpchange(void);uint tmp();void delay(uint count){uint i;while(count){i=200;while(i>0)i--;count--;}}void dsreset(void) //发复位命令{uint i;DS=0;i=103;while(i>0)i--;DS=1;i=4;while(i>0)i--;}bit tmpreadbit(void) //读取一位{uint i;bit dat;DS=0;i++;DS=1;i++;i++;dat=DS;i=8;while(i>0)i--;return (dat);}uchar tmpread(void) //读取一个字节{uchar i,j,dat;dat=0;for(i=1;i<=8;i++){j=tmpreadbit();dat=(j<<7)|(dat>>1); //读出的数据最低位在最前面 }return(dat);}void tmpwritebyte(uchar dat) //向ds18b20写入一个字节{uint i;uchar j;bit testb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb){DS=0;i++;i++;DS=1;i=8;while(i>0)i--;}else{DS=0;i=8;while(i>0)i--;DS=1;i++;i++;}}}void tmpchange(void) //DS18B20开始转换{dsreset();delay(1);tmpwritebyte(0xcc); //命令的含义可以查18b20的手册 tmpwritebyte(0x44);}uint tmp() //获取温度值{float tt;uchar a,b;dsreset();delay(1);tmpwritebyte(0xcc);tmpwritebyte(0xbe);a=tmpread();b=tmpread();temp=b;temp<<=8;temp=temp|a;tt=temp*0.0625;temp=tt*10+0.5;return temp;}/*************************5ms延时函数***************************/void Delay5Ms(void){unsigned int TempCyc = 3552;while(TempCyc--);}/**************************写数据函数***************************/void WriteDataLCD(unsigned char WDLCD){ReadStatusLCD(); //检测忙LCD_Data = WDLCD;LCD_E = 0; //若晶振速度太高可以在这后加小的延时 LCD_E = 0; //延时LCD_RS = 1;LCD_RW = 0;LCD_E = 1;LCD_E = 0;}/*************************写指令函数****************************/void WriteCommandLCD(unsigned char WCLCD,BuysC) //BuysC为0时忽略忙检测{if (BuysC) ReadStatusLCD(); //根据需要检测忙LCD_Data = WCLCD;LCD_E = 0;LCD_E = 0;LCD_RS = 0;LCD_RW = 0;LCD_E = 1;LCD_E = 0;}/**************************读状态函数***************************/unsigned char ReadStatusLCD(void){LCD_Data = 0xFF;LCD_RS = 0;LCD_RW = 1;LCD_E = 0;LCD_E = 0;LCD_E = 1;while (LCD_Data & Busy); //检测忙信号return(LCD_Data);}/***************************LCD初始化***************************/void LCDInit(void) //LCD初始化{LCD_Data = 0;WriteCommandLCD(0x38,0); //三次显示模式设置,不检测忙信号Delay5Ms();WriteCommandLCD(0x38,0);Delay5Ms();WriteCommandLCD(0x38,0);Delay5Ms();WriteCommandLCD(0x38,1); //显示模式设置, 开始要求每次检测忙信号WriteCommandLCD(0x08,1); //关闭显示WriteCommandLCD(0x01,1); //显示清屏WriteCommandLCD(0x06,1); //显示光标移动设置WriteCommandLCD(0x0C,1); //显示开及光标设置}/**********************按指定位置显示一个字符*********************/void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData){Y &= 0x1;X &= 0xF; //限制X不能大于15,Y不能大于1if (Y) X |= 0x40; //当要显示第二行时地址码+0x40;X |= 0x80; //算出指令码WriteCommandLCD(X, 0); //这里不检测忙信号,发送地址码WriteDataLCD(DData);}/***********************按指定位置显示一串字符********************/void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData) {unsigned char ListLength;ListLength = 0;Y &= 0x1;X &= 0xF; //限制X不能大于15,Y不能大于1while (DData[ListLength]>=0x20) //若到达字串尾则退出{if (X <= 0xF) //X坐标应小于0xF{DisplayOneChar(X, Y, DData[ListLength]);//显示单个字符ListLength++;X++;}}}/*****************************************************************/ void temp_display(unsigned int temp) //显示程序{unsigned char A1,A2,A2t,A3;A1=temp/100; //百位A2t=temp%100;A2=A2t/10; //十位A3=A2t%10; //个位temperature[1]=A1 + 0x30;temperature[2]=A2 + 0x30;temperature[3]=A3 + 0x30;DisplayOneChar(9,1,temperature[1]);DisplayOneChar(10,1,temperature[2]);DisplayOneChar(12,1,temperature[3]);}/******************************************************************/ void init(){LCDInit();DisplayListChar(0,0,table0);DisplayListChar(0,1,table1);}void main(){int i;init();while(1){tmpchange();for(i=0;i<=10;i++){if(i==10){temp_display(tmp());}}}}。
DS18B20的工作原理
DS18B20的工作原理DS18B20是一种数字温度传感器,采用单总线接口进行通信。
它可以精确测量环境温度,并将温度值以数字形式传输给微控制器或其他设备。
DS18B20是一种广泛应用于工业自动化、家用电器、医疗设备等领域的温度传感器。
DS18B20的工作原理如下:1. 温度测量原理:DS18B20采用了基于半导体的温度测量原理。
它内部集成了温度传感器和模数转换器(ADC),可以将环境温度转换为数字信号。
DS18B20使用的是温度依赖的电阻器件,称为温度传感器。
当温度升高时,温度传感器的电阻值会发生变化,DS18B20利用这种变化来测量温度。
2. 单总线通信:DS18B20采用了单总线通信协议,即通过单根数据线进行数据传输。
这种通信方式简化了连接和控制的复杂性,只需使用一个引脚即可实现数据的传输和控制。
在单总线通信中,DS18B20作为从设备,由主控制器发出指令,DS18B20接收指令并返回温度数据。
3. 工作原理:DS18B20的工作原理可以分为三个步骤:初始化、温度转换和读取温度。
3.1 初始化:在通信开始前,主控制器需要发送初始化指令来识别和准备DS18B20。
初始化指令包括发送复位脉冲和读取DS18B20的存在脉冲。
复位脉冲使DS18B20进入准备接收指令的状态,存在脉冲用于检测DS18B20是否存在于总线上。
3.2 温度转换:初始化完成后,主控制器发送温度转换指令给DS18B20。
温度转换指令包括启动温度转换和等待转换完成。
DS18B20接收到指令后,开始测量环境温度,并将结果存储在内部寄存器中。
温度转换时间取决于DS18B20的分辨率设置,一般为750ms到12秒不等。
3.3 读取温度:温度转换完成后,主控制器发送读取温度指令给DS18B20。
DS18B20将温度值以数字形式传输给主控制器。
主控制器接收到温度数据后,可以进行进一步的处理和显示。
4. 分辨率设置:DS18B20支持多种温度分辨率设置,包括9位、10位、11位和12位。
DS18B20的工作原理
DS18B20的工作原理DS18B20是一种数字温度传感器,它采用单总线接口进行通信,并能够提供高精度的温度测量。
其工作原理如下:1. 基本原理:DS18B20采用了基于半导体的温度传感技术。
它内部集成了温度传感器、模数转换器和数字接口电路。
传感器通过测量半导体材料的电阻来获取温度信息,然后将其转换为数字信号输出。
2. 温度测量:DS18B20的温度测量是通过测量半导体材料的电阻来实现的。
半导体材料的电阻随着温度的变化而变化,DS18B20利用这一特性来确定温度。
其内部集成了一个精密的模数转换器,可以将电阻值转换为数字信号。
3. 单总线接口:DS18B20采用单总线接口进行通信,这意味着它只需要一条数据线即可完成数据传输。
通过控制数据线上的电平变化,可以实现与DS18B20的通信。
这种设计简化了连接和控制电路的复杂性。
4. 工作原理:DS18B20的工作原理可以分为三个步骤:初始化、温度转换和读取温度值。
- 初始化:主设备发送初始化命令,DS18B20响应并进入工作模式。
- 温度转换:主设备发送温度转换命令,DS18B20开始测量温度,并将结果存储在内部寄存器中。
- 读取温度值:主设备发送读取命令,DS18B20将温度值通过单总线接口发送给主设备。
5. 精度和分辨率:DS18B20具有高精度和可调节的分辨率。
它可以提供精度为±0.5℃的温度测量,并且可以通过设置分辨率来调整测量精度。
分辨率越高,测量精度越高,但测量时间也会增加。
6. 应用领域:DS18B20广泛应用于各种需要温度测量的领域,例如气象观测、工业自动化、家用电器等。
由于其数字接口和高精度的特性,它在温度监测和控制方面具有很大的优势。
总结:DS18B20是一种基于半导体技术的数字温度传感器,通过测量半导体材料的电阻来获取温度信息,并通过单总线接口与主设备进行通信。
它具有高精度、可调节的分辨率和广泛的应用领域。
在各种温度测量和控制场景中,DS18B20都是一种可靠且方便的选择。
温度传感器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可以用于监测室外温度,并将数据发送到气象站系统进行分析和显示。
stm32基于ds18b20的温度测量实例 实验原理
stm32基于ds18b20的温度测量实例实验原理
DS18B20是一款数字温度传感器,其测温范围为-55℃到+125℃,在-10℃到+85℃范围内误差为±°。
主机和从机通信使用单总线,即使用单线进行数据的发送和接收,在使用中不需要任何外围元件,独立芯片即可完成工作。
每个DS18B20都有独立唯一的64位-ID,此特性决定了它可以将任意多的DS18b20挂载到一根总线上,通过ROM搜索读取相应DS18B20的温度值。
单总线即只有一根数据线,系统中的数据交换,控制都由这根线完成。
One-Wire总线利用一根线实现双向通信,其协议对时序的要求较严格,如应答等时序都有明确的时间要求。
基本的时序包括复位及应答时序,写一位时序,读一位时序。
在复位及应答时序中,主器件发出复位信号后,要求从器件在规定的时间内送回应答信号;在位读和位写时序中,主器件要在规定的时间内读回或写出数据。
DS18B20的原理是基于以上这些特性的。
如果需要更详细的实验原理,可
以查阅相关资料或咨询专业人士获取帮助。
ds18b20 工作原理
ds18b20 工作原理
DS18B20 是一种数字温度传感器,它使用数字信号来测量环境温度。
其工作原理如下:
1. 温度测量:DS18B20 使用一个内置的温度传感器来测量环境温度。
传感器采用基于硅的测温技术,其中包含一个感应到温度变化的传感器模块。
传感器中的温度传感器模块由多个电阻构成,当温度变化时,这些电阻会产生相应的电压变化。
2. 数字信号转换:传感器将温度测量结果转换为数字信号。
在其内部,传感器采用一个模拟转数字转换器(ADC)来将温度转换为数字值。
这个数字值表示环境的温度。
3. 数据传输:与其他传感器不同,DS18B20 是一种数字温度传感器,它使用一种称为单线总线的串行通信协议进行数据传输。
传感器通过这个单线总线将转换后的数字温度值传输给外部设备(如微控制器或计算机)。
4. 供电:DS18B20 通过单线总线从外部设备中获得供电。
它使用一个特殊的协议来从该总线中提取电力。
总体来说,DS18B20 通过内部的温度传感器测量环境温度,并将其转换为数字信号,然后通过单线总线将这个数字信号传输给外部设备。
这使得 DS18B20 成为一种方便、简单且易于集成的温度传感器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DS18B20原理与分析DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。
与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。
因而使用DS18B20可使系统结构更趋简单,可靠性更高。
他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。
美国Dallas半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器,在其内部使用了在板(ON-BOARD)专利技术。
全部传感器元件及转换电路集成在形如一只三极管的集成电路内。
一线总线独特而经济的特点,使用户可轻松的组建传感器网络,为测量系统的构建引入全新概念。
现在,新一代的DS18B20体积更小,更经济,更灵活。
使你可以发挥“一线总线”的优点。
在传统的模拟信号远距离温度测量系统中,需要很好地解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。
另外一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。
因此,在温度测量系统中,采用抗干扰能力强的新型数字温度传感器DS18B20体积小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。
DS18B20的主要特征:(1)全数字温度转换及输出。
(2)先进的单总线数据通信。
(3)最高12位分辨率,精度可达土0.5摄氏度。
(4) 12位分辨率时的最大工作周期为750毫秒。
(5)可选择寄生工作方式。
6)检测温度范围为–55°C ~+125°C (–67°F ~+257°F) (7)内置EEPROM,限温报警功能。
(8)64位光刻ROM,内置产品序列号,方便多机挂接。
(9)多样封装形式,适应不同硬件系统。
DS18B20引脚定义:(1) DQ为数字信号输入/输出端;(2) GND为电源地;(3) VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
1.DS18B20简介(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(2)在使用中不需要任何外围元件。
(3)可用数据线供电,电压范围:+3.0~ +5.5 V。
(4)测温范围:-55 ~+125 ℃。
固有测温分辨率为0.5 ℃。
(5)通过编程可实现9~12位的数字读数方式。
(6)用户可自设定非易失性的报警上下限值。
(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。
(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
DS18B20的测温原理DS18B20的测温原理如图2所示,图中低温度系数晶振的振荡频率受温度的影响很小〔1〕,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在 -55 ℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作必须按协议进行。
操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
各种操作的时序图与DS1820相同.DS18B20工作过程及时序DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。
高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。
初始时,温度寄存器被预置成-55℃,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1℃,这个过程重复进行,直到计数器2计数到0时便停止。
初始时,计数器1预置的是与-55℃相对应的一个预置值。
以后计数器1每一个循环的预置数都由斜率累加器提供。
为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。
计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1℃计数器所需要的计数个数。
DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。
在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25℃进行比较,若低于0.25℃,温度寄存器的最低位就置0;若高于0.25℃,最低位就置1;若高于0.75℃时,温度寄存器的最低位就进位然后置0。
这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最后位代表0.5℃,四舍五入最大量化误差为±1/2LSB,即0.25℃。
温度寄存器中的温度值以9位数据格式表示,最高位为符号位,其余8位以二进制补码形式表示温度值。
测温结束时,这9位数据转存到暂存存储器的前两个字节中,符号位占用第一字节,8位温度数据占据第二字节。
DS18B20测量温度时使用特有的温度测量技术。
DS18B20内部的低温度系数振荡器能产生稳定的频率信号;同样的,高温度系数振荡器则将被测温度转换成频率信号。
当计数门打开时,DS18B20进行计数,计数门开通时间由高温度系数振荡器决定。
芯片内部还有斜率累加器,可对频率的非线性度加以补偿。
测量结果存入温度寄存器中。
一般情况下的温度值应该为9位,但因符号位扩展成高8位,所以最后以16位补码形式读出。
DS18B20工作过程一般遵循以下协议:初始化——ROM操作命令——存储器操作命令——处理数据①初始化单总线上的所有处理均从初始化序列开始。
初始化序列包括总线主机发出一复位脉冲,接着由从属器件送出存在脉冲。
存在脉冲让总线控制器知道DS1820 在总线上且已准备好操作。
② ROM操作命令一旦总线主机检测到从属器件的存在,它便可以发出器件ROM操作命令之一。
所有ROM 操作命令均为8位长。
这些命令列表如下:Read ROM(读ROM)[33h]此命令允许总线主机读DS18B20的8位产品系列编码,唯一的48位序列号,以及8位的CRC。
此命令只能在总线上仅有一个DS18B20的情况下可以使用。
如果总线上存在多于一个的从属器件,那么当所有从片企图同时发送时将发生数据冲突的现象(漏极开路会产生线与的结果)。
Match ROM( 符合ROM)[55h]此命令后继以64位的ROM数据序列,允许总线主机对多点总线上特定的DS18B20寻址。
只有与64位ROM序列严格相符的DS18B20才能对后继的存贮器操作命令作出响应。
所有与64位ROM序列不符的从片将等待复位脉冲。
此命令在总线上有单个或多个器件的情况下均可使用。
Skip ROM( 跳过ROM )[CCh]在单点总线系统中,此命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间。
如果在总线上存在多于一个的从属器件而且在Skip ROM命令之后发出读命令,那么由于多个从片同时发送数据,会在总线上发生数据冲突(漏极开路下拉会产生线与的效果)。
Search ROM( 搜索ROM)[F0h]当系统开始工作时,总线主机可能不知道单线总线上的器件个数或者不知道其64位ROM 编码。
搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。
Alarm Search(告警搜索)[ECh]此命令的流程与搜索ROM命令相同。
但是,仅在最近一次温度测量出现告警的情况下,DS18B20才对此命令作出响应。
告警的条件定义为温度高于TH 或低于TL。
只要DS18B20一上电,告警条件就保持在设置状态,直到另一次温度测量显示出非告警值或者改变TH或TL的设置,使得测量值再一次位于允许的范围之内。
贮存在EEPROM内的触发器值用于告警。
③存储器操作命令Write Scratchpad(写暂存存储器)[4Eh]这个命令向DS18B20的暂存器中写入数据,开始位置在地址2。
接下来写入的两个字节将被存到暂存器中的地址位置2和3。
可以在任何时刻发出复位命令来中止写入。
Read Scratchpad(读暂存存储器)[BEh]这个命令读取暂存器的内容。
读取将从字节0开始,一直进行下去,直到第9(字节8,CRC)字节读完。
如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。
Copy Scratchpad(复制暂存存储器)[48h]这条命令把暂存器的内容拷贝到DS18B20的E2存储器里,即把温度报警触发字节存入非易失性存储器里。
如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又正在忙于把暂存器拷贝到E2存储器,DS18B20就会输出一个“0”,如果拷贝结束的话,DS18B20 则输出“1”。
如果使用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持10ms。
Convert T(温度变换)[44h]这条命令启动一次温度转换而无需其他数据。
温度转换命令被执行,而后DS18B20保持等待状态。
如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于做时间转换的话,DS18B20将在总线上输出“0”,若温度转换完成,则输出“1”。
如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持500ms。
Recall E2(重新调整E2)[B8h]这条命令把贮存在E2中温度触发器的值重新调至暂存存储器。
这种重新调出的操作在对DS18B20上电时也自动发生,因此只要器件一上电,暂存存储器内就有了有效的数据。