Mobile wallpaper 1Mobile wallpaper 2Mobile wallpaper 3Mobile wallpaper 4
355 字
2 分钟
DS18B20相关功能

板子使用#

这个在板子中是用来检测周围温度的芯片,无需设置,可通过捏该感应器来实现温度上升,试试自己代码是否有问题。

如果在数码管显示上,看到温度的读取时时跳出比较怪的数值,那就在整个时序的两端加上总中断的关和开,以此避免温度读取的时序被频繁打断。

底层代码#

此处只填写一些官方提供代码中没有给出的部分

#include "onewire.h"
#include "intrins.h"
sbit DQ = P1 ^ 4;
//
float rd_temperature() //读取温度,这里是我们要手打的代码!!!
{
unsigned char low, high;
//EA = 0;
init_ds18b20(); //初始化
Write_DS18B20(0xcc); //跳过ROM操作
Write_DS18B20(0x44); //开启温度转化
Delay_OneWire(200); //不要忘记延时
init_ds18b20(); //初始化
Write_DS18B20(0xcc); //跳过ROM操作
Write_DS18B20(0xbe); //开启读取温度
low = Read_DS18B20(); //先读第八位low
high = Read_DS18B20(); //再读高八位high
//EA = 1;
return (float)(high << 8 | low) * 0.0625; //返回浮点数类型
}

调用函数#

如果要读取它的函数,建议用变量而不是数组。

  • 如果要直接读取它的函数,用 unsigned char 类型即可
  • 如果要在数码管上显示保留一位小数,则要用 unsigned int 类型

示例:

unsigned int tempertured_value_10x;

tempertured_value_10x = rd_temperature() * 10;

同理,如果要在数码管上显示保留两位小数,*100 即可。

DS18B20相关功能
https://mizuki.mysqil.com/posts/蓝桥杯单片机/ds18b20相关功能/
作者
风过无痕
发布于
2025-11-04
许可协议
CC BY 4.0

部分信息可能已经过时

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00