欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機+DHT11溫濕度個位數據不正確
[打印本頁]
作者:
MirrAKe
時間:
2021-3-20 11:06
標題:
51單片機+DHT11溫濕度個位數據不正確
程序如下:
這是DHT11的讀取程序,顯示程序在main文件中,用LCD1602顯示,LCD1602的程序絕對是正確的,因為我別的程序也用了,現在的問題是溫濕度十位數據正確,個位數據錯誤,能過校驗
#include <reg52.h>
typedef unsigned char uchar;
sbit DATA = P1^6;
void Delay18ms() //@11.0592MHz
{
unsigned char i, j;
i = 33;
j = 66;
do
{
while (--j);
} while (--i);
}
void Delay10us() //@11.0592MHz
{
unsigned char i;
i = 2;
while (--i);
}
void DHT11Start()
{
DATA = 0;
Delay18ms();
DATA = 1;
Delay10us();
Delay10us();
Delay10us();
DATA = 1;
}
uchar GetByte()
{
uchar i,b=0;
for(i=0;i<8;i++)
{
while(!DATA);
Delay10us();
Delay10us();
Delay10us();
b <<= 1;
if(DATA == 1)b += 1;
while(DATA);
}
return b;
}
void DHT11GetData(uchar *dat)
{
uchar datacheck,RH,RL,TH,TL;
DHT11Start();
if(!DATA)
{
while(!DATA);
while(DATA);
RH = GetByte();
RL = GetByte();
TH = GetByte();
TL = GetByte();
datacheck = GetByte();
DATA = 1;
}
if(datacheck == (RH+RL+TH+TL))
{
dat[0] = (RH/10) +'0';
dat[1] = (RL%10) +'0';
dat[2] = (TH/10) +'0';
dat[3] = (TL%10) +'0';
}
else
{
dat[0] = '0';
dat[1] = '0';
dat[2] = '0';
dat[3] = '0';
}
}
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1