新聞中心

EEPW首頁 > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于Matlab的一種小型溫度檢測(cè)系統(tǒng)的設(shè)計(jì)

基于Matlab的一種小型溫度檢測(cè)系統(tǒng)的設(shè)計(jì)

作者: 時(shí)間:2010-01-02 來源:網(wǎng)絡(luò) 收藏

  2,基本操作:DS18B20的一線工作協(xié)議流程是:初始化→ROM操作指令→存儲(chǔ)器操作指令→數(shù)據(jù)傳輸。對(duì)DS18B20 進(jìn)行所有的讀寫操作都是從初始化開始的,主要分為初始化操作,讀操作和寫操作。

  基于以上分析,對(duì)DS18B20的編程源碼如下:

  Init_DS18B20(void) //初始化函數(shù)

  {DQ = 1; //DQ復(fù)位

  Delay15(1); //稍做延時(shí)

  DQ = 0; //單片機(jī)將DQ拉低

  Delay15(32); //精確延時(shí) 大于 480us

  DQ = 1; //拉高總線

  Delay15(6); //延時(shí)90us

  x=DQ; //讀存在脈沖

  delay15(20); //延時(shí)約270us

  }

  Write_DS18B20(unsigned char dat)//寫一個(gè)字節(jié)

  {

  unsigned char i="0";//定義循環(huán)變量

  for (i=0; i8; i++)

  {

   DQ = 0; //復(fù)位

   DQ = dat0x01;//取數(shù)據(jù)的第i位并送出

  Delay15(1);//延時(shí)

  DQ = 1; //停止

   dat>>=1;//右移

  }

  }

  Read_DS18B20(void)//讀一個(gè)字節(jié)

  {

  unsigned char i="0";

  unsigned char dat = 0;

  for (i=8;i>0;i--)

  {

   DQ = 0; // 復(fù)位

   dat>>=1;

   DQ = 1; // 給脈沖信號(hào)

   if(DQ)

   dat|=0x80;//取位脈沖并存入dat

   delay15(1);//延時(shí)

  }

  return(dat);

  }



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉