欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
DHT22和DHT11在溫濕度顯示程序方面有什么不同?只是延時不同嗎?
[打印本頁]
作者:
Lagods
時間:
2020-4-13 10:42
標題:
DHT22和DHT11在溫濕度顯示程序方面有什么不同?只是延時不同嗎?
程序只是延時不同嗎?需要修改什么地方?
/*************************************************************
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
作者:
chu358177
時間:
2020-5-22 11:16
22啟動時間應該是比11短,具體對比一下 時序圖 就好辦了。
作者:
adject
時間:
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精度更高
作者:
蔡春雷
時間:
2022-1-4 18:00
啟動延時和換算 建議看看手冊
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1