欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2375|回復: 0
收起左側

dht11傳感器51單片機驅動代碼

[復制鏈接]
ID:398945 發表于 2019-9-25 19:13 | 顯示全部樓層 |閱讀模式


dht11傳感器51單片機驅動代碼

#include "dht11.h"
       
void dht_Delay(unsigned int j)        //延時0.1ms,晶振為11.0592M
{   
        unsigned char i;
        for(;j>0;j--)
        {        
                for(i=0;i<27;i++);
        }
}

void  Delay_10us()
{
  unsigned char i;
  i--;
  i--;
  i--;                                                  
  i--;
  i--;
  i--;
}
//接收一個字節
    unsigned char  rev_byte( )       
      {             
           unsigned char i,temp,rev_data=0;                  
       for(i=0;i<8;i++)          
            {                
                    while(dat==0); //等待50us的低電平
                        Delay_10us();  //延時30us
                    Delay_10us();
                        Delay_10us();
                        temp=0;
                          if(dat==1)        //判斷數據為0或1
                    temp=1;
                    while(dat==1); //等待1的高電平結束                    
                  rev_data<<=1;
                     rev_data|=temp;        
             }
                 return rev_data;          
        }

//讀溫濕度       
void RH(unsigned char *rh,unsigned char *tem)
{
        unsigned char rh_h,rh_l,tem_h,tem_l,rh_ht,rh_lt,tem_ht,tem_lt,check;
        dat=0; //拉低18ms
        dht_Delay(180);                                                          
        dat=1; //總線由上拉電阻拉高延時20us以上         
        Delay_10us();
        Delay_10us();
        Delay_10us();
        Delay_10us();
        dat=1;           //dat引腳設為讀狀態
        if(dat==0)         //判斷是否有低電平響應信號                  
        {
           while(dat==0); //等待 80us 的低電平響應信號         
           while(dat==1);          //等待80us的高電平響應       
           rh_ht=rev_byte();                 //接收濕度高8位       
           rh_lt=rev_byte();                 //濕度低8位
           tem_ht=rev_byte();          //溫度高8位
           tem_lt=rev_byte();         //溫度低8位
           check=rev_byte();
           dat=1;         
           if(rh_ht+rh_lt+tem_ht+tem_lt==check) //數據校驗
           {       
             rh_h=rh_ht;
                 rh_l=rh_lt;
                 tem_h=tem_ht;
                 tem_l=tem_lt;
                 *rh=rh_h;
                 *tem=tem_h;                     
           }
        }

}


5.png

dht11傳感器51單片機驅動.rar

1.04 KB, 下載次數: 32, 下載積分: 黑幣 -5

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表