单片机驱动温感的18B20.h文件
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;
}
单片机驱动温感18B2 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)