1.芯片简介
DS18B20数字温度传感器提供9-Bit到12-Bit的摄氏温度测量精度和一个用户可编程的非易失性且具有过温和低温触发报警的报警功能。DS18B20采用的1-Wire通信即仅采用一个数据线(以及地)与微控制器进行通信。该传感器的温度检测范围为-55℃至+125℃,并且在温度范围超过-10℃至85℃之外时还具有+-0.5℃的精度。此外,DS18B20可以直接由数据线供电而不需要外部电源供电。
主要特点如下
DQ引脚为开漏模式,需外置上拉电阻
2.DS18B20引脚定义-以TO-92封装为例
(1)Pin 1:GND 地线
(2)Pin 2:数据输入/输出。1-Wire漏极开路接口引脚。当采用“寄生电源”供电方式时,同时向设备提供电源。所以
在使用时,一般需要加一个5-10k的上拉电阻。
(3)VDD引脚。VDD必须连接到地当采用“寄生电源”供电时。
3.DS18B20驱动程序
(1)DS18B20.h
#ifndef _DS18B20_H_
#define _DS18B20_H_
/*****************************************/
extern void Reset();
extern void WriteChar(uchar dat);
extern uint ReadChar();
extern uint ReadTemperature();
/*****************************************/
#endif
(2)DS18B20.c
#include"reg52.h"
#define uint unsigned int
#define uchar unsigned char
uint tempL,tempH;
sbit DQ=P2^0;//数据端
/**********************************************
DS18B20专用延时子函数
**********************************************/
void DDelay(uint t)
{
uint n;
n=0;
while(n<t)
{
n++;
}
}
/*********************************************************
DS18B20复位函数
**********************************************************/
void Reset()
{
DQ=1;
DDelay(8);
DQ=0;
DDelay(85);
DQ=1;
DDelay(14);
}
/***********************************************************
DS18B20写一个字节函数
*********************************************************/
void WriteChar(uchar dat)
{
uint i;
for(i=8;i>0;i--)
{
DQ=0;
DQ=dat&0x01;
DDelay(5);
DQ=1;
dat>>=1;
}
DDelay(4);
}
/****************************************************
DS18B20读一个字节函数
****************************************************/
uint ReadChar()
{
uchar i,dat=0;
for (i=8;i>0;i--)
{
DQ=0;
dat>>=1;
DQ=1;
if(DQ)
dat=dat|0x80;
DDelay(4);
}
return(dat);
}
/***************************************************
DS18B20读温度程序
****************************************************/
uint ReadTemperature()
{
uint temperature;
Reset();
WriteChar(0xcc);
WriteChar(0x44);
DDelay(125);
Reset();
WriteChar(0xcc);
WriteChar(0xbe);
tempL=ReadChar();
tempH=ReadChar();
temperature=((tempH*256)+tempL)*0.0625*10;
DDelay(200);
return(temperature); //返回的是0123格式
}
如需资料可在该账号下载频道下载,或关注公众号-单片机实例设计,发送“DS18B20”获取。