女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子元器件>傳感器>

DS18B20讀寫操作程序詳解

2017年11月06日 18:04 網(wǎng)絡(luò)整理 作者: 用戶評論(0

  一、DS18B20的初始化

 ?。?) 先將數(shù)據(jù)線置高電平“1”。

 ?。?) 延時(shí)(該時(shí)間要求的不是很嚴(yán)格,但是盡可能的短一點(diǎn))

  (3) 數(shù)據(jù)線拉到低電平“0”。

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

  (5) 數(shù)據(jù)線拉到高電平“1”。

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

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

 ?。?) 將數(shù)據(jù)線再次拉高到高電平“1”后結(jié)束。

  二、 DS18B20的寫操作

 ?。?) 數(shù)據(jù)線先置低電平“0”。

  (2) 延時(shí)確定的時(shí)間為15微秒。

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

  (4) 延時(shí)時(shí)間為45微秒。

 ?。?) 將數(shù)據(jù)線拉到高電平。

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

 ?。?) 最后將數(shù)據(jù)線拉高。

  三、DS18B20的讀操作

  (1)將數(shù)據(jù)線拉高“1”。

  (2)延時(shí)2微秒。

 ?。?)將數(shù)據(jù)線拉低“0”。

 ?。?)延時(shí)15微秒。

  (5)將數(shù)據(jù)線拉高“1”。

 ?。?)延時(shí)15微秒。

 ?。?)讀數(shù)據(jù)線的狀態(tài)得到1個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。

 ?。?)延時(shí)30微秒。

  四、DS18B20讀寫操作程序

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

  // 模塊名稱:DS18B20.h

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

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

  sbit DS = P1^0;

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

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

  // 函數(shù)功能:延時(shí)

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

  void DelayTmp(unsigned int count)

  {

  unsigned int i;

  while(count)

  {

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

  count--;

  }

  }

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

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

  // 函數(shù)功能:復(fù)位

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

  void DsReset(void)

  {

  unsigned int i;

  DS=0;

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

  DS=1;

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

  }

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

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

  // 函數(shù)功能:讀取一位

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

  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);

  }

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

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

  // 函數(shù)功能:讀取一字節(jié)

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

  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);

  }

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

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

  // 函數(shù)功能:寫入一字節(jié)

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

  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++;

  }

  }

  }

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

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

  // 函數(shù)功能:溫度轉(zhuǎn)換

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

  void TmpChange(void)

  {

  DsReset();

  DelayTmp(1);

  TmpWriteByte(0xcc);

  TmpWriteByte(0x44);

  }

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

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

  // 函數(shù)功能:獲取溫度

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

  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;

  }

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

  // 函數(shù)名稱:void RefreshTmp()

  // 函數(shù)功能:刷新溫度

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

  void RefreshTmp()

  {

  TmpChange();

  DisplayTmp(Tmp());

  }

非常好我支持^.^

(157) 96.9%

不好我反對

(5) 3.1%

( 發(fā)表人:陳翠 )

      發(fā)表評論

      用戶評論
      評價(jià):好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?
      主站蜘蛛池模板: 麻城市| 宝丰县| 社旗县| 运城市| 札达县| 健康| 邯郸市| 越西县| 资中县| 仙桃市| 扎赉特旗| 邯郸市| 吉水县| 安远县| 皮山县| 育儿| 闽侯县| 莱阳市| 双柏县| 武汉市| 潼南县| 河津市| 榆社县| 永城市| 宁波市| 武宣县| 徐闻县| 宝兴县| 黄骅市| 徐州市| 万载县| 兴隆县| 宝坻区| 晋州市| 南康市| 玉溪市| 鹿泉市| 三都| 岳西县| 平舆县| 岱山县|