微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机驱动温感的18B20.h文件

单片机驱动温感的18B20.h文件

时间:11-30 来源:互联网 点击:
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;
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top