1.芯片简介

DS18B20数字温度传感器提供9-Bit到12-Bit的摄氏温度测量精度和一个用户可编程的非易失性且具有过温和低温触发报警的报警功能。DS18B20采用的1-Wire通信即仅采用一个数据线(以及地)与微控制器进行通信。该传感器的温度检测范围为-55℃至+125℃,并且在温度范围超过-10℃至85℃之外时还具有+-0.5℃的精度。此外,DS18B20可以直接由数据线供电而不需要外部电源供电。

主要特点如下

  • 温度可测量范围为:-55℃至+125℃(-67℉至+257℉)。

  • 温度范围超过-10℃至85℃之外时具有+-0.5℃的精度。

  • 内部温度采集精度可以由用户自定义为9-Bits至12-Bits

  • 温度转换时间在转换精度为12-Bits时达到最大值750ms。

DQ引脚为开漏模式,需外置上拉电阻

2.DS18B20引脚定义-以TO-92封装为例

(1)Pin 1:GND 地线

(2)Pin 2:数据输入/输出。1-Wire漏极开路接口引脚。当采用“寄生电源”供电方式时,同时向设备提供电源。所以

在使用时,一般需要加一个5-10k的上拉电阻。

(3)VDD引脚。VDD必须连接到地当采用“寄生电源”供电时。

3.DS18B20驱动程序

(1)DS18B20.h

#ifndef _DS18B20_H_
#define _DS18B20_H_
/*****************************************/
extern void Reset();
extern void WriteChar(uchar dat);
extern uint ReadChar();
extern uint ReadTemperature();
/*****************************************/
#endif

(2)DS18B20.c

#include"reg52.h"
#define uint unsigned int
#define uchar unsigned charuint tempL,tempH;sbit DQ=P2^0;//数据端/**********************************************DS18B20专用延时子函数
**********************************************/
void DDelay(uint t)
{ uint n;n=0; while(n<t) {n++;}
}
/********************************************************* DS18B20复位函数
**********************************************************/
void Reset()
{   DQ=1;DDelay(8); DQ=0; DDelay(85); DQ=1;DDelay(14);}
/*********************************************************** DS18B20写一个字节函数
*********************************************************/
void WriteChar(uchar dat)
{ uint i; for(i=8;i>0;i--) { DQ=0;   DQ=dat&0x01;DDelay(5);DQ=1;dat>>=1;} DDelay(4);
}
/**************************************************** DS18B20读一个字节函数
****************************************************/
uint ReadChar()
{       uchar i,dat=0;for (i=8;i>0;i--) { DQ=0;  dat>>=1;DQ=1; if(DQ)dat=dat|0x80;DDelay(4);}
return(dat);
}
/*************************************************** DS18B20读温度程序
****************************************************/
uint ReadTemperature()
{ uint temperature;Reset(); WriteChar(0xcc); WriteChar(0x44); DDelay(125); Reset();WriteChar(0xcc);WriteChar(0xbe);tempL=ReadChar(); tempH=ReadChar();temperature=((tempH*256)+tempL)*0.0625*10;   DDelay(200);return(temperature); //返回的是0123格式
}

如需资料可在该账号下载频道下载,或关注公众号-单片机实例设计,发送“DS18B20”获取。

DS18B20温度传感器原理及使用教程相关推荐

  1. DS18B20温度传感器原理详解及例程代码、漏极开路

    [常用传感器]DS18B20温度传感器原理详解及例程代码_Z小旋的博客-CSDN博客_ds18b20温度传感器 传感器引脚及原理图 DS18B20传感器的引脚及封装图如下: DS18B20一共有三个引 ...

  2. 51单片机DS18B20温度传感器原理及实验

    目录 DS18B20简介 外部结构 内部结构 数据温度的读取 实验 程序实现 附 DS18B20简介 DS18B20 是由 DALLAS 半导体公司推出的一种的"一线总线(单总线)" ...

  3. 嵌入式设计与开发项目-DS18B20温度传感器程序设计

    嵌入式设计与开发项目-DS18B20温度传感器程序设计 一.实现的功能 二.根据功能实现代码 1.主文件main.c 2.DS18B20的头文件"ds18b20.h" 3.DS18 ...

  4. 智能温度传感器DS18B20的原理与应用

    作者:赵海兰 赵祥伟    文章来源:现代电子技术     摘  要:DS18B20是DALLAS公司生产的单线数字温度传感器,他具有独特的单线总线接口方式.文章详细的介绍了单线数字温度传感器DS18 ...

  5. AutoLeaders控制组——51单片机学习笔记(DS18B20温度传感器、LCD1602、直流电机+PWM)

    本篇内容是观看B站江科大自化协UP主的教学视频所做的笔记,对其中内容有所引用,并结合自己的单片机板块进行了更改调整. 以下笔记内容以一个视频为一个片段(内容较多,可能不适合速食,望见谅) 一些内容涉及 ...

  6. 基于汇编语言的DS18B20温度传感器设计

    1 概述 1.1 课题内容 利用温度传感器DS18B20与MCS-51单片机结合来测量温度,通过一根单总线连接,即可直接读出被测温度,读出或写入信息只需要一根数据线.读出的数据用LED数码管显示,显示 ...

  7. 51单片机使用LCD1602显示DS18B20温度传感器温度

      使用LCD1602显示DS18B20温度传感器温度.关于DS18B20和LCD的原理,我就不再叙述了,大家自行查找,网上可以找到好多.   使用Proteus仿真.(需要仿真和Keil工程文件的可 ...

  8. 智能温度系统(C51+DS18B20温度传感器+LM016L显示屏)

    单片机课程设计,C51+DS18B20温度传感器+LM016L显示屏 重点在于两个外设的时序控制 模块化的设计结构清晰明了 一.题目 温度测量系统的设计 二.要求 1.温度测量范围:-55℃ ~ 12 ...

  9. 【室内温度+树莓派性能监控】树莓派+DS18B20温度传感器+0.96寸OLED显示屏使用及安装经验分享

    以下内容为本人原创 原文链接:https://blog.csdn.net/Yhen1/article/details/113760948 作者:@Yhen 发布网站:CSDN 未经本人同意禁止转载,如 ...

最新文章

  1. TensorFlow学习笔记(十四)TensorFLow 用mnist数据做classification
  2. google浏览器插件 开发 获取页面指定数据_程序员必备的4款Chrome插件,编程神器...
  3. leetcode 5756. 两个数组最小的异或值之和(状态压缩dp)
  4. SQL那些事儿(十三)--Oracle中varchar与varchar2区别
  5. android studio降版本,Mac下Android Studio完美从2.2.2降级到2.1.3正式版方案
  6. Atitit 并发锁机制 艾提拉总结 目录 1. 2. 用的比较频繁锁 2 1.1. 语法锁sync api锁 2 1.2. 数据库标志位锁 2 1.3. 文件锁 2 2. 锁得类型 3 2 2.
  7. python如何转换数据集_将数据集转换为HDF5数据
  8. HeadFirstJava——9_构造器与垃圾收集器
  9. 昆仑通态复制的程序可以用吗_昆仑通态MCGS_G系列触摸屏MQTT数据连接发布
  10. python 处理阻尼正弦
  11. 为什么越来越多的绘图员开始用云渲染来渲图?
  12. python 数列筛选_对numpy中的数组条件筛选功能详解
  13. Unity~ 简单的3D游戏对象动画制作
  14. 如何用adobe audition剪切音频单独导出保存
  15. 5.7.1 使用向导创建交叉表查询
  16. 使用adb备份安卓应用apk文件
  17. 修复win10系统无法开机问题
  18. 生产者消费者ReentrantLock实现以及BlockingQueue实现
  19. Android Q中外部存储盘路径正则表达式的理解
  20. wwwww.wwwwww.wwwww

热门文章

  1. 科学控糖:育润齐梅牌胰力佳奶粉突破控糖新局面!
  2. PHP 模板 smarty 逻辑运算符号
  3. Python groupby 分组 再求平均值 求和 agg聚合 transform不改变形状应用函数
  4. Winform窗口弹出位置设置
  5. Python设计模式之原型模式(4)
  6. uniapp中怎么让天地图的定位图标跟着罗盘数据旋转
  7. DOS-通过shutdown指令实现关机和重启
  8. 响应式pbootcms模板企业通用类网站
  9. VS下opencv里遇到函数无法解析的问题
  10. python pop3_Python使用POP3和SMTP协议收发邮件的示例代码