在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>電子元器件>傳感器>

DS18B20讀寫操作程序詳解

2017年11月06日 18:04 網絡整理 作者: 用戶評論(0

  一、DS18B20的初始化

 ?。?) 先將數據線置高電平“1”。

  (2) 延時(該時間要求的不是很嚴格,但是盡可能的短一點)

 ?。?) 數據線拉到低電平“0”。

  (4) 延時750微秒(該時間的時間范圍可以從480到960微秒)。

 ?。?) 數據線拉到高電平“1”。

 ?。?) 延時等待(如果初始化成功則在15到60毫秒時間之內產生一個由DS18B20所返回的低電平“0”。據該狀態可以來確定它的存在,但是應注意不能無限的進行等待,不然會使程序進入死循環,所以要進行超時控制)。

 ?。?) 若CPU讀到了數據線上的低電平“0”后,還要做延時,其延時的時間從發出的高電平算起(第(5)步的時間算起)最少要480微秒。

 ?。?) 將數據線再次拉高到高電平“1”后結束。

  二、 DS18B20的寫操作

 ?。?) 數據線先置低電平“0”。

 ?。?) 延時確定的時間為15微秒。

 ?。?) 按從低位到高位的順序發送字節(一次只發送一位)。

 ?。?) 延時時間為45微秒。

 ?。?) 將數據線拉到高電平。

 ?。?) 重復上(1)到(6)的操作直到所有的字節全部發送完為止。

 ?。?) 最后將數據線拉高。

  三、DS18B20的讀操作

 ?。?)將數據線拉高“1”。

 ?。?)延時2微秒。

  (3)將數據線拉低“0”。

 ?。?)延時15微秒。

 ?。?)將數據線拉高“1”。

  (6)延時15微秒。

 ?。?)讀數據線的狀態得到1個狀態位,并進行數據處理。

  (8)延時30微秒。

  四、DS18B20讀寫操作程序

  //----------------------------------------------------------

  // 模塊名稱:DS18B20.h

  // 模塊功能:DS18B20 讀寫操作

  //----------------------------------------------------------

  sbit DS = P1^0;

  //----------------------------------------------------------

  // 函數名稱:void DelayTmp(unsigned int count)

  // 函數功能:延時

  //----------------------------------------------------------

  void DelayTmp(unsigned int count)

  {

  unsigned int i;

  while(count)

  {

  i=200;while(i》0)i--;

  count--;

  }

  }

  //----------------------------------------------------------

  // 函數名稱:void DsReset(void)

  // 函數功能:復位

  //----------------------------------------------------------

  void DsReset(void)

  {

  unsigned int i;

  DS=0;

  i=103; while(i》0)i--;

  DS=1;

  i=4;while(i》0)i--;

  }

  //----------------------------------------------------------

  // 函數名稱:bit TmpReadBit(void)

  // 函數功能:讀取一位

  //----------------------------------------------------------

  bit TmpReadBit(void)

  {

  unsigned int i;

  bit dat;

  DS=0;i++;

  DS=1;i++;i++;

  dat=DS;

  i=8;while(i》0)i--;

  return (dat);

  }

  //----------------------------------------------------------

  // 函數名稱:unsigned char TmpRead(void)

  // 函數功能:讀取一字節

  //----------------------------------------------------------

  unsigned char TmpRead(void)

  {

  unsigned char i,j,dat;

  dat=0;

  for(i=1;i《=8;i++)

  {j=TmpReadBit();

  dat=(j《《7)|(dat》》1); }

  return(dat);

  }

  //----------------------------------------------------------

  // 函數名稱:void TmpWriteByte(unsigned char dat)

  // 函數功能:寫入一字節

  //----------------------------------------------------------

  void TmpWriteByte(unsigned char dat)

  {

  unsigned int i;

  unsigned char j;

  bit testb;

  for(j=1;j《=8;j++)

  {

  testb=dat&0x01;

  dat=dat》》1;

  if(testb) //write 1

  {

  DS=0;

  i++;i++;

  DS=1;

  i=8;while(i》0)i--;

  }

  else

  {

  DS=0; //write 0

  i=8;while(i》0)i--;

  DS=1;

  i++;i++;

  }

  }

  }

  //----------------------------------------------------------

  // 函數名稱:void TmpChange(void)

  // 函數功能:溫度轉換

  //----------------------------------------------------------

  void TmpChange(void)

  {

  DsReset();

  DelayTmp(1);

  TmpWriteByte(0xcc);

  TmpWriteByte(0x44);

  }

  //----------------------------------------------------------

  // 函數名稱:unsigned int Tmp()

  // 函數功能:獲取溫度

  //----------------------------------------------------------

  unsigned int Tmp()

  {

  float tt;

  unsigned char a,b;

  unsigned int temp;

  DsReset();

  DelayTmp(1);

  TmpWriteByte(0xcc);

  TmpWriteByte(0xbe);

  a=TmpRead();

  b=TmpRead();

  temp=b;

  temp《《=8;

  temp=temp|a;

  tt=temp*0.0625;

  temp=tt*10+0.5;

  return temp;

  }

  //----------------------------------------------------------

  // 函數名稱:void RefreshTmp()

  // 函數功能:刷新溫度

  //----------------------------------------------------------

  void RefreshTmp()

  {

  TmpChange();

  DisplayTmp(Tmp());

  }

非常好我支持^.^

(157) 96.9%

不好我反對

(5) 3.1%

( 發表人:陳翠 )

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      主站蜘蛛池模板: 天天插天天射天天干 | 日韩毛片在线 | 性感美女视频黄.免费网站 性高清 | 一级片视频在线 | 午夜久久久久久亚洲国产精品 | 深爱开心激情 | 伊人网网 | 在线播放亚洲视频 | 色免费在线 | 久久精品香蕉视频 | 婷婷六月久久综合丁香一二 | 成年视频xxxxx免费播放软件 | 亚洲九九香蕉 | 亚洲人成网站在线在线 | 国产精品黄网站免费进入 | 激情婷婷丁香 | 免费的很黄很色的床小视频 | 日韩毛片免费看 | 91大神大战高跟丝袜美女 | 五月激情啪啪网 | 欧洲亚洲一区 | 色综合天天综合网国产成人 | 在线人成精品免费视频 | 爽死你个放荡粗暴小淫视频 | 久色tv| 三级电影在线观看视频 | 男人在线视频 | bt天堂在线www种子搜索 | a级男女性高爱潮高清试 | 操到喷水| 亚洲成人国产 | 女bbbbxxxx毛片视频0 | 农村一级片 | 仓本c仔国产精品 | 国产男人女人做性全过程视频 | 老师啊灬啊灬用力啊快224视频 | 视频一区日韩 | aaa一级片 | 色婷婷精品大全在线视频 | 九九热精品在线观看 | 奇米影视9999 |