资讯详情

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

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.ruidan.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; }

-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台