找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1693|回复: 0
收起左侧

DS18B20+lcd1602 温度采集

[复制链接]
ID:396882 发表于 2020-5-5 12:21 | 显示全部楼层 |阅读模式
unsigned char resetDS18B20(void)
{
   unsigned char errTime=0;
   rls_dq;                   //释放总线
   _NOP();
   hold_dq;                   //Maga16控制总线
   dq_clr;                   //强制拉低
   delay_nus(480);          
   //以上延时大于480us
   rls_dq;                   //释放总线,总线自动上拉
   _NOP();
   while(stu_dq)
   {
      delay_nus(5);           //5us
      errTime++;
      if(errTime>12)
         return(0x00);           //如果等带大于约 5*12就返回0x00,报告复位失败(实际上只要等待15-60us)
   }
   errTime=0;
   while(!(stu_dq))
   {
      delay_nus(5);           //5us
      errTime++;
      if(errTime>50)
         return(0x00);     //如果等带大于约 5us*50就返回0x00,报告复位失败(实际上只要等待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;           //强制拉低
      delay_nus(8);           //延时大于1us
      dq_set;           //释放总线,DS18B20会将总线强制拉低

          rls_dq;                //释放总线
      if(stu_dq)
         retVal|=0x80;
      delay_nus(30);                 //30us
      hold_dq;                //释放总线
      dq_set;           //释放总线,DS18B20会将总线强制拉低

   }
   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;                //强制拉低
      delay_nus(4);                
      temp=wb>>i;
      temp&=0x01;
      if(temp)
         dq_set;                //释放总线
      else
         dq_clr;                //强制拉低
      delay_nus(50);                

          dq_set;                //释放总线
      delay_nus(4);                 //(大于1us就行了)
   }
}

DS18B20 lcd1602 温度采集.zip

69.9 KB, 下载次数: 19, 下载积分: 黑币 -5

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表