DS18B20

DS18B20 是单线接口数字温度传感器,测量范围是-55℃~+125℃,-10℃~+85℃范围内精
度是±0.5℃,测量分辨率为 9~12 位(复位值为 12 位,最大转换时间为 750ms)。
DS18B20 包括寄生电源电路、 64 位 ROM 和单线接口电路、暂存器、 EEPROM、 8 位 CRC 生
成器和温度传感器等。寄生电源电路可以实现外部电源供电和单线寄生供电, 64 位 ROM 中存放
的 48 位序列号用于识别同一单线上连接的多个 DS18B20,以实现多点测温。
64 位 ROM 代码的格式为:
8 位 CRC 校验码 + 48 位序列号 + 8 位系列码(0x28)
其中 8 位 CRC 校验码是 48 位序列号和 8 位系列码的 CRC 校验码

代码

官方文件
onewire.c

#include "onewire.h"//单总线内部延时函数
void Delay_OneWire(unsigned int t)
{while(t--);
}//单总线写操作
void Write_DS18B20(unsigned char dat)
{unsigned char i;for(i=0;i<8;i++){DQ = 0;DQ = dat&0x01;Delay_OneWire(5);DQ = 1;dat >>= 1;}Delay_OneWire(5);
}//单总线读操作
unsigned char Read_DS18B20(void)
{unsigned char i;unsigned char dat;for(i=0;i<8;i++){DQ = 0;dat >>= 1;DQ = 1;if(DQ){dat |= 0x80;}        Delay_OneWire(5);}return dat;
}//DS18B20初始化
bit init_ds18b20(void)
{bit initflag = 0;DQ = 1;Delay_OneWire(12);DQ = 0;Delay_OneWire(80);DQ = 1;Delay_OneWire(10); initflag = DQ;     Delay_OneWire(5);return initflag;
}

onewire.h

#ifndef __ONEWIRE_H__
#define __ONEWIRE_H__#include "reg52.h"
#include "intrins.h"sbit DQ = P1^4;  //单总线接口unsigned char Read_DS18B20(void);
bit init_ds18b20(void);
void Write_DS18B20(unsigned char dat);
unsigned int temper_change(void);#endif

需要自己写一个温度读取函数

//读取温度的集体操作
unsigned int temper_change(void)
{u8 a,b;         u16 t=0;init_ds18b20();       Delay_OneWire(15);Write_DS18B20(0xcc);   //跳过ROM操作命令Write_DS18B20(0x44);     //发送启动温度转换命令Delay_OneWire(250);init_ds18b20(); Delay_OneWire(15);Write_DS18B20(0xcc);   //跳过ROM操作命令Write_DS18B20(0xbe);     //发送启动温度转换命令a=Read_DS18B20();    //先读低八位b=Read_DS18B20();      //再读高八位t=b<<8;      //左移八位t=t|a;      //t为16位的数,使高八位为b的值,低八位为a的值  t *= 0.0625*100;return t;    //返回温度值
}

在读取温度时需要将中断关闭,读取完毕再打开

EA = 0;
temper_v = temper_change();
EA = 1;

51单片机DS18B20温度传感器相关推荐

  1. 51单片机~DS18B20温度传感器

    51单片机~DS18B20温度传感器 (一)简介说明: (二)接线: 1. 内部结构: 正温度前五位是0. 负温度前五位是1. 由LS,MS组成的四位十六进制数,和16位二进制数.(先MS后LS) 结 ...

  2. 51单片机DS18B20温度传感器及数码管显示温度

    51单片机DS18B20温度传感器及数码管显示温度 大家好,今天给大家带来的代码及原理解释是,在51单片机在接收DS18B20温度传感器数据,并且在数码管上实时显示温度 DS18B20及数码管显示温度 ...

  3. 51单片机 | DS18B20 温度传感器实验

    文章目录 一.DS18B20介绍 二.硬件设计 三.软件设计 1.数码管显示函数 2.DS18B20 初始化函数及温度读取函数 4.主函数 四.实验现象   这一节我们来学习精度较高的外部 DS18B ...

  4. 51单片机DS18B20温度传感器使用及数码管温度计、LCD1602温度显示代码详解

    温馨提示:读者若要彻底理解并会灵活使用DS18B20温度传感器,请详细阅读中文手册,并且对照代码注释充分分析代码.请不要觉得中文手册内容繁多!如能静心分析,定能深有体会,获益匪浅! 一.DS18B20 ...

  5. 4.5 51单片机-DS18B20温度传感器

    4.5 DS18B20温度传感器 4.5.1 原理图介绍 图4-5-1 图4-5-2 实验板上的DS18B20模块接在单片机的P3.5 IO口上,在插入DS18B20芯片时,圆弧朝上插入,具体效果可以 ...

  6. 51单片机DS18B20温度传感器详解

    DS18B20是一种单总线数字温度传感器,测试温度范围-55℃-125℃,具有体积小,硬件开销低,抗干扰能力强,精度高的特点.单总线,意味着没有时钟线,只有一根通信线.单总线读写数据是靠控制起始时间和 ...

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

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

  8. 51单片机——DS18B20温度传感器

    目录 DS18B20特性 内部存储器表 ROM指令表 RAM指令表 DS18B20暂存器表 单个DS18B20温度转换过程 温度读取及计算 配置寄存器(分辨率) 读写时序 复位及存在检测 写时序 读时 ...

  9. 51单片机+DS18B20+数码管显示+串口通讯+Proteus仿真

    51单片机+DS18B20+数码管显示+串口通讯+Proteus仿真 本实验通过51单片机读取DS18B20温度传感器的温度,然后通过数码管显示,并通过串口,将读取到的温度数据发送出去. 本案例需要使 ...

最新文章

  1. Mysql中使用命令行导入.sql文件新建数据库表(图文)
  2. CodeForces - 346A Alice and Bob(数论+博弈)
  3. unity透明通道加颜色_Unity-雪地效果的实现
  4. Redis 3.0.1 安装和配置
  5. centos mysql自动补全_MyCLI :一个支持自动补全和语法高亮的 MySQL/MariaDB 客户端
  6. 大数据平台在分布式服务中的应用
  7. python——画伪彩图、设置彩色图例
  8. Spring boot(三):Web 进阶
  9. Javaweb的初级(Servlet接口)
  10. 年轻人先实现社会价值,再去实现人生价值
  11. 利用MSXSL.exe绕过AppLocker应用程序控制策略
  12. iOS keyChain 研究
  13. 充电站网络安全风险危及电动汽车普及
  14. zblog 全站ajax,ZBlog全站缓存
  15. β-环糊精衍生物接枝羟丙基壳聚糖水凝胶/羧基改性壳聚糖固载环糊精水凝胶微球的制备
  16. StarUML 3.2.2
  17. 上汽集团、张江高科和阿里巴巴集团联合打造智己汽车
  18. 滴滴java开发面经,滴滴三面面经JAVA面经
  19. Python|计蒜客——X的平方根
  20. __unsafe_unretained的使用

热门文章

  1. pdf.js在线预览ppt SaveAs : PowerPoint 无法将 ^0 保存到 ^1
  2. FFT+相位差分测频
  3. Unity-iPhone has conflicting provisioning settings.
  4. 超级计算机 更深的蓝 是什么,计算机“更深的蓝”具有智能吗
  5. 国内生物医学工程届著名学者
  6. Simulink信号源及信号处理
  7. SAP ABAP CO核心扩展-为企业定制ZCKM3N物料价格分析增强(CKM3 CKM3N CKM8N)
  8. 濉溪海潮计算机学校校长是谁,“青春,谢谢你,再见!”——濉溪中学隆重举行2020届毕业典礼...
  9. 爱贝壳 教研云 动画执行流程和实现猜测
  10. 【0064】 PostgreSQL报错提示:Is the PostgreSQL Server Running Locally and Accepting?