
其中,DQ端需添加一个上拉电阻,阻值一般为4.7KΩ。

DS18B20 是一款常用的数字温度传感器,以下是关于它的详细信息:
一、硬件特性
1. 单总线接口:
DS18B20 采用单总线接口,这意味着它只需要一根数据线就可以与微控制器(如单片机)进行通信,极大地简化了硬件连接。它通过该数据线既可以传输数据,也可以获取电源(寄生电源模式),当然也可以使用外部电源供电。
2.引脚功能:
引脚 |
功能 |
VCC |
电源(3.0V~5.5V) |
DQ |
单总线接口 |
GND |
接地端 |
3. 温度测量范围:
测量范围为 -55°C 至 +125°C,在 -10°C 至 +85°C 范围内具有 ±0.5°C 的精度,能够满足大多数环境温度测量的需求。
4. 分辨率可配置:
可以将温度分辨率设置为 9 位、10 位、11 位或 12 位,对应的分辨率分别为 0.5°C、0.25°C、0.125°C 和 0.0625°C。更高的分辨率可以提供更精确的温度测量,但会相应增加转换时间。
5. 唯一 64 位序列号:
每个 DS18B20 都有一个唯一的 64 位序列号,这使得多个 DS18B20 可以挂接在同一条总线上,实现多点温度测量,并且可以通过序列号来识别不同的传感器。
二、单总线时序结构
单总线时序结构主要包括初始化、写(0和1)时序、 读(0和1)时序。
1. 初始化:
主机输出低电平,保持低电平至少480us(该时间范围:480-960us),以产生复位脉冲。接着主机释放总线,外部的上拉电阻将单总线拉高,延时15-60us,并进入接收模式。
接着DS18B20拉低总线60-240us,以产生低电平应答脉冲,若为低电平,还要做延时,其延时的时间从外部上拉电阻将单总线拉高算起最少要480us.

初始化程序:
/******************************DS18B20 初始化********************************/
void Init_DS18B20()
{
uchar temp;
DQ=1;
delay_us(8);
DQ=0; // 拉低DQ总线,持续时间为480us至960us之间
delay_us(80); //拉低至少480us,产生复位脉冲
DQ = 1; // 主机释放总线
delay_us(14); // 延时15-16us
temp=DQ; // 进入接收模式,此时temp=0
delay_us(20); // 低电平信号持续60-240us,DS18B20主动释放总线,总线电平被拉高
}
2. 写时序:
发送或接受一个字节时,连续调用8次发送或接受一位的时序,依次发送或接受一个字节的8位低位在前。写时序包括写0时序和写1时序。所有写时序至少需要60us,且在2次独