登录/注册

ds18b20程序

更多

以下是一个用于读取DS18B20温度传感器的中文程序示例(基于STM32和HAL库),包含关键步骤说明:

核心步骤

  1. 单总线初始化

    void DS18B20_Init(void) {
    HAL_GPIO_WritePin(DS18B20_PORT, DS18B20_PIN, 0);  // 拉低总线
    HAL_Delay(480);                                   // 保持480us以上
    HAL_GPIO_WritePin(DS18B20_PORT, DS18B20_PIN, 1);  // 释放总线
    HAL_Delay(80);                                    // 等待存在脉冲
    }
  2. 写一位数据

    void DS18B20_WriteBit(uint8_t bit) {
    HAL_GPIO_WritePin(DS18B20_PORT, DS18B20_PIN, 0);
    HAL_Delay(bit ? 1 : 50);   // 写1:拉低1us后释放;写0:保持60us
    HAL_GPIO_WritePin(DS18B20_PORT, DS18B20_PIN, 1);
    HAL_Delay(bit ? 50 : 1);   // 恢复时间
    }
  3. 读一位数据

    uint8_t DS18B20_ReadBit(void) {
    uint8_t bit = 0;
    HAL_GPIO_WritePin(DS18B20_PORT, DS18B20_PIN, 0);
    HAL_Delay(2);  // 拉低2us后释放
    HAL_GPIO_WritePin(DS18B20_PORT, DS18B20_PIN, 1);
    HAL_Delay(10); // 等待10us读取电平
    bit = HAL_GPIO_ReadPin(DS18B20_PORT, DS18B20_PIN);
    HAL_Delay(50); // 恢复时间
    return bit;
    }
  4. 读取温度主函数

    float DS18B20_GetTemp(void) {
    uint8_t tempL = 0, tempH = 0;
    uint16_t temp = 0;
    
    DS18B20_Init();
    DS18B20_WriteByte(0xCC);  // 跳过ROM
    DS18B20_WriteByte(0x44);  // 启动转换
    HAL_Delay(750);            // 等待转换完成
    
    DS18B20_Init();
    DS18B20_WriteByte(0xCC);  
    DS18B20_WriteByte(0xBE);  // 读暂存器
    
    tempL = DS18B20_ReadByte();  // 温度低字节
    tempH = DS18B20_ReadByte();  // 温度高字节
    
    temp = (tempH << 8) | tempL; // 合成16位温度值
    return temp / 16.0;          // 转换为浮点温度
    }

关键说明

  1. 电气连接

    • 数据线需接4.7KΩ上拉电阻
    • VDD接3.3V/5V,GND接地
  2. 精度说明

    • 默认12位精度(最大750ms转换时间)
    • 温度格式:16位补码(bit15为符号位)
    • 转换公式:温度 = 原始值 × 0.0625
  3. 调试技巧

    • 确保精确的us级延时
    • 使用逻辑分析仪捕获单总线时序
    • 检查VDD电压(低于3V可能工作不稳定)

注意:以上代码中的延时需要根据主频调整,实际使用时建议用定时器实现精确延时。完整实现需要补充DS18B20_WriteByte()DS18B20_ReadByte()函数(基于位操作逐字节读写)。

基于DS18B20的多点测温方案详解

DS18B20 单线数字温度传感器,多个 DS18B20 可以并联在惟一的单线上,实现多点测温。具体方案主要是以下步骤:

2023-09-15 16:23:09

DS18B20 数字温度计特点

一.DS18B20特点 DS18B20 数字温度计提供12位(二进制)温度读数的数字型传感器。传感器仅需要单总线接口与CPU连接,实现信号送入 DS18B20

2023-09-11 11:19:55

DS18B20 DS18B20 - (Maxim Integrated) - 温度传感器 - 模拟和数字输出

电子发烧友网为你提供()DS18B20相关产品参数、数据手册,更有DS18B20的引脚图、接线图、封装手册、中文资料、英文资料,DS18B20真

2022-11-02 08:23:05

ds18b20数字温度计程序

ds18b20数字温度计程序

资料下载 captain3_lee 2022-03-11 15:29:38

DS18B20驱动根据数据手册编写

DS18B20驱动根据数据手册编写#include&lt;reg51.h&gt;sbit ds18b20=P1^4;void delay_ds

资料下载 佚名 2021-11-21 12:06:07

单片机的ds18b20程序

ds18b20对时序要求很高,所以一定要注意延时下面是32单片机的程序//复位DS18B20void

资料下载 吴湛 2021-11-18 12:36:02

DS18B20温度传感器的使用程序和仿真电路图免费下载

本文档的主要内容详细介绍的是DS18B20温度传感器的使用程序和仿真电路图免费下载。

资料下载 佚名 2020-06-30 17:34:27

使用1602LCD显示DS18B20数字温度传感器的温度值程序免费下载

本文档的主要内容详细介绍的是使用1602LCD显示DS18B20数字温度传感器的温度值程序免费下载。关于DS18B20电子温度器件可查看单片机练

资料下载 佚名 2019-09-20 17:19:00

基于DS18B20和LabVIEW的多点温度测量系统

今天我们一起完成一个比较完整的作品,基于DS18B20和LabVIEW的多点温度测量系统。我重点介绍实现多点DS18B20温度驱动模块的思路,具体实现大家可以阅读源码。驱动源码参考了不少资料,在此感谢那些乐于分享的

2022-09-26 10:28:27

DS18B20的特点是什么

范围为 -55 ℃ ~+ 125 ℃ ; 在 -10~+ 85°C 范围内,精度为 ± 0.5°C 。(3)持多点组网功能 多个 DS18B20 可以并联在惟一的单线上,实现多点测温。(4)测量参数可配置 DS18B20

2022-01-10 06:25:39

DS18B20的基本概述

文章目录1、DS18B20的基本概述2、DS18B20内部结构3、DS18B20的内部存储结构4、

2021-12-02 06:30:12

DS18B20的相关资料分享

一、环境介绍编程软件: keil5操作系统: win10STM32编程方式: 寄存器开发 (方便程序移植到其他单片机)温度传感器: DS1820DS18B20是一个数字温度传感器,采用的是单总线时序

2021-11-30 06:22:55

DS18B20的相关资料分享

目录DS18B20简介外部结构内部结构数据温度的读取实验程序实现附DS18B20简介D

2021-11-18 06:31:01

DS18B20的C语言驱动程序

本文档的主要内容详细介绍的是DS18B20的C语言驱动程序。

2020-09-06 10:53:16

ds18b20的特性_ds18b20温度传感器应用

本文首先介绍了ds18b20的特性,其次介绍了DS18B20工作原理,最后介绍了ds18b20温度传感器应用。

2020-04-24 09:10:05

7天热门专题 换一换
相关标签