day07 51单片机-18B20温度检测

这篇具有很好参考价值的文章主要介绍了day07 51单片机-18B20温度检测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

18B20温度检测

1.1 需求描述

本案例讲解如何从18B20传感器获取温度信息并显示在LCD上。

1.2 硬件设计

1.2.1 硬件原理图

day07 51单片机-18B20温度检测,嵌入式学习,51单片机,嵌入式硬件,单片机

1.2.3 18B20工作原理

可以看到18B20有两根引脚负责供电,一根引脚负责数据交换。18B20就是通过数据线和单片机进行数据交换的。

1)18B20工作时序

day07 51单片机-18B20温度检测,嵌入式学习,51单片机,嵌入式硬件,单片机

2)初始化信号

day07 51单片机-18B20温度检测,嵌入式学习,51单片机,嵌入式硬件,单片机

#define DQ P44

/**
 * @brief 初始化方法
 *
 * @return 1代表存在,0代表不存在
 */
static bit Int_DS18B20_Init()
{
   
    bit result;

    // 主机拉低
    DQ = 0;
    Delay60us(8);

    // 主机释放DQ
    DQ = 1;
    Delay60us(1);

    // 查看18B20状态
    result = ~DQ;
    Delay60us(7);

    return result;
}

3)写数据时序

写‘1’时序

day07 51单片机-18B20温度检测,嵌入式学习,51单片机,嵌入式硬件,单片机

写‘0’时序

day07 51单片机-18B20温度检测,嵌入式学习,51单片机,嵌入式硬件,单片机

写字节

day07 51单片机-18B20温度检测,嵌入式学习,51单片机,嵌入式硬件,单片机

让18B20测量温度,并将温度保存在RAM中。

根据说明书第五节“温度测量”,我们需要向18B20发送功能指令0x44,可以触发温度测量动作,根据上面的事件序列,我们可以得知,这一步的通信流程如下:

发送初始化信号。

发送跳过ROM命令的指令(因为我们不需要ROM命令),查询ROM命令列表可得知,我们需要向18B20发送0xCC。

发送温度测量指令,查询功能命令列表可得知,我们需要向18B20发送0x44。

4)读数据时序

day07 51单片机-18B20温度检测,嵌入式学习,51单片机,嵌入式硬件,单片机

day07 51单片机-18B20温度检测,嵌入式学习,51单片机,嵌入式硬件,单片机

5)从18B20中读取刚刚测量的温度。

查询说明书的命令指令可得知,如果我们想读取18B20寄存器,需要向18B20发送功能指令0xBE,再从18B20中连续接收9字节数据。这9字节数据中,只有前两个字节是我们需要的温度数据。所以我们在接收两个字节后,需要再发送一次复位(初始化)信号,打断接下来的数据传输。整个通信流程如下:

 发送初始化信号。

 发送跳过ROM命令的指令0xCC。

 发送读取寄存器的命令0xBE。

 接收两个字节。

 发送初始化信号打断传输。

1.3软件设计

1)Util.h

在Util.h中加入新的延时函数声明。文章来源地址https://www.toymoban.com/news/detail-855789.html

/**

到了这里,关于day07 51单片机-18B20温度检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 51单片机读取DS18B20温度传感器

    1 .首先我们知道DS18B20是 单总线协议 ,只有一根数据线。所以Data数据线即使发送端又是接收端,同时DS18B20内部接了弱上拉电阻(如图一所示),数据线默认为高电平。有了这些概念,我们就能进行下一步。                                                图一 (截取

    2024年02月08日
    浏览(41)
  • 51单片机(十三)DS18B20温度传感器

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月11日
    浏览(44)
  • MCU-51:单片机DS18B20温度报警器

    DS18B20是一种常见的数字温度传感器,其控制命令和数据都是以数字信号的方式输入输出,相比较于模拟温度传感器,具有功能强大、硬件简单、易扩展、抗干扰性强等特点 测温范围:-55°C 到 +125°C 通信接口:1-Wire(单总线) 其它特征:可形成总线结构、内置温度报警功能、

    2024年02月02日
    浏览(55)
  • STC51单片机学习9--DS18B20温度传感器

    DS18B20是Dallas半导体公司的一款数字温度传感器芯片; DS18B20是一款支持 1-wire总线接口的温度传感器; DS18B20能测量的温度范围-55℃--125℃,精度是±0.5℃; DS18B20可以将分辨率设定为9到12位; DS18B20的工作电压范围3--5.5V 单片机的P4.1引脚用来接DS18B20的数据引脚 以下是友台半导体

    2024年02月12日
    浏览(54)
  • 【小实验】C51单片机 DS18B20温度显示实验

         利用单总线技术和数码管动态显示的原理,要求实现DS18B20温度采集并显示,能够设定温度值上限值27.5度,当超出上限值LED灯闪烁。    实验前可先用protues绘制出原理图:   代码仅供参考,希望大家能够在此基础上优化代码,而不是ctrl+c,ctrl+v。 谢谢!!!        

    2024年02月12日
    浏览(44)
  • 基于51单片机数字温度报警器_DS18B20可调上下限

    (仿真+程序+原理图) 原理图:Altium Designer 仿真版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0009 1、实时温度测量及显示,超出温度范围声光报警,上下限温度可通过按键设定等功能; 2、温度测量范围0到99.9摄氏度,精度为0.1摄氏度; 3、可设置上下

    2024年02月06日
    浏览(49)
  • 基于51单片机的DS18B20温度控制加热降温系统设计

    仿真图:proteus8.9以上 程序代码:KEIL4/KEIL5 原理图:AD 设计编号:A0007 结合实际情况,基于51单片机设计一个排队叫号系统设计。该系统应满足的功能要求为: 系统由51单片机、DS18B20温度传感器、LCD1602液晶显示屏、继电器、风扇、加热膜、按键、蜂鸣器组成。 可实现以下基本功能

    2023年04月09日
    浏览(79)
  • 51单片机DS18B20温度报警器proteus仿真设计_可调上下限

    (仿真+源码+原理图+报告+讲解视频) 原理图:Altium Designer 仿真版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0008 本设计系统是18b20温度报警系统数码管显示,可设置温度上限高温报警和下限低温报警,报警温度可精确到0.1度,并具有掉电保存功能,数

    2024年02月11日
    浏览(44)
  • 51单片机DS18B20温度传感器使用及数码管温度计、LCD1602温度显示代码详解

    温馨提示:读者若要彻底理解并会灵活使用DS18B20温度传感器,请详细阅读中文手册,并且对照代码注释充分分析代码。请不要觉得中文手册内容繁多!如能静心分析,定能深有体会,获益匪浅! 主函数操作顺序(执行序列) 功能指令 最后希望我的分享对你有所帮助!敬请关

    2024年02月12日
    浏览(53)
  • 单片机学习笔记---DS18B20温度读取

    目录 OneWire.c 模拟初始化的时序 模拟发送一位的时序  模拟接收一位的时序 模拟发送一个字节的时序 模拟接收一个字节的时序 OneWire.h DS18B20.c DS18B20数据帧 模拟温度变换的数据帧 模拟温度读取的数据帧 DS18B20.h main.c 上一篇讲了DS18B20温度传感器的工作原理,这节开始代码演示

    2024年02月20日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包