勇敢心资源网

当前位置:首页 > 百科 / 正文

DS18B20

(2020-04-02 05:18:39) 百科
DS18B20

DS18B20

DS18B20是常用的数字温度感测器,其输出的是数位讯号,具有体积小,硬体开销低,抗干扰能力强,精度高的特点。DS18B20数字温度感测器接线方便,封装成后可套用于多种场合,如管道式,螺纹式,磁铁吸附式,不鏽钢封装式,型号多种多样,有LTM8877,LTM8874等等。

主要根据套用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。

基本介绍

  • 中文名:数字温度感测器
  • 外文名:DS18B20
  • 体积:小
  • 硬体开销:低
  • 抗干扰能力:强
  • 工作电压:3V~5.5V
  • 超低功耗:静态功耗<3uA
  • 常见封装:TO-92、SOP8和DIP8
  • 採集模组:LCT2662M,RS485汇流排

工作原理

DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因解析度不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20测温原理如图3所示。图中低温度係数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号传送给计数器1。高温度係数晶振随温度变化其振荡频率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度暂存器被预置在-55℃所对应的一个基数值。计数器1对低温度係数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度暂存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度係数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度暂存器值的累加,此时温度暂存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
DS18B20

技术性能

1、技术性能描述:
①、 独特的单线接口方式,DS18B20在与微处理器连线时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
② 、测温範围 -55℃~+125℃,固有测温误差(注意,不是解析度,这里之前是错误的)1℃。
DS18B20
③、支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。
④、工作电源: 3.0~5.5V/DC (可以数据线寄生电源)
⑤ 、在使用中不需要任何外围元件
⑥、 测量结果以9~12位数字量方式串列传送
⑦ 、不鏽钢保护管直径 Φ6
⑧ 、适用于DN15~25, DN40~DN250各种介质工业管道和狭小空间设备测温
⑨、 标準安装螺纹 M10X1, M12X1.5, G1/2”任选
⑩ 、PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连线。
DS18B20+ 和 Maxim Integrated 信息
Manufactured by Maxim Integrated, DS18B20+ is a 温度感测器.

套用範围

该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域。
轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。
汽车空调、冰柜、冷柜、以及中低温乾燥箱等。
供热/製冷管道热量计量,中央空调分户热能计量和工业领域测温和控制。

型号规格

型 号 测温範围 安装螺纹 电缆长度 适用管道
TS-18B20 -55~125 无 1.5 m
TS-18B20A -55~125 M10X1 1.5m DN15~25
TS-18B20B -55~125 1/2”G 接线盒 DN40~ 60

接线说明

接线方法

面对着平的那一面,左负右正,一旦接反就会立刻发热,有可能烧毁!同时,接反也是导致该感测器总是显示85℃的原因。实际操作中将正负反接,感测器立即发热,液晶屏不能显示读数,正负接好后显示85℃。另外,如果使用51单片机的话,那幺中间那个引脚必须接上4.7K—10K的上拉电阻,否则,由于高电平不能正常输入/输出,要幺通电后立即显示85℃,要幺用几个月后温度在85℃与正常值上乱跳。

特点

独特的一线接口,只需要一条口线通信 多点能力,简化了分散式温度感测套用 无需外部元件 可用数据汇流排供电,电压範围为3.0 V至5.5 V 无需备用电源 测量温度範围为-55 ° C至+125 ℃ 。华氏相当于是-67 ° F到257° F。在摄氏度-10 ° C至+85 ° C範围内精度为±0.5 ° C
温度感测器可程式的解析度为9~12位,温度转换为12位数字格式最大值为750毫秒,用户可定义的非易失性温度报警设定,套用範围包括恆温控制、工业系统、消费电子产品温度计、或任何热敏感系统
描述该DS18B20的数字温度计提供9至12位(可程式设备温度读数)。由于DS18B20是一条口线通信,所以中央微处理器与DS18B20只有一个一条口线连线。为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。 因为每一个DS18B20的包含一个独特的序号,多个ds18b20s可以同时存在于一条汇流排。这使得温度感测器放置在许多不同的地方。它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。
DS18B20採用一线通信接口。因为一线通信接口,必须在先完成ROM设定,否则记忆和控制功能将无法使用。主要首先提供以下功能命令之一: 1 )读ROM, 2 )ROM匹配, 3 )搜寻ROM, 4 )跳过ROM, 5 )报警检查。这些指令操作作用在没有一个器件的64位光刻ROM序列号,可以在挂在一线上多个器件选定某一个器件,同时,汇流排也可以知道汇流排上挂有有多少,什幺样的设备。
若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。一个控制功能指挥指示DS18B20的演出测温。测量结果将被放置在DS18B20记忆体中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。温度报警触发器TH和TL都有一位元组EEPROM 的数据。如果DS18B20不使用报警检查指令,这些暂存器可作为一般的用户记忆用途。在片上还载有配置位元组以理想的解决温度数字转换。写TH,TL指令以及配置位元组利用一个记忆功能的指令完成。通过快取器读暂存器。所有数据的读,写都是从最低位开始。

部件描述

存储器
DS18B20的存储器包括高速暂存器RAM和可电擦除RAM,可电擦除RAM又包括温度触发器TH和TL,以及一个配置暂存器。存储器能完整的确定一线连线埠的通讯,数字开始用写暂存器的命令写进暂存器,接着也可以用读暂存器的命令来确认这些数字。当确认以后就可以用複製暂存器的命令来将这些数字转移到可电擦除RAM中。当修改过暂存器中的数时,这个过程能确保数字的完整性。
高速暂存器RAM是由8个位元组的存储器组成;。用读暂存器的命令能读出第九个位元组,这个位元组是对前面的八个位元组进行校验。。
64-位光刻ROM
64位光刻ROM的前8位是DS18B20的自身代码,接下来的48位为连续的数字代码,最后的8位是对前56位的CRC校验。64-位的光刻ROM又包括5个ROM的功能命令:读ROM,匹配ROM,跳跃ROM,查找ROM和报警查找。
外部电源的连线
DS18B20可以使用外部电源VDD,也可以使用内部的寄生电源。当VDD连线埠接3.0V—5.5V的电压时是使用外部电源;当VDD连线埠接地时使用了内部的寄生电源。无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻。
配置暂存器
配置暂存器是配置不同的位数来确定温度和数字的转化。
可以知道R1,R0是温度的决定位,由R1,R0的不同组合可以配置为9位,10位,11位,12位的温度显示。这样就可以知道不同的温度转化位所对应的转化时间,四种配置的解析度分别为0.5℃,0.25℃,0.125℃和0.0625℃,出厂时以配置为12位。
温度的读取
DS18B20在出厂时以配置为12位,读取温度时共读取16位,前5个位为符号位,当前5位为1时,读取的温度为负数;当前5位为0时,读取的温度为正数。温度为正时读取方法为:将16进制数转换成10进制即可。温度为负时读取方法为:将16进制取反后加1,再转换成10进制即可。例:0550H = +85 度,FC90H = -55 度。

控制方法

DS18B20有六条控制命令,如表4.1所示:
表4.1 为DS18B20有六条控制命令
指 令 约定代码 操 作 说 明
温度转换 44H 启动DS18B20进行温度转换
读暂存器 BEH 读暂存器9位元组二进制数字
写暂存器 4EH 将数据写入暂存器的TH、TL位元组
複製暂存器 48H 把暂存器的TH、TL位元组写到E2PROM中
重新调E2PROM B8H 把E2PROM中的TH、TL位元组写到暂存器TH、TL位元组
读电源供电方式 B4H 启动DS18B20传送电源供电方式的信号给主CPU

初始化

(1) 先将数据线置高电平“1”。
(2) 延时(该时间要求的不是很严格,但是儘可能的短一点)
(3) 数据线拉到低电平“0”。
(4) 延时750微秒(该时间的时间範围可以从480到960微秒)。
(5) 数据线拉到高电平“1”。
(6) 延时等待(如果初始化成功则在15到60微秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程式进入死循环,所以要进行逾时控制)。
(7) 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。
(8) 将数据线再次拉高到高电平“1”后结束。
其时序如图4.13所示:
图4.13 初始化时序图

写操作

(1) 数据线先置低电平“0”。
(2) 延时确定的时间为15微秒。
(3) 按从低位到高位的顺序传送位元组(一次只传送一位)。
(4) 延时时间为45微秒。
(5) 将数据线拉到高电平。
(6) 重複上(1)到(6)的操作直到所有的位元组全部传送完为止。
(7) 最后将数据线拉高。
DS18B20的写操作时序图如图4.14所示。
图4.14 DS18B20的写操作时序图

读操作

(1)将数据线拉高“1”。
(2)延时2微秒。
(3)将数据线拉低“0”。
(4)延时3微秒。
(5)将数据线拉高“1”。
(6)延时5微秒。
(7)读数据线的状态得到1个状态位,并进行数据处理。
(8)延时60微秒。
DS18B20的读操作时序图如图4.15所示。
图1.15 DS18B20的读操作图

主要特徵

1、DS18B20的主要特性
DS18B20
1.1、适应电压範围更宽,电压範围:3.0~5.5V,在寄生电源方式下可由数 据线供电
1.2、独特的单线接口方式,DS18B20在与微处理器连线时仅需要一条口线即可实现微处理器与DS18B20的双向通讯
1.3、 DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温
1.4、DS18B20在使用中不需要任何外围元件,全部 感测元件及转换电路集成在形如一只三极体的积体电路内
1.5、温範围-55℃~+125℃,在-10~+85℃时精度为±0.5℃
1.6、可程式 的解析度为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温
1.7、在9位解析度时最多在 93.75ms内把温度转换为数字,12位解析度时最多在750ms内把温度值转换为数字,速度更快
1.8、测量结果直接输出数字温度信号,以"一 线汇流排"串列传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力
1.9、负压特性:电源极性接反时,晶片不会因发热而烧毁, 但不能正常工作。
2、DS18B20的外形和内部结构
DS18B20内部结构主要由四部分组成:64位光刻ROM 、温度感测器、非挥发的温度报警触发器TH和TL、配置暂存器。
DS18B20的外形及管脚排列如下图1:
DS18B20引脚定义:
(1)DQ为数位讯号输入/输出端;
(2)GND为电源地;
(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
图2:DS18B20内部结构图
DS18B20
3、DS18B20工作原理
DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因解析度不同而不同,且温度转换时的延时时间由2s 减为750ms。高温度係数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度暂存器被预置在-55℃所对应的一个基数值。计数器1对 低温度係数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度暂存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度係数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度暂存器值的累加,此时温度暂存器中的数值即 为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
图3:DS18B20测温原理框图DS18B20有4个主要的数据部件:
DS18B20
(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位 (28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用 是使每一个DS18B20都各不相同,这样就可以实现一根汇流排上挂接多个DS18B20的目的。
(2)DS18B20中的温度感测器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以 0.0625℃/LSB形式表达,其中S为符号位。
表1: DS18B20温度值格式表
DS18B20
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0, 这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际 温度。 例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FE6FH,-55℃的数字输出为FC90H 。
表2: DS18B20温度数据表
(3)DS18B20温度感测器的存储器 DS18B20温度感测器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器 TH、TL和结构暂存器。
DS18B20
(4)配置暂存器 该位元组各位的意义如下:
表3:配置暂存器结构
TM
R1
R0
1
1
1
1
1
低五位一直都是"1",TM是测试模式位,用于设定DS18B20在工作模式还是在测试模式。在DS18B20齣厂时该位被设定为0,用 户不要去改动。R1和R0用来设定解析度,如下表所示:(DS18B20齣厂时被设定为12位)
表4:温度解析度设定表
R1
R0
解析度
温度最大转换时间
0
0
9位
93.75ms
0
1
10位
187.5ms
1
0
11位
375ms
1
1
12位
750ms
4、高速暂存存储器高速暂存存储器由9个位元组组成,其分配如表5所示。当温度转换命令发布后,经转换所得的温度值以二位元组补码形式存放在 高速暂存存储器的第0和第1个位元组。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表1所示。对应的温度计算: 当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。表 2是对应的一部分温度值。第九个位元组是 冗余检验位元组。
表5:DS18B20暂存暂存器分布
暂存器内容
位元组地址
温度值低位 (LS Byte)
0
温度值高位 (MS Byte)
1
高温限值(TH)
2
低温限值(TL)
3
配置暂存器
4
保留
5
保留
6
保留
7
CRC校验值
8
根据DS18B20的通讯协定,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行 复位操作,复位成功后传送一条ROM指令,最后传送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后 释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
表6:ROM指令表
指 令
约定代码
功 能
读ROM
33H
读DS1820温度感测器ROM中的编码(即64位地址)
符合 ROM
55H
发出此命令之后,接着发出 64 位 ROM 编码,访问单汇流排上与该编码相对应的 DS1820 使之作出回响,为下一步对该 DS1820 的读写作準备。
搜寻 ROM
FOH
用于确定挂接在同一汇流排上 DS1820 的个数和识别 64 位 ROM 地址。为操作各器件作好準备。
跳过 ROM
CCH
忽略 64 位 ROM 地址,直接向 DS1820 发温度变换命令。适用于单片工作。
告警搜寻命令
ECH
执行后只有温度超过设定值上限或下限的片子才做出回响。
表6:RAM指令表
指 令
约定代码
功 能
温度变换
44H
启动DS1820进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部第0、1位元组RAM中。
读暂存器
BEH
连续读取内部RAM中9个位元组的内容
写暂存器
4EH
发出向内部RAM的第2、3和4位元组写上、下限温度数据命令,紧跟该命令之后,是传送三位元组的数据。
备份设定
48H
将RAM中第2、3和4位元组位元组的内容複製到EEPROM中。
恢复设定
B8H
将EEPROM中内容恢复到RAM中的第2、3和4位元组。
读供电方式
B4H
读DS1820的供电模式。寄生供电时DS1820传送“ 0 ”,外接电源供电 DS1820传送“ 1 ”。
5、DS18B20的套用电路DS18B20测温系统具有测温系统简单、测温精度高、连线方便、占用口线少等优点。下面就是DS18B20几个不同套用方式下的 测温电路图:
5.1、DS18B20寄生电源供电方式电路图如下面图4所示,在寄生电源供电方式下,DS18B20从单线信号线上汲取能量:在信号线DQ处于高电平期间把能量储存在内部 电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。
独特的寄生电源方式有三个好处:
1)进行远距离测温时,无需本地电源
2)可以在没有常规电源的条件下读取ROM
3)电路更加简洁,仅用一根I/O口实现测温
要想使DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由 于每个DS18B20在温度转换期间工作电流达到1mA,当几个温度感测器挂在同一根I/O线上进行多点测温时,只靠4.7K上拉电阻就无法提供足够的 能量,会造成无法转换温度或温度误差极大。
因此,图4电路只适应于单一温度感测器测温情况下使用,不适宜採用电池供电系统中。并 且工作电源VCC必须保证在5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。
图4图4
5.2、DS18B20寄生电源强上拉供电方式电路图改进的寄生电源供电方式如下面图5所示,为了使DS18B20在动态转换周期中获得足够的电流供应,当进行温度转换或拷贝到 E2存储器操作时,用MOSFET把I/O线直接拉到VCC就可提供足够的电流,在发出任何涉及到拷贝到E2存储器或启动温度转换的指令后,必须在最 多10μS内把I/O线转换到强上拉状态。在强上拉方式下可以解决电流供应不走的问题,因此也适合于多点测温套用,缺 点就是要多占用一根I/O口线进行强上拉切换。
图5
图5图5
注意:在图4和图5寄生电源供电方式中,DS18B20的VDD引脚必须接地
5.3、DS18B20的外部电源供电方式
在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证 转换精度,同时在汇流排上理论可以挂接任意多个DS18B20感测器,组成多点测温系统。注意:在外部供电的方式下,DS18B20的GND引脚不能悬空 ,否则不能转换温度,读取的温度总是85℃。
图6:外部供电方式单点测温电路.
图6图6
.
.
.
.
图7:外部供电方式的多点测温电路图外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度 监控系统。站长推荐大家在开发中使用外部电源供电方式,毕竟比寄生电源方式只多接一根VCC引线。在外接电源方式下, 可以充分发挥DS18B20宽电源电压範围的优点,即使电源电压VCC降到3V时,依然能够保证温度量精度。
图7图7
6、DS1820使用中注意事项
DS1820虽然具有测温系统简单、测温精度高、连线方便、占用口线少等优点,但在实际套用中也应注意以下几方面的问题:
6.1、较小的硬体开销需要相对複杂的软体进行补偿,由于DS1820与微处理器间採用串列数据传送,因此 ,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程式设计时,对 DS1820操作部分最好採用彙编语言实现。
6.2、在DS1820的有关资料中均未提及单汇流排上所挂DS1820数量问题,容易使人误认为可以挂任意多个 DS1820,在实际套用中并非如此。当单汇流排上所挂DS1820超过8个时,就需要解决微处理器的汇流排驱动问题,这一点在进行多点测温系统设计时 要加以注意。
6.3、连线DS1820的汇流排电缆是有长度限制的。试验中,当採用普通信号电缆传输长度超过50m时,读取的 测温数据将发生错误。当将汇流排电缆改为双绞线带禁止电缆时,正常通讯距离可达150m,当採用每米绞合次数更多的双绞线带禁止电缆时,正 常通讯距离进一步加长。这种情况主要是由汇流排分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考 虑汇流排分布电容和阻抗匹配问题。
6.4、在DS1820测温程式设计中,向DS1820发出温度转换命令后,程式总要等待DS1820的返回信号,一旦 某个DS1820接触不好或断线,当程式读该DS1820时,将没有返回信号,程式进入死循环。这一点在进行DS1820硬体连线和软体设计时也要给予 一定的重视。 测温电缆线建议採用禁止4芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,禁止层在源端单点接地。

套用举例

利用DS18B20构成的数字温度计
用一片DS18B20构成测温系统,测量的温度精度达到0.1度,测量的温度的範围在-20度到+100度之间,用8位数码管显示出来
DS18B20
读取温度程式代码段
#include"reg51.h"#include"d1820.h"#define uint unsigned int#define uchar unsigned charint t;uint num;uchar dat; //读写数据变数uchar a=0;uchar b=0;float tep=0; //读一个温度时的温度转换中间间uchar data tempbuf[4]=0;//温度字型显示中间变数/******************************************************函式名称:delay(uint num)返回值:无参数:uint num 延时数据值作用:延时*******************************************************/void delay(uint num){while(num--);}/******************************************************函式名称:void Init_DS18B20(void)返回值:无参数:无作用:初始化18B20*******************************************************/void Init_DS18B20(void){char x=0;DQ=1;delay(10);//稍作延时DQ=0;delay(80);//延时>480us 540usDQ=1; //拉高汇流排 15-60usdelay(20);x=DQ;//读汇流排状态 为0复位成功,为1则不成功delay(30);DQ=1;//释放汇流排}/******************************************************函式名称:uchar ReadOneChar(void)返回值:uchar dat参数: 无作用:读取1820一个位元组*******************************************************/uchar ReadOneChar(void){uchar i;uchar dat=0;for(i=0;i<8;i++){DQ=0;dat>>=1;DQ=1;//给脉冲if(DQ){dat|=0x80;}//读1 /// 读0右移处理delay(8);//15us内读完一个数}return(dat);}/******************************************************函式名称:void WriteOneChar(uchar dat)返回值:无参数: uchar dat作用:向1820写一个位元组*******************************************************//////****写DS18B20***///写0 60us读完,写1 30us 内读完void WriteOneChar(uchar dat){uchar i=0;for(i=0;i<8;i++){DQ=0;DQ=dat&0x01;//写所给数据最低位delay(10);///////////DQ=1;//给脉冲dat>>=1;}delay(8);}/******************************************************函式名称:int ReadOneTemperature(void)返回值:int t参数: 无作用:读温度值*******************************************************/int ReadOneTemperature(void)////////***读取温度值***********///// 每次读写均要先复位{Init_DS18B20();WriteOneChar(0xcc);//发跳过ROM命令WriteOneChar(0x44);//发读开始转换命令Init_DS18B20();WriteOneChar(0xcc);//发跳过ROM命令WriteOneChar(0xbe);//读暂存器,共九位元组,前两位元组为转换值a=ReadOneChar(); //a存低位元组b=ReadOneChar(); //b存高位元组t=b;t<<=8;//高位元组转换为10进制t=t|a;tep=t*0.0625;//转换精度为0.0625/LSBt=tep*10+0.5;//保留1位小数并四捨五入****后面除10还原正确温度值)return(t);}/******************************************************函式名称:uint Temperaturepro(void)返回值:void参数: void作用:温度处理*******************************************************/void Temperaturepro(void){int temp;temp=ReadOneTemperature();tempbuf[3]=temp/1000;//百位tempbuf[2]=temp/100%10;//十位tempbuf[1]=temp%100/10; //个位tempbuf[0]=temp%10; //小数}
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net
搜索
随机推荐

勇敢心资源网|豫ICP备19027550号