久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6095|回復: 3
打印 上一主題 下一主題
收起左側

DHT22和DHT11在溫濕度顯示程序方面有什么不同?只是延時不同嗎?

[復制鏈接]
跳轉到指定樓層
樓主
ID:710465 發表于 2020-4-13 10:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
20黑幣
程序只是延時不同嗎?需要修改什么地方?

/*************************************************************
                      DHT11頭文件

實現功能:DHT11的控制

補充說明:
***************************************************************/
#ifndef _DHT11_H_
#define _DHT11_H_
#include <reg52.h>

#define uchar unsigned char
#define uint unsigned int

/*****************DHT11引腳定義*******************/
sbit DHT11_DB=P3^4;

/*****************DHT11變量定義*********************/
uchar Temp_H,Temp_L,Humi_H,Humi_L,Check_data;//溫度整數位,小數位,濕度整數位,小數位,數據校驗位
uchar U8FLAG;
/*****************DHT11函數定義*********************/
void Delay_ms(uint n);                 //ms延時函數
void Delay_us(uchar n);                //us延時函數
uchar DHT11_receive(void);        //DHT11接收數據函數
void DHT11_read(void);                //DHT11讀取溫濕度函數
bit  DHT11_Check(void);     //DHT11校驗函數,返回1:校驗成功、返回0:校驗失敗

/********************************************************
函數名稱:void Delay_ms(uint n)
函數作用:ms延時函數
參數說明:
********************************************************/
void Delay_ms(uint n)
{
        unsigned char j;
        while(n--)
        {
                for(j=0;j<125;j++);
        }
}

/********************************************************
函數名稱:void Delay_us(uchar n)
函數作用:us延時函數
參數說明:
********************************************************/
void Delay_us(uchar n)
{
        n=n/2;
        while(--n);
}
/********************************************************
函數名稱:uchar DHT11_receive(void)
函數作用:接收DHT11傳回來的數據
參數說明:返回接收到的八位數據
********************************************************/
uchar DHT11_receive(void)
{
        uchar i,Data;
        for(i=0;i<8;i++)
        {
                 U8FLAG=2;
                 while(!DHT11_DB&&U8FLAG++);   
                 Delay_us(35);                 
                 Data<<=1;                                                 // 如果高電平高過預定0高電平值則數據位為 1
                 if(DHT11_DB)
                         Data|=1;                                       
                U8FLAG=2;
                 while(DHT11_DB&&U8FLAG++);                //超時則跳出for循環     
         }
        return Data;
}
/********************************************************
函數名稱:void DHT11_read(void)
函數作用:讀取DHT11溫濕度
參數說明:
********************************************************/
void DHT11_read(void)
{
        DHT11_DB=0;                                                  
        Delay_ms(20);                                          
        DHT11_DB=1;                                                  
        Delay_us(60);
        if(!DHT11_DB)                    
        {
                U8FLAG=2;
                while(!DHT11_DB&&U8FLAG++);   
                U8FLAG=2;                                         
                while(DHT11_DB&&U8FLAG++);   
                Humi_H=DHT11_receive();                  
                Humi_L=DHT11_receive();
                Temp_H=DHT11_receive();
                Temp_L=DHT11_receive();
                Check_data=DHT11_receive();         
                DHT11_DB=1;      
        }
}
/********************************************************
函數名稱:bit DHT11_Check(void)
函數作用:DHT11校驗函數
參數說明:返回=1:校驗成功;返回=0:校驗失敗
********************************************************/
bit DHT11_Check(void)
{
        if((Temp_H+Temp_L+Humi_H+Humi_L)==Check_data)  //判斷校驗和是否正確
                return 1;
        else
                return 0;
}
#endif

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:732456 發表于 2020-5-22 11:16 | 只看該作者
22啟動時間應該是比11短,具體對比一下 時序圖 就好辦了。
回復

使用道具 舉報

板凳
ID:419968 發表于 2020-5-22 23:20 | 只看該作者
void DHT11_read(void)
{
        DHT11_DB=0;                                                  
        Delay_ms(20);     //DTH22起始時間     Delay_us(800);                                   
        DHT11_DB=1;                                                  
        Delay_us(60);
        if(!DHT11_DB)                    
        {
                U8FLAG=2;
                while(!DHT11_DB&&U8FLAG++);   
                U8FLAG=2;                                         
                while(DHT11_DB&&U8FLAG++);   
                Humi_H=DHT11_receive();                  
                Humi_L=DHT11_receive();
                Temp_H=DHT11_receive();
                Temp_L=DHT11_receive();
                Check_data=DHT11_receive();         
                DHT11_DB=1;      
        }
}

還有溫濕度換算 dth11 只有整數部分,dth22 讀出來的數除以10 dth22精度更高
回復

使用道具 舉報

地板
ID:841313 發表于 2022-1-4 18:00 | 只看該作者
啟動延時和換算  建議看看手冊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美视频在线免费 | 国产日韩一区二区三免费高清 | 色av一区二区三区 | 成人av免费| av片在线观看网站 | 午夜久久久久久久久久一区二区 | 日本在线综合 | 日韩欧美在线观看 | 日本三级做a全过程在线观看 | 国产精品毛片 | 欧产日产国产精品视频 | 精品久久国产 | 国产免费人成xvideos视频 | 久久久久精 | 欧美日韩亚洲一区 | 一级片av | 中文字幕高清av | 九九热精品视频在线观看 | 91视频免费 | 老妇激情毛片免费 | 中国三级黄色录像 | 欧美成人二区 | 日本网站免费观看 | 国产一区免费 | 成人午夜| 欧美精品在线一区二区三区 | 亚洲精品二区 | 国产精品久久久99 | av一二三四 | 九色 在线 | 欧美日韩一区二区视频在线观看 | 男插女下体视频 | 欧美精品久久久久久久久老牛影院 | 久久精品免费 | 精品三级在线观看 | 国产日韩欧美在线播放 | 欧美精品一区三区 | 亚洲黄色av | 成人在线精品视频 | av在线视| 九九热在线视频 |