DS18B20是世界上第一个单线通讯的12位二进制数字温度传感器。作业电压从3.0~5.5V,丈量温度规模从-55℃~125℃,具有最高±0.0625℃的分辨率。
DS18B20数字温度传感器封装后可应用于多种场合。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用便利,封装形式多样,适用于各种狭小空间设备数字测温文操控范畴。
使用单片机完全能够读取DS18B20所丈量到的二进制数字温度,测温过程:1、复位;2、越过读序列号指令(总线只要一个DS18B20);3、发动温度转化;4、延时;5、读取温度;6、处理丈量到的二进制数据;7、显现。
为便利调用我封装为了一个18b20.h文件下载地址:http://www.51hei.com/f/18b20h.rar能够恣意调用.
下面是18B20.h程序:
sbit DQ=P3^3;
void delay_50us(uint t)
{
unsigned char j;
for(;t>0;t–)
for(j=19;j>0;j–);
}
void delay_8us(uint t)
{
while(–t);
}
void delay_3us()
{
;
;
}
void write_ds18b20(uchar value)
{
uchar i=0;
for(i=0;i<8;i++)
{
DQ=1;
delay_3us();
DQ=0;
delay_8us(2);
if (value & 0x01) DQ=1; //
delay_50us(1);
delay_8us(2);
value>>=1;
}
DQ=1; //
}
uchar read_ds18b20(void)
{
uchar i=0;
uchar value = 0;
for (i=0;i<8;i++)
{
value>>=1;
DQ=0;// DQ_L;
delay_3us();
DQ=1; //
delay_8us(2);
if(DQ==1) value|=0x80;
delay_8us(6);
}
DQ=1;
return value;
}
void rest_ds18b20(void)
{
rest:delay_3us();
delay_3us();
DQ=1;
delay_3us();
DQ=0;
delay_50us(11);
DQ=1;
delay_8us(5);
if(DQ==1)
return;
delay_50us(2);
if(DQ==1)
return;
else
goto rest;
}