|
通过调试,确认无问题。可以做为参考,也可直接在原代码上更改成为你自己的程序!
// 湿度20-90 温度0-50 采样间隔1S
#include <reg51.h>
#include <intrins.h>
#include "lcd1602.h"
#define uint unsigned int
#define uchar unsigned char
sbit DQ=P1^7; //DTH11
uchar code ASCII[]="0123456789%c";
uchar code table0[]=" Hum: ";
uchar code table1[]=" Tem: ";
uchar tem;
uchar hum;
display0[2]={0,0};
display1[2]={0,0};
//**************************延时函数
void delay_ms(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=114;y>0;y--);
}
//**************************初始化DTH11
bit Init_DTH11()
{
bit flag;
uchar num;
DQ=0;
delay_ms(19); // >18ms
DQ=1;
for(num=0;num<10;num++); // 20-40us 34.7us
for(num=0;num<12;num++);
flag=DQ;
for(num=0;num<11;num++); //DTH响应80us
for(num=0;num<24;num++); //DTH拉高80us
return flag;
}
|
|