欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

單片機驅動溫感的18B20.h文件

作者:佚名   來源:本站原創   點擊數:  更新時間:2013年10月15日   【字體:

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

關閉窗口

相關文章