DS18B20使用方法
DS18B20数据手册-中文版

DS18B20数据手册-中文版DS18B20 分辨率可编程概述1-Wire数字温度传感器 DS18B20数字温度传感器提供9-Bit到12-Bit的摄氏温度测量精度和一个用户可编程? 温度转换时间在转换精度为12-Bits时达到的非易失性且具有过温和低温触发报警的报警最大值750ms。
功能。
DS18B20采用的1-Wire通信即仅采用一? 用户自定义非易失性的的温度报警设置。
个数据线(以及地)与微控制器进行通信。
该? 定义了温度报警搜索命令和当温度超过用户传感器的温度检测范围为-55?至+125?,并且自定义的设定值时。
在温度范围超过-10?至85?之外时还具有? 可选择的8-Pin SO (150 mils), 8-PinμSOP,+-0.5?的精度。
此外,DS18B20可以直接由数及3-Pin TO-92封装。
据线供电而不需要外部电源供电。
? 与DS1822程序兼容。
每片DS18B20都有一个独一无二的64位? 应用于温度控制系统,工业系统,民用产品,序列号,所以一个1-Wire总线上可连接多个温度传感器,或者任何温度检测系统中。
DS18B20设备。
因此,在一个分布式的大环境管脚定义图里用一个微控制器控制多个DS18B20是非常简单的。
这些特征使得其在HVAC环境控制,在建筑、设备及机械的温度监控系统,以及温度过程控制系统中有着很大的优势。
特性独特的1-Wire总线接口仅需要一个管脚来通信。
每个设备的内部ROM上都烧写了一个独一无二的64位序列号。
多路采集能力使得分布式温度采集应用更加简单。
无需外围元件。
能够采用数据线供电;供电范围为3.0V至5.5V。
温度可测量范围为:-55?至+125?(-67?至+257?)。
温度范围超过-10?至85?之外时具有+-0.5?的精度。
内部温度采集精度可以由用户自定义为9-Bits至12-Bits。
DS18B20订购信息零件温度范围引脚数-封装顶部标号DS18B20 3 TO-92 18B20 -55?至+125?DS18B20+ 3 TO-92 18B20 -55?至+125?DS18B20/T&R 18B20 -55?至+125? 3 TO-92(2000片)DS18B20+T&R 18B20 -55?至+125? 3 TO-92(2000片)DS18B20-SL/T&R 18B20 -55?至+125? 3 TO-92(2000片)* DS18B20-SL+T&R 18B20 -55?至+125? 3 TO-92(2000片)* DS18B20U 8 uSOP 18B20 -55?至+125?DS18B20U+ 8 uSOP 18B20 -55?至+125?DS18B20U/T&R 18B20 -55?至+125? 8 uSOP(3000片)DS18B20+T&R 18B20 -55?至+125? 8 uSOP(3000片)DS18B20Z 8 SO DS18B20 -55?至+125?DS18B20Z+ 8 SO DS18B20 -55?至+125?DS18B20Z/T&R DS18B20 -55?至+125? 8 SO(2500片)DS18B20Z+T&R DS18B20 -55?至+125? 8 SO(2500片)“+”号表示的是无铅封装。
ds18b20 非阻塞写法

ds18b20 非阻塞写法
DS18B20是一种数字温度传感器,它可以通过一种非阻塞的方
式进行读取。
非阻塞写法通常指的是一种编程技术,可以在不阻塞
程序执行的情况下进行数据读取或写入操作。
在使用DS18B20传感
器时,非阻塞写法可以提高程序的响应速度和效率。
在Arduino或其他类似的嵌入式系统中,可以使用以下步骤实
现DS18B20的非阻塞读取:
1. 初始化DS18B20传感器,首先,需要初始化DS18B20传感器,包括设置引脚和其他相关参数。
2. 发送读取命令,使用非阻塞的方式发送读取温度的命令到
DS18B20传感器。
3. 检查读取状态,在非阻塞的情况下,可以通过轮询的方式检
查DS18B20传感器的读取状态,以确定是否已经完成读取操作。
4. 读取温度数据,当DS18B20传感器完成温度数据的读取时,
可以通过非阻塞的方式获取温度数据。
5. 处理温度数据,最后,可以对获取的温度数据进行进一步处
理或应用,比如进行温度转换或者在程序中使用这些数据。
使用非阻塞的方式读取DS18B20传感器的温度数据可以确保程
序在等待传感器响应的同时可以执行其他任务,提高了程序的并发
性和效率。
同时,需要注意在编程中合理处理读取状态和错误处理,以确保数据的准确性和程序的稳定性。
总的来说,采用非阻塞的方式读取DS18B20传感器的温度数据
可以提高程序的效率和响应速度,适用于需要同时处理多个任务的
嵌入式系统和应用场景。
DS18B20温度传感器使用方法以及代码

第7章DS18B20温度传感器温度传感器概述温度传感器是各种传感器中最常用的一种,早起使用的是模拟温度传感器,如热敏电阻,随着环境温度的变化,它的阻值也发生线性变化,用处理器采集电阻两端的电压,然后根据某个公式就可以计算出当前环境温度。
随着科技的进步,现代的温度传感器已经走向数字化,外形小,接口简单,广泛应用在生产实践的各个领域,为我们的生活提供便利。
随着现代仪器的发展,微型化、集成化、数字化、正成为传感器发展的一个重要方向。
美国DALLS半导体公司推出的数字化温度传感器DS18B20采用单总线协议,即单片机接口仅需占用一个I/O端口,无需任何外部元件,直接将环境温度转化为数字信号,以数码方式串行输出,从而大大简化了传感器与微处理器的接口。
DS18B20温度传感器介绍DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。
与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
可以分别在 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。
因而使用DS18B20可使系统结构更趋简单,可靠性更高。
他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。
1.DS18B20温度传感器的特性①独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
②在使用中不需要任何外围元件。
③可用数据线供电,电压范围:+~ + V。
④测温范围:-55 ~+125 ℃。
固有测温分辨率为℃。
⑤通过编程可实现9~12位的数字读数方式。
⑥用户可自设定非易失性的报警上下限值。
DS18B20数字温度传感器应用详解

DS18B20数字温度传感器应用详解电路图参考图:在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。
另外一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。
因此,在温度测量系统中,采用抗干扰能力强的新型数字温度传感器是解决这些问题的最有效方案,新型数字温度传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。
新的"一线器件"DS18B20体积更小、适用电压更宽、更经济。
美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持 "一线总线"接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。
全部传感元件及转换电路集成在形如一只三极管的集成电路内。
一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
现在,新一代的DS18B20体积更小、更经济、更灵活。
使你可以充分发挥“一线总线”的优点。
目前DS18B20批量采购价格仅10元左右。
DS18B20、DS1822 "一线总线"数字化温度传感器同DS1820一样,DS18B20也支持"一线总线"接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。
DS1822的精度较差为±2°C。
现场温度直接以"一线总线"的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。
与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。
DS18B20中文手册

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温度传感器使用手册一、传感器实物图二、引脚说明(1)1 VCC 3.0~5.5V/DC 3 GND42 DQ 数字信号输入/输出端(2)1 5 GND2 63 VCC 3.0~5.5V/DC 74 DQ 数字信号输入/输出8端三、软件设计功能说明:ds18b20采集温度并显示在1602液晶上#include <reg52.h>#include <stdio.h>#define uchar unsigned char#define uint unsigned intsbit 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; //写0i=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);}}。
最新DS18B20使用教程教学讲义PPT

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微 秒做出响应存在脉冲,告诉主机本器件已做好准备。若没有检测到就一直在检测等待。
温度的低八位数据 温度的高八位数据 高温阀值 低温阀值 保留 保留 计数剩余值 每度计数值 CRC 校验
0 1 2 3 4 5 6 7 8
DS18B20的工作时序
DS18B20的一线工作协议流程是:
初始化→ROM操作指令→存储器操作指令→数据传输。
其工作时序包括:
初始化时序
写时序
读时序
初始化时序
对于读数据操作时序也分为读0时序和读1时序两个过程。读时隙是从主机把单总线拉 低之后,在1微秒之后就得释放单总线为高电平,以让DS18B20把数据传输到单总 线上。DS18B20在检测到总线被拉低1微秒后,便开始送出数据,若是要送出0就把 总线拉为低电平直到读周期结束。若要送出1则释放总线为高电平。主机在一开始 拉低总线1微秒后释放总线,然后在包括前面的拉低总线电平1微秒在内的15微秒时 间内完成对总线进行采样检测,采样期内总线为低电平则确认为0。采样期内总线 为高电平则确认为1。完成一个读时序过程,至少需要60us才能完成
温度传感器DS18B20的应用

被拉低, 在之后的15 μs内必须释放单总线。
4. DS18B20 初始化。
void init_18b20( uchar channel)
{
DDRC |=BIT( channel) ;
/ /口位变成输出
PORTC &=~BIT( channel) ;
/ /输出为零, 拉低
总线
delayus( 250) ;
很多智能化的温度传感器使用同步串行总线技 术 , 如 : Microwire /Plus ( NSC) 等 均 采 用 串 行 总 线 协 议, 而DS18B20采用的是1-Wire总线协议。1-Wire是 DALLAS公司的一项专有技术, 它采用一根信号线实 现信号的双向传输, 接口简单、节省I /O口线、便于扩 展和维护。
PORTC |=BIT( channel) ; / /口位为高电平
DDRC |=BIT( channel) ; / /口位变成输出
}
5.写 DS18B20。
void write_18b20( uchar wr_data, uchar sensor_channel)
{
static uchar m;
for( m=0; m<=7; m++)
图6 温度监测系统硬件结构图
使 用 方 便 的 一 线 数 字 式 温 度 传 感 器DS18B20, 全天候不间断地采集屯积物内部多层的现场环境温 度, 并将环境温度由INTERNET或LAN实时传送到异 地。DS18B20铺设方便、结构简单、监测准确、成本低 廉, 成功而有效地成为温度传感器的更新换代产品。 〔作者通联: 河南省工业学校 450002〕
1.DS18B20 的复位时序。
图2 DS 18B20复位时序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
初始化时序
初始化时序图
读、写时序
写时序图
读、写时序
读时序图
单总线器件
通常把挂在单总线上的器件称为单总线器件,单总线器 件内一般都具有控制、收/发、存储等电路。为了区分不 同的单总线器件,厂家生产单总线器件时都要刻录一个 64位的二进制ROM代码,以标志其ID号。目前,单总线 器件主要有数字温度传感器(如DS18B20)、A/D转换 器(如DS2450)、门标、身份识别器(如DS1990A)、 单总线控制器(如DS1WM)等。
数字化温度传感器DS18B20
美国DALLAS半导体公司的数字化温度传感器DS18B20是世界上第一片支 持“一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用 户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新 一代的DS18B20体积更小、更经济、更灵活。DS18B20测量温度范围为 55℃~+125℃。在10℃~+85℃范围内,精度为0.5℃。现场温度直接 以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
DS18B理框图如图所示: DS18B20测温原理框图
图中低温度系数晶振的振荡频率受温度影响很小, 用于产生固定频率的脉冲信号送给计数器1。高温 度系数晶振随温度变化其振荡频率明显改变,所产 生的信号作为计数器2的脉冲输入。计数器1和温度 寄存器被预置在55℃所对应的一个基数值。计数 器1对低温度系数晶振产生的脉冲信号进行减法计 数,当计数器1的预置值减到0时,温度寄存器的值 将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数, 如此循环直到计数器2计数到0时,停止温度寄存器 值的累加,此时温度寄存器中的数值即为所测温度。 斜率累加器用于补偿和修正测温过程中的非线性, 其输出用于修正计数器1的预置值。
串行单总线原理与应用 • 串行单总线概述 • 数字化温度传感器DS18B20 • DS18B20的温度采集程序 • 实践与思考
串行单总线概述
单总线适用于单主机系统,能够控制一个或多个从机设备。主机可以是微控制 器,从机可以是单总线器件,它们之间的数据交换只通过一条信号线。当只有 一个从机设备时,系统可按单节点系统操作;当有多个从设备时,系统则按多 节点系统操作。
DS18B20的主要特性 DS18B20的外形和内部结构 DS18B20工作原理 DS18B20的4个主要数据部件
高速暂存存储器 指令表 DS18B20的应用电路 DS18B20使用中注意事项
DS18B20的主要特性
(1)适应电压范围更宽,电压范围:3~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)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
单总线的时序
One-Wire协议定义了复位脉冲、应答脉冲、写0、读0和读1时序等几种 信号类型。所有的单总线命令序列(初始化,ROM命令,功能命令) 都是由这些基本的信号类型组成的。在这些信号中,除了应答脉冲外, 其他均由主机发出同步信号,并且发送的所有命令和数据都是字节的低 位在前。
• 初始化时序
DS18B20的外形和内部结构
DS18B20内部结构主要由4部分组成:64位光刻ROM、温度传感器、非挥发的 温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排列如图所示。
DS18B20引脚定义如下: (1)DQ为数字信号输入/输出端。 (2)GND为电源地。 (3)VDD为外接供电电源输入端 (在寄生电源接线方式时接地)。
数字化温度传感器DS18B20
One-Wire总线(单总线)
One-Wire总线是DALLAS公司研制开发的一种协议。它由一个总线主 节点、一个或多个从节点组成系统,通过一根信号线对从芯片进行数 据的读取。每一个符合 One-Wire协议的从芯片都有一个唯一的地址, 包括48位的序列号、8位的家族代码和8位的CRC代码。主芯片对各个 从芯片的寻址依据这64位的不同来进行。One-Wire总线利用一根线实 现双向通信。因此其协议对时序的要求较严格,如应答等时序都有明 确的时间要求。基本的时序包括复位及应答时序、写一位时序、读一 位时序。 在复位及应答时序中,主器件发出复位信号后,要求从器件 在规定的时间内送回应答信号;在位读和位写时序中,主器件要在规 定的时间内读回或写出数据。
• 单总线的工作原理
• 单总线的时序
• 单总线器件
单总线的工作原理
单总线即只有一根数据线,系统中的数据交换、控制都由这根线完成。 设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,以 允许设备在不发送数据时能够释放总线,而让其他设备使用总线。单 总线通常要求外接一个约为4.7k的上拉电阻,这样,当总线闲置时, 其状态为高电平。主机和从机之间的通信可通过3个步骤完成,分别 为初始化One-Wire器件、识别One-Wire器件和交换数据。由于它们 是主从结构,只有主机呼叫从机时,从机才能应答,因此主机访问 One-Wire器件都必须严格遵循单总线命令序列,即初始化、ROM命 令、功能命令。如果出现序列混乱,One-Wire器件将不响应主机(搜 索ROM命令、报警搜索命令除外)。