dht11温湿度传感器使用手册 dht11温湿度传感器视频

2024-11-10 09:52 - 立有生活网

简单通俗易懂的DHT11传感器51单片机控制

#include

dht11温湿度传感器使用手册 dht11温湿度传感器视频dht11温湿度传感器使用手册 dht11温湿度传感器视频


dht11温湿度传感器使用手册 dht11温湿度传感器视频


#include

typedef unsigned char unint8;

typedef unsigned char unint16;

unsigned char str1[]={" "};

unsigned char str2[]={" "};

unsigned char code dis1[] = {"TRH RH: "};

unsigned char code dis2[] = {"TRH T: "};

char code led[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

it TRH = P2^7;//温湿度传感器DHT11数据接入

it ST = P2^6;//状态显示,是为了方便调试,具体使用的时候可以不要

it led1= P2^0;

it led2= P2^1;

it led3= P2^2;

it led4= P2^3;

it sw = P2^4;

unint8 TH_data,TL_data,RH_data,RL_data,CK_data;

unint8 TH_temp,TL_temp,RH_temp,RL_temp,CK_temp;

unint8 com_data,untemp,temp;

unint8 respond;

//

void delayNOP()

{int i;

for(i=0;i<7;i++)

{_nop_();

_nop_();

_nop_();

_nop_();

}}

//

//

// 毫秒级延时子程序

//

void delay_ms(unsigned char ms)

{unsigned char i,j;

while(ms--)

{for(i = 0; i< 115; i++);

}}

//

//

//5us级延时程序

//

void delay_us()

{ char i,j;

for(j=0;j<7;j++)

{i--;

i--;

i--;

i--;

i--;

i--;}

}//

//

//

//

//收发信号检测,数据读取

//

char receive()

{unint8 i;

ST=0;

com_data=0;

for(i=0;i<=7;i++)

{respond=2;

while((!TRH)&&respond++);

delay_us();

delay_us();

delay_us();

if(TRH)

{temp=1;

respond=2;

while((TRH)&&respond++);

}else

temp=0;

com_data<<=1;

com_data|=temp;

}return(com_data);

}//

//

//湿度读取子程序

//温度高8位== TL_data

//温度低8位== TH_data

//湿度高8位== RH_data

//湿度低8位== RH_data

//校验 8位 == CK_data

//调用的程序有 delay();, Delay_5us();,RECEIVE();

//

void read_TRH()

{//主机拉低18ms

TRH=0;

delay_ms(18);

TRH=1;

//DATA总线由上拉电阻拉高 主机延时20us

delay_us();

delay_us();

delay_us();

delay_us();

//delay_us();

//delay_us();delay_us();delay_us();delay_us();

//主机设为输入 判断从机响应信号

TRH=1;

//判断DHT11是否有低电平响应信号 如不响应则跳出,响应则向下运行

if(!TRH)

{respond=2;

//判断DHT11发出 80us 的低电平响应信号是否结束

while((!TRH)&& respond++);

respond=2;

//判断从机是否发出 80us 的高电平,如发出则进入数据接收状态

while(TRH && respond++);

//数据接收状态

RH_temp = receive();

RL_temp = receive();

TH_temp = receive();

TL_temp = receive();

CK_temp = receive();

TRH=1;ST=1;

//数据校验

untemp=(RH_temp+RL_temp+TH_temp+TL_temp);

if(untemp==CK_temp)

{RH_data = RH_temp;

RL_data = RL_temp;

TH_data = TH_temp;

TL_data = TL_temp;

CK_data = CK_temp;

}}

//湿度整数部分

str1[0] = (char)(0X30+RH_data/10);

str1[1] = (char)(0X30+RH_data%10);

str1[2] = 0x2e; //小数点

//湿度小数部分

str1[3] = (char)(0X30+RL_data/10);

str1[5] = 0X25; //"%"

str1[6] = 0X52; //"R"

str1[7] = 0X48; //"H"

//温度整数部分

str2[0] = (char)(0X30+TH_data/10);

str2[1] = (char)(0X30+TH_data%10);

str2[2] = 0x2e; //小数点

//温度小数部分

str2[3] = (char)(0X30+TL_data/10);

str2[5] = 0X27; //"'"

str2[6] = 0X43; //"C"

}void disp(num)

{int i=1000;

unsigned char a,b,c;

while(i>0)

{i--;

a=b=c=0;

a = num/100;

b = (num%100)/10;

c = (num%100)%10;

led1 = 1;

led2 = 0;

led3 = 0;

P1 = led[a];

delay_ms(10);

led1 = 0;

led2 = 1;

led3 = 0;

P1 = led[b];

delay_ms(10);

led1 = 0;

led2 = 0;

led3 = 1;

P1 = led[c];

delay_ms(10);

}}

//

//主函数

//TH,TL,RH,RL分别代表温湿度的整数和小数部分

//

void main()

{unsigned char i,m;

while(1)

{read_TRH();

if (RH_data>30)

{sw = 1;

}else

{sw = 0;

}disp(RH_data);

}}

DHT11温湿度传感器

用户MCU发送一次开始信号后——》DHT11从低功耗模式转换到高速模式

等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,

采集数据后转换到低速模式

总线空闲状态为高电平

主机把总线拉低(大于18毫秒,保证DHT11能检测到)等待DHT11响应,

DHT11接收到主机的开始信号后,等待主机开始信号结束(主机拉高并延时等待),然后发送80us低电平响应信号.

主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,(如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.)

主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。

数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”

所得结果的末8位。

dht11温湿度传感器

DHT11是一款湿温度一体化的数字传感器。该传感器包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接,通过单片机等微处理器简单的电路连接就能够实时的采集本地湿度和温度。

dht11数据格式

DHT11与单片机之间能采用简单的单总线进行通信,仅仅需要一个TO口,传感器内部湿度和温度数据40Bit的数据一次性传给单片机,数据采用校验和方式进行校验,有效的保证数据传输的准确性,DHT11功耗很低,5V电源电压下,工作平均电流0.5mA。

DHT11数字湿温度传感器采用单总线数据格式,其数据包由5Byte(40Bit)组成,数据分小数部分和整数部分,一次完整的数据传输为40bit,高位先出,DHT11的数据格式为:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和,其中校验和数据为前四个字节相加。

大学生开学时间_2024大学生开学时间

2023年大学生开学时间表 楚雄师范学院:又是一所放时间不早,开学时间也不早的大学,2022年1月10日开始放,直到2022年3月5日迎来开学,寒时长一共48天。 义务教育阶段:2023年1月7日(星期六)至···

梦见自己的手镯断了什么意思_做梦自己手镯断

梦见金手镯被人弄断了的预兆 梦见手镯,是爱人或朋友送给你的礼物,表示你的家庭生活美满。而如果梦到手镯丢了,表示你将会碰到各种损失,让人懊恼。如果梦中的手镯是定情之物,如果弄丢···

土地资源管理 土地资源管理考研学校排名

如何学好土地资源管理。我需要一个真正前辈来指点一下。 除此之外,无论文还是理,土地资源管理的学生一定要注意: 你要正确认识你的学校的这个专业: 土地资源管理 土地资源管理考研学校···