数字温度传感器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 的供电”章节中详细讲解。

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是一种数字温度传感器,采用单总线数据传输协议进行通信。

它能够高精度地测量环境温度,并且具有体积小、价格低廉、使用方便等特点。

本文将介绍DS18B20传感器的原理、特性以及应用场景。

一、传感器原理DS18B20传感器采用基于硅的温度传感技术。

其内部集成了温度传感器、模数转换器等电路,以及一组ROM(只读存储器)和RAM(随机存储器)。

传感器通过感应环境温度引起的半导体温度变化,将温度值转换为数字信号输出。

二、传感器特性1. 高精度:DS18B20传感器具有最高精度为±0.5°C的温度测量能力,适用于对于精度要求较高的应用场景。

2. 大量程:传感器可在-55°C至+125°C的温度范围内进行测量,适用于广泛的温度监测需求。

3. 单总线接口:传感器采用单总线接口进行数据传输,仅需要一根数据线,方便集成和使用。

4. 低功耗:传感器工作时的电源电压范围为3V至5.5V,具有低功耗的特点,适用于需要长时间连续监测温度的场景。

5. 独特的硬件地址:每个DS18B20传感器都有一个独特的64位硬件地址,可以通过该地址进行单独的识别和通信。

三、传感器应用由于DS18B20传感器具有小巧、精确、方便等特点,因此在很多领域得到了广泛应用。

1. 温度监测系统:传感器可以应用于各种温度监测系统,如气象站、冷链物流、温度报警器等。

通过使用多个DS18B20传感器,可以实现对不同位置的温度进行监测和记录。

2. 温度控制系统:传感器可以用于控制温度的系统,例如恒温器、温室控制系统等。

通过实时监测环境温度,并根据需求进行温度控制,可以提供更舒适的生活和工作环境。

3. 工业自动化:在工业环境中,温度监测也是很重要的一项任务。

DS18B20传感器可以与PLC、SCADA等系统集成,用于工业自动化控制和监测。

4. 物联网应用:随着物联网的发展,温度传感器在物联网应用中的需求越来越大。

温度传感器DS18B20中文资料

温度传感器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

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中文资料

第14章DS18B2014.1概念.这一章是关于DS18B20实时温度传感器。

相信有学过c51单片机的朋友都对他不陌生吧。

我恰恰也学习过,不过当初并没有掌握好。

学习板搭配的DS18B20,一般上给人的感觉有点像三极管,其实DS18B20的内部结构与原理也挺猥琐的,但是我们使用也是为了实现温度传感的功能而已,基本上不会介绍过度深入。

14.2DS18B20介绍DS18B20有三只引脚,VCC,DQ,和VDD。

而HJ-2G板子上,采用了外部供电的链接方式,而总线必须链接上拉电阻。

这一目的告诉我们,一线总线在空置状态时,都是一直处于高电平。

DS18B20的内部有64位的ROM单元,和9字节的暂存器单元。

64位ROM包含了,DS18B20唯一的序列号(唯一的名字)。

以上是内部9个字节的暂存单元(包括EEPROM)。

字节0~1是转换好的温度。

字节2~3是用户用来设置最高报警和最低报警值。

这个可以用软件来实现。

字节4是用来配置转换精度,9~12位。

字节5~8就不用看了。

14.3字节0~1:转换好的温度DS18B20的温度操作是使用16位,也就是说分辨率是0.0625。

BIT15~BIT11是符号位,为了就是表示转换的值是正数还是负数。

看看数据手册给出的例子吧。

要求出正数的十进制值,必须将读取到的LSB字节,MSB字节进行整合处理,然后乘以0.0625即可。

Eg:假设从,字节0读取到0xD0赋值于Temp1,而字节1读取到0x07赋值于Temp2,然后求出十进制值。

unsigned int Temp1,Temp2,Temperature;Temp1=0xD0;//低八位Temp2=0x07;//高八位Temperature=((Temp2<<8)|Temp1)*0.0625;//又或者Temperature=(Temp1+Temp2*256)*0.0625;//Temperature=125在这里我们遇见了一个问题,就是如何求出负数的值呢?很遗憾的,单片机不像人脑那样会心算,我们必须判断BIT11~15是否是1,然后人为置一负数标志。

ds18b20中文资料 (2)

ds18b20中文资料 (2)

ds18b20中文资料介绍DS18B20是一种数字温度传感器,由Maxim Integrated公司设计和制造。

它采用单总线接口和独特的数字编码技术,可直接测量环境温度。

DS18B20的小尺寸、低功耗和数字接口使其成为智能设备、电子设备和工业自动化等领域中广泛应用的理想选择。

特点1.单总线接口:DS18B20通过单一的总线进行数据传输和通信。

这种设计简化了电路连接,降低了硬件成本。

2.数字编码技术:DS18B20使用独特的数字编码技术将温度信息转换为12位二进制数据。

这种方式大大提高了测量的准确性和稳定性。

3.多种封装:DS18B20可提供不同的封装形式,包括TO-92,SOT-223和TDFN等,以适应不同的应用场景。

4.宽工作温度范围:DS18B20可在-55°C至+125°C的温度范围内工作,适应各种极端环境。

5.低功耗:DS18B20在测量温度时,功耗非常低,这对于电池供电的应用非常重要。

电气特性DS18B20的电气特性如下:•输入电压:3V至5.5V•测量范围:-55°C至+125°C•分辨率:可配置为9到12位•精度:±0.5°C(-10°C至+85°C范围内)•电流消耗:750μA(测量),千分之一微安(静态)•输出模式:数字•温度转换时间:750ms至10ms,取决于分辨率•封装形式:TO-92、SOT-223、TDFN等应用DS18B20广泛应用于以下领域:1.温度监控系统:DS18B20可以用于实时监测环境温度,例如室内温度、水温、土壤温度等。

这在农业、工业和家庭自动化等领域非常有用。

2.智能家居:DS18B20可用于智能恒温控制系统,通过检测室内温度并自动调节暖气、空调等设备,提供舒适的居住环境。

3.电子设备:DS18B20可用于电子设备的温度监测和保护。

例如,当电子元件过热时,可以触发警报或自动关闭设备以防止损坏。

DS18B20详细中文资料

DS18B20详细中文资料

分辨率可编程单总线数字温度传感器——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 的主要引脚连接。

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

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(常用于温度报警值储存)的镜像。

在上电复位时其值将被刷新。

第5个字节则是用户第3个EEPROM的镜像。

第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。

第9个字节为前8个字节的CRC码。

EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。

RAM及EEPROM结构图:图2我们在每一次读温度之前都必须进行复杂的且精准时序的处理,因为DS18B20的硬件简单结果就会导致软件的巨大开消,也是尽力减少有形资产转化为无形资产的投入,是一种较好的节约之道。

控制器对18B20操作流程:1,复位:首先我们必须对DS18B20芯片进行复位,复位就是由控制器(单片机)给DS18B20单总线至少480uS的低电平信号。

当18B20接到此复位信号后则会在15~60uS后回发一个芯片的存在脉冲。

2,存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在15~60uS后接收存在脉冲,存在脉冲为一个60~240uS的低电平信号。

至此,通信双方已经达成了基本的协议,接下来将会是控制器与18B20间的数据通信。

如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。

3,控制器发送ROM指令:双方打完了招呼之后最要将进行交流了,ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。

RO M指令为8位长度,功能是对片内的64位光刻ROM进行操作。

其主要目的是为了分辨一条总线上挂接的多个器件并作处理。

诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的ID号来区别,一般只挂接单个18B20芯片时可以跳过ROM指令(注意:此处指的跳过ROM指令并非不发送ROM指令,而是用特有的一条“跳过指令”)。

ROM指令在下文有详细的介绍。

4,控制器发送存储器操作指令:在ROM指令发送给18B20之后,紧接着(不间断)就是发送存储器操作指令了。

操作指令同样为8位,共6条,存储器操作指令分别是写RAM数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM中的报警值复制到RAM、工作方式切换。

存储器操作指令的功能是命令18B20作什么样的工作,是芯片控制的关键。

5,执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。

如执行温度转换指令则控制器(单片机)必须等待18B20执行其指令,一般转换时间为500uS。

如执行数据读写指令则需要严格遵循18B20的读写时序来操作。

数据的读写方法将有下文有详细介绍。

若要读出当前的温度数据我们需要执行两次工作周期,第一个周期为复位、跳过ROM指令、执行温度转换存储器操作指令、等待500uS温度转换时间。

紧接着执行第二个周期为复位、跳过ROM指令、执行读RAM的存储器操作指令、读数据(最多为9个字节,中途可停止,只读简单温度值则读前2个字节即可)。

其它的操作流程也大同小异,在此不多介绍。

DS18B20芯片与单片机的接口:图3图4如图所示,DS18B20只需要接到控制器(单片机)的一个I/O口上,由于单总线为开漏所以需要外接一个的上拉电阻。

如要采用寄生工作方式,只要将VDD电源引脚与单总线并联即可。

但在程序设计中,寄生工作方式将会对总线的状态有一些特殊的要求。

图5DS28B20芯片ROM指令表:Read ROM(读ROM)[33H] (方括号中的为16进制的命令字)这个命令允许总线控制器读到DS18B20的64位ROM。

只有当总线上只存在一个DS18B20的时候才可以使用此指令,如果挂接不只一个,当通信时将会发生数据冲突。

Match ROM(指定匹配芯片)[55H]这个指令后面紧跟着由控制器发出了64位序列号,当总线上有多只DS18B20时,只有与控制发出的序列号相同的芯片才可以做出反应,其它芯片将等待下一次复位。

这条指令适应单芯片和多芯片挂接。

Skip ROM(跳跃ROM指令)[CCH]这条指令使芯片不对ROM编码做出反应,在单总线的情况之下,为了节省时间则可以选用此指令。

如果在多芯片挂接时使用此指令将会出现数据冲突,导致错误出现。

Search ROM(搜索芯片)[F0H]在芯片初始化后,搜索指令允许总线上挂接多芯片时用排除法识别所有器件的64位ROM。

Alarm Search(报警芯片搜索)[ECH]在多芯片挂接的情况下,报警芯片搜索指令只对附合温度高于TH或小于TL报警条件的芯片做出反应。

只要芯片不掉电,报警状态将被保持,直到再一次测得温度什达不到报警条件为止。

DS28B20芯片存储器操作指令表:Write Scratchpad (向RAM中写数据)[4EH]这是向RAM中写入数据的指令,随后写入的两个字节的数据将会被存到地址2(报警RAM之TH)和地址3(报警RAM之TL)。

写入过程中可以用复位信号中止写入。

Read Scratchpad (从RAM中读数据)[BEH]此指令将从RAM中读数据,读地址从地址0开始,一直可以读到地址9,完成整个RAM数据的读出。

芯片允许在读过程中用复位信号中止读取,即可以不读后面不需要的字节以减少读取时间。

Copy Scratchpad (将RAM数据复制到EEPROM中)[48H]此指令将RAM中的数据存入EEPROM中,以使数据掉电不丢失。

此后由于芯片忙于EEPROM储存处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。

在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持10MS,来维持芯片工作。

Convert T(温度转换)[44H]收到此指令后芯片将进行一次温度转换,将转换的温度值放入RAM的第1、2地址。

此后由于芯片忙于温度转换处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。

在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持5 00MS,来维持芯片工作。

Recall EEPROM(将EEPROM中的报警值复制到RAM)[B8H]此指令将EEPROM中的报警值复制到RAM中的第3、4个字节里。

由于芯片忙于复制处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。

另外,此指令将在芯片上电复位时将被自动执行。

这样RAM中的两个报警字节位将始终为EEPRO M中数据的镜像。

Read Power Supply(工作方式切换)[B4H]此指令发出后发出读时间隙,芯片会返回它的电源状态字,“0”为寄生电源状态,“1”为外部电源状态。

DS18B20复位及应答关系示意图:图6每一次通信之前必须进行复位,复位的时间、等待时间、回应时间应严格按时序编程。

DS18B20读写时间隙:DS18B20的数据读写是通过时间隙处理位和命令字来确认信息交换的。

写时间隙:图7写时间隙分为写“0”和写“1”,时序如图7。

在写数据时间隙的前15uS总线需要是被控制器拉置低电平,而后则将是芯片对总线数据的采样时间,采样时间在15~60uS,采样时间内如果控制器将总线拉高则表示写“1”,如果控制器将总线拉低则表示写“0”。

每一位的发送都应该有一个至少15uS的低电平起始位,随后的数据“0”或“1”应该在45uS内完成。

整个位的发送时间应该保持在60~120uS,否则不能保证通信的正常。

读时间隙:图8读时间隙时控制时的采样时间应该更加的精确才行,读时间隙时也是必须先由主机产生至少1uS的低电平,表示读时间的起始。

随后在总线被释放后的15uS中DS18B20会发送内部数据位,这时控制如果发现总线为高电平表示读出“1”,如果总线为低电平则表示读出数据“0”。

每一位的读取之前都由控制器加一个起始信号。

注意:如图8所示,必须在读间隙开始的15uS内读取数据位才可以保证通信的正确。

在通信时是以8位“0”或“1”为一个字节,字节的读或写是从高位开始的,即A7到A0.字节的读写顺序也是如图2自上而下的。

//实验目的:熟悉DS18B20的使用//六位数码管显示温度结果,其中整数部分2位,小数部分4位//每次按下RB0键后进行一次温度转换。

//硬件要求:把DS18B20插在18B20插座上// 拨码开关S10第1位置ON,其他位置OFF// 拨码开关S5、S6全部置ON,其他拨码开关全部置OFF #i nclude<>//__CONFIG(0x1832);//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M 晶体HS振荡#define uch unsigned char //给unsigned char起别名 uch# define DQ RA0 //定义18B20数据端口# define DQ_DIR TRISA0 //定义18B20D口方向寄存器# define DQ_HIGH() DQ_DIR =1 //设置数据口为输入# define DQ_LOW() DQ = 0; DQ_DIR = 0 //设置数据口为输出unsigned char TLV=0 ; / /采集到的温度高8位unsigned char THV=0;//采集到的温度低8位unsigned char TZ=0; //转换后的温度值整数部分unsigned char TX=0; //转换后的温度值小数部分unsigned int wd; //转换后的温度值BCD码形式unsigned char shi; //整数十位unsigned char ge; //整数个位unsigned char shifen; //十分位unsigned char baifen; //百分位unsigned char qianfen; //千分位unsigned char wanfen; //万分位unsigned char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0 x90};//0-9的显示代码//------------------------------------------------//延时函数void delay(char x,char y){char z;do{z=y;do{;}while(--z);}while(--x);}//其指令时间为:7+(3*(Y-1)+7)*(X-1)如果再加上函数调用的call 指令、页面设定、传递参数花掉的7 个指令。

相关文档
最新文档