⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds18b20.h

📁 利用keil 51实现温湿度模块的控制程序
💻 H
字号:

// #include"Variable.h"
sbit dq=P1^3;
uchar idata templ;
uchar idata temph;
uchar idata  i;

void delay6us(uchar  data  count)
{
    while(count--);
}


void delaynms(uint data x)
{
   uchar data j;
   while(x--)
   {
      for(j=0;j<125;j++);
   }
}

void reset()
{
   dq=0;
   delay6us(80);
   dq=1;
   delay6us(80);
}
   
void wrbyte(uchar data value)
{
   uchar data i;
   for(i=0;i<8;i++)
   {
       dq=0;
       _nop_();
       _nop_();
       _nop_();
       _nop_();
       _nop_();
       dq=value&0x01;
       delay6us(8);
       dq=1;
       value>>=1;
   }
}

uchar rebyte()
{
   uchar  data i;
   uchar  data value;
   value=0;
   for(i=0;i<8;i++)
   {
      value>>=1;
      dq=0;
      _nop_();
      _nop_();
      _nop_();
      _nop_();
      dq=1;
      _nop_();
      _nop_();
      if(dq)value|=0x80;
      delay6us(8);
   }
   return(value);
}

float ds1820(void)
{float temp;
      reset();
      wrbyte(0xcc);                                                                                                                                                                                                                                                   
      wrbyte(0x44);
      delaynms(750);
	  reset();
      wrbyte(0xcc);
      wrbyte(0xbe);
      templ=rebyte();
      temph=rebyte(); 
    temp=(temph*16+((templ&240)>>4))+((float)(templ&15))/16;
      return(temp);
         
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -