标题:
DHT11温湿度传感器程序
[打印本页]
作者:
crystal1
时间:
2018-9-27 11:25
标题:
DHT11温湿度传感器程序
基于
51
单片机的
DHT11
温湿度传感器
#include<reg52.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
sbit dht=P1^1;
sbit dula=P2^6;
sbit wela=P2^7;
uchars8h,s8h_temp,s8l,s8l_temp,w8h,w8h_temp,w8l,w8l_temp,check8,check8_temp,flag=0;
float sd,wd;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
void delayms(uint z)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void Delay_10us() //进入函数3us
{
uchar i; //每条语句1us
i--;
i--;
i--;
i--;
i--;
i--;
}
void display(uchar th,uchar tl)
{
ucharih=0,il=0,jh=0,jl=0,kh=0,kl=0;
ih=th/100;
jh=th%100/10;
kh=th%10;
il=tl/100;
jl=tl%100/10;
kl=tl%10;
P0=0xfe;
wela=1;
wela=0;
P0=table[ih];
dula=1;
dula=0;
delayms(1);
P0=0xfd;
wela=1;
wela=0;
P0=table[jh];
dula=1;
dula=0;
delayms(1);
P0=0xfb;
wela=1;
wela=0;
P0=table[kh+10];
dula=1;
dula=0;
delayms(1);
P0=0xf7;
wela=1;
wela=0;
P0=table[il];
dula=1;
dula=0;
delayms(1);
P0=0xef;
wela=1;
wela=0;
P0=table[jl];
dula=1;
dula=0;
delayms(1);
P0=0xdf;
wela=1;
wela=0;
P0=table[kl];
dula=1;
dula=0;
delayms(1);
}
char com()
{
uchari,j,temp,cdata=0;
for(i=0;i<8;i++)
{
flag=2;
while((!dht)&&(flag++));//等待拉高
// Delay_10us();
// Delay_10us();
// Delay_10us();
j=3;while(j--); //延时30us
temp=0;
if(dht==1)temp=1;
flag=2;
while(dht&&(flag++));//等待拉低
// if(flag==1)break;
cdata<<=1;
cdata=cdata|temp;
}
returncdata;
}
void getdth()
{
uchari;
dht=0;
delayms(18); //18ms
dht=1;
// Delay_10us();
// Delay_10us();
// Delay_10us();
// Delay_10us();
i=4;while(i--); //延时40us
dht=1;
if(dht!=1) //dth11响应
{
flag=2;while((!dht)&&(flag++));//等待拉高
flag=2;while(dht&&(flag++));//等待读入数据
s8h_temp=com();
s8l_temp=com();
w8h_temp=com();
w8l_temp=com();
check8_temp=com();
dht=1;
if((s8h_temp+s8l_temp+w8h_temp+w8l_temp)==check8_temp)//校验
{
s8h=s8h_temp;
s8l=s8l_temp;
w8h=w8h_temp;
w8l=w8l_temp;
check8=check8_temp;
}
}
sd=s8h+(float)s8l/256;
wd=w8h+(float)w8l/256;
}
void main()
{
while(1)
{
getdth();
display(s8h,w8h);
}
}
复制代码
作者:
admin
时间:
2018-9-27 18:02
补全原理图或者详细说明一下电路连接即可获得100+黑币
作者:
孙999
时间:
2018-9-27 21:59
31个错误
作者:
jzq123
时间:
2018-12-13 12:39
有错误不对啊 应该修改一下头文件
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1