DS18B20温度传感器

  • 复位

    时序图如下所示:低电平持续时间为480-960us,高电平持续时间为15-60us,然后低电平持续60-240us。

代码如下:

void ds18b20_rst(void)
{IO_OUT;                //输出模式DQ_OUT=0;              //拉低DQ引脚delay_us(600);         //延时480-960usDQ_OUT=1;              //拉高DQ引脚while(DQ_OUT);         //等待器件应答(器件拉低),约15-60us后while(!DQ_OUT);        //应答脉冲出现后,等待器件拉高,约60-240us后
}
  • 写0操作

    时序图如下所示:

代码如下:

void ds18b20_write_zero(void)
{IO_OUT;                    //输出模式DQ_OUT=0                   //拉低引脚delay_us(80);              //延时60-120usDQ_OUT=1;                  //拉高引脚delay_us(2);
}
  • 写1操作

代码如下:

void ds18b20_write_one(void)
{IO_OUT;                           //输出模式DQ_OUT=0delay_us(2);DQ_OUT=1;delay_us(80);
}
  • 读0、1操作

代码如下:

unsigned char ds18b20_read_bit(void)
{unsigned char data;IO_OUT;DQ_OUT=0;delay_us(2);DQ_OUT=1;DQ_IN;delay_us(2);if(DQ_IN)data=1;elsedata=0;delay_us(500);  return data;
}
  • 写1字节

代码如下:

void ds18b20_write_byte(unsigned char data)
{unsigned char i,testb;IO_OUT;for(i=0;i<8;i++){testb=data&0x01;                 //从低位开始写data>>=1;if(testb)ds18b20_write_one();elseds18b20_write_zero();}
}
  • 读一字节

代码如下:

unsigned char ds18b20_read_byte(void)
{unsigned char i,j,data=0;for(i=0;i<8;i++){j=ds18b20_read_bit();data=(j<<7)|(data>>1);      //从低位开始读}return data;
}
  • 开始读取数据

代码如下:

void ds18b20_start(void)
{                                                                  ds18b20_rst();              ds18b20_write_byte(0xcc);   // 跳过ROMds18b20_write_byte(0x44);   //温度转换
}
  • 初始化

代码如下:

unsigned char ds18b20_init(void)
{gpio_init();     //此引脚需根据相应的单片机进行配置ds18b20_rst();
}
  • .读取温度

代码如下:

short get_tempetature(void)
{unsigned char TL,TH;short tem;ds18b20_start();           //开始转换delay_ms(700);             //等待转换完成ds18b20_init();    ds18b20_write_byte(0xcc);   //跳过ROMds18b20_write_byte(0xbe);   //读取暂存寄存器    TL=ds18b20_read_byte();     //低八位 TH=ds18b20_read_Byte();     //高八位,注意前五位为符号位只有全为0的时候温度是正的     tem=TH;                      //获得高八位tem<<=8;   tem+=TL;                     //获得底八位return tem;
}

DS18B20温度传感器随笔相关推荐

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

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

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

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

  3. 【51单片机】AT24C02存储器(I²C总线)/DS18B20温度传感器(单总线)

    目录 一.AT24C02存储器 1.AT24C02存储器介绍 2.存储器简化模型 3.AT24C02存储器原理图 二.I²C总线 1.I²C总线的介绍 2.I²C电路 3.I²C时序图 3.1I²C开 ...

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

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

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

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

  6. C51---13 DS18B20温度传感器

    C51---13 DS18B20温度传感器 DS18B20介绍 引脚及电路 内部结构图 存储器的结构 单总线介绍 单总线电路规范 单总线时序结构❗ DS18B20操作流程 DS18B20数据帧 温度存 ...

  7. DS18B20温度传感器 ------ 自学笔记

    目录 一.简介 二.DS18B20的特点 三.DS18B20实物图 四.DS18B20的内部结构 4.1.64位(激)光刻只读存储器 4.2.DS18B20温度转换规则 4.3.DS18B20温度传感 ...

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

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

  9. 51单片机驱动DS18B20温度传感器测量温度

    51单片机驱动DS18B20温度传感器测量温度 1.DS18B20温度传感器介绍: 2.51单片机驱动DS18B20测量温度 1.DS18B20温度传感器介绍: ①引脚定义 引脚 符号 说明 1 GN ...

最新文章

  1. C语言水洼数算法,C++ 数据结构之水洼的数量算法
  2. Python命令行解析:IDE内点击Run运行代码直接得出结果、基于TF flags(或argparse、sys.argv)在Dos内命令行(一条命令)调用代码文件得出结果
  3. MongoDB基础命令
  4. 如何把自己的网站部署在网上_Terminal:如何在IPFS上部署Wordpress网站
  5. [FxCop.设计规则]13. 定义自定义属性参数的访问属性
  6. mybatis简单案例源码详细【注释全面】——实体层(User.java)
  7. 让代码看起来更舒服(1):选择适合的配色方案 (转)
  8. 《数学之美》一 文字、数字及语言的历史
  9. 基于pycrfsuite和sklearn_crfsuite的命名实体识别NER实战【以CoNLL2002数据集为基准】
  10. 经典而常用的配乐和背景音乐合集(上)
  11. 字符识别,口算题识别论文小梗概
  12. python批量转换音频采样率
  13. 近年来计算机的就业情况图表,计算机学院召开2009级学生考研动员大会
  14. 数据结构(Java)-排序算法-选择排序
  15. 微信小程序,将经纬度转化为城市地区(腾讯位置服务)
  16. 重复率30%可以通过论文查重吗?
  17. android之手机截屏小程序
  18. 懒汉延迟加载设计模式反射注解
  19. 不等距双杆模型_电磁感应之双杆模型.ppt
  20. Python3记录--个人常用函数及资源(持续更新)

热门文章

  1. ChatGPT的1000+篇文章总结
  2. 机器学习实战课后习题(八)
  3. 2011年的工作总结
  4. 如何做好详细方案设计?
  5. OpenSSL-3.0.3编程—采用EVP方式计算数据摘要
  6. 基于BC95的数据转发,利用Python实现UDP接收数据,TCP转发数据
  7. Scratch(七):圣诞节快乐!
  8. TALIB 中文文档 Momentum Indicator Functions 动量指标函数
  9. 避障小车的原理和代码实现
  10. python爬取物流信息_python爬虫快递查询系统(源码)