找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 1965|回復(fù): 0
收起左側(cè)

DS18B20+lcd1602 溫度采集

[復(fù)制鏈接]
ID:396882 發(fā)表于 2020-5-5 12:21 | 顯示全部樓層 |閱讀模式
unsigned char resetDS18B20(void)
{
   unsigned char errTime=0;
   rls_dq;                   //釋放總線
   _NOP();
   hold_dq;                   //Maga16控制總線
   dq_clr;                   //強(qiáng)制拉低
   delay_nus(480);          
   //以上延時(shí)大于480us
   rls_dq;                   //釋放總線,總線自動(dòng)上拉
   _NOP();
   while(stu_dq)
   {
      delay_nus(5);           //5us
      errTime++;
      if(errTime>12)
         return(0x00);           //如果等帶大于約 5*12就返回0x00,報(bào)告復(fù)位失�。▽�(shí)際上只要等待15-60us)
   }
   errTime=0;
   while(!(stu_dq))
   {
      delay_nus(5);           //5us
      errTime++;
      if(errTime>50)
         return(0x00);     //如果等帶大于約 5us*50就返回0x00,報(bào)告復(fù)位失敗(實(shí)際上只要等待60-240us)
   }
   return(0xff);
}

unsigned char readByteDS18B20(void)
{
   unsigned char i;
   unsigned char retVal=0;
   rls_dq;                   //釋放總線
   for(i=8;i>0;i--)
   {
      retVal>>=1;
      hold_dq;           //Maga16控制總線
      dq_clr;           //強(qiáng)制拉低
      delay_nus(8);           //延時(shí)大于1us
      dq_set;           //釋放總線,DS18B20會(huì)將總線強(qiáng)制拉低

          rls_dq;                //釋放總線
      if(stu_dq)
         retVal|=0x80;
      delay_nus(30);                 //30us
      hold_dq;                //釋放總線
      dq_set;           //釋放總線,DS18B20會(huì)將總線強(qiáng)制拉低

   }
   delay_nus(5);                 //2.71us(大于1us就行了)
   return(retVal);
}

void writeByteDS18B20(unsigned char wb)
{
   unsigned char i;
   unsigned char temp;
   rls_dq;                         //釋放總線
   for(i=0;i<8;i++)
   {
      hold_dq;                //Maga16控制總線
      dq_clr;                //強(qiáng)制拉低
      delay_nus(4);                
      temp=wb>>i;
      temp&=0x01;
      if(temp)
         dq_set;                //釋放總線
      else
         dq_clr;                //強(qiáng)制拉低
      delay_nus(50);                

          dq_set;                //釋放總線
      delay_nus(4);                 //(大于1us就行了)
   }
}

DS18B20 lcd1602 溫度采集.zip

69.9 KB, 下載次數(shù): 20, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表