專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

單片機(jī)驅(qū)動(dòng)溫感的18B20.h文件

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年10月15日   【字體:

   DS18B20是世界上第一個(gè)單線通訊的12位二進(jìn)制數(shù)字溫度傳感器。工作電壓從3.0~5.5V,測量溫度范圍從-55℃~125℃,具有最高±0.0625℃的分辨率。
    DS18B20數(shù)字溫度傳感器封裝后可應(yīng)用于多種場合。封裝后的DS18B20可用于電纜溝測溫,高爐水循環(huán)測溫,鍋爐測溫,機(jī)房測溫,農(nóng)業(yè)大棚測溫,潔凈室測溫,彈藥庫測溫等各種非極限溫度場合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測溫和控制領(lǐng)域。
    利用單片機(jī)完全可以讀取DS18B20所測量到的二進(jìn)制數(shù)字溫度,測溫步驟:1、復(fù)位;2、跳過讀序列號命令(總線只有一個(gè)DS18B20);3、啟動(dòng)溫度轉(zhuǎn)換;4、延時(shí);5、讀取溫度;6、處理測量到的二進(jìn)制數(shù)據(jù);7、顯示。
    為方便調(diào)用我封裝為了一個(gè)18b20.h文件下載地址:http://www.torrancerestoration.com/f/18b20h.rar 可以任意調(diào)用.
    下面是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;
}

關(guān)閉窗口

相關(guān)文章