最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

DHT11数字温湿度传感器(附1602显示程序)已验证ok

来源:动视网 责编:小OO 时间:2025-09-26 05:33:39
文档

DHT11数字温湿度传感器(附1602显示程序)已验证ok

1、DHT11产品概述           DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准
推荐度:
导读1、DHT11产品概述           DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准
1、DHT11产品概述

     

       DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。

2、应用领域 

           ►暖通空调             ►测试及检测设备 

           ►汽车                 ►数据记录器 

           ► 消费品              ►自动控制 

           ►气象站               ►家电 

           ►湿度调节器           ►医疗 

           ►除湿器 应用领域

3、接口说明    

建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻

4、电源引脚 

     DHT11的供电电压为 3-5.5V。传感器上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。

5、串行接口 (单线双向) 

     DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下: 

一次完整的数据传输为40bit,高位先出。 

 数据格式: 

8bit湿度整数数据+8bit湿度小数数据 +8bi温度整数数据+8bit温度小数数据 +8bit校验和 

       数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。

6、封装信息 

7、DHT11引脚说明 

8、DHT11温湿度1602液晶显示程序示例

主程序:

#include

#include

#include

#include

#include

typedef unsigned char U8;           

typedef unsigned int   U16;   

U8 U8FLAG;

U8 U8count,U8temp;

U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;

U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;

U8 U8comdata;

sbit P2_0 = P2^0 ;

sbit P2_1 = P2^1 ;

sbit P2_2 = P2^2 ;

sbit P2_3 = P2^3 ;

unsigned char str1[]="ShiDu:";

unsigned char str2[]="WenDu:";

void Delay(U16 j)

    {      U8 i;

     for(;j>0;j--)

   { 

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

   }

    }

void Delay_10us(void)

      {

        U8 i;

        i--;

        i--;

        i--;

        i--;

        i--;

        i--;

       } 

        void COM(void)

      {    

         U8 i;

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

     {

         U8FLAG=2;

    //----------------------

          P2_1=0 ; //T

          P2_1=1 ; //T

     //---------------------- 

    while((!P2_0)&&U8FLAG++);

    Delay_10us();

    Delay_10us();

   // Delay_10us();

      U8temp=0;

      if(P2_0)U8temp=1;

      U8FLAG=2;

   while((P2_0)&&U8FLAG++);

   

     //----------------------

           P2_1=0 ; //T

           P2_1=1 ; //T

    //----------------------

    //超时则跳出for循环    

    if(U8FLAG==1)break;

    //判断数据位是0还是1 

   // 如果高电平高过预定0高电平值则数据位为 1     

     U8comdata<<=1;

        U8comdata|=U8temp;        //0

      }//rof

    

}

//--------------------------------

//-----湿度读取子程序 ------------

//--------------------------------

//----以下变量均为全局变量--------

//----温度高8位== U8T_data_H------

//----温度低8位== U8T_data_L------

//----湿度高8位== U8RH_data_H-----

//----湿度低8位== U8RH_data_L-----

//----校验 8位 == U8checkdata-----

//----调用相关子程序如下----------

//---- Delay();, Delay_10us();,COM(); 

//--------------------------------

void RH(void)

{

   //主机拉低18ms 

       P2_0=0;

    Delay(180);

    P2_0=1;

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

    Delay_10us();

    Delay_10us();

    Delay_10us();

    Delay_10us();

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

    P2_0=1;

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

    if(!P2_0)   //T !   

    {

    U8FLAG=2;

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

    while((!P2_0)&&U8FLAG++);

    U8FLAG=2;

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

    while((P2_0)&&U8FLAG++);

//数据接收状态   

    COM();

    U8RH_data_H_temp=U8comdata;

    COM();

    U8RH_data_L_temp=U8comdata;

    COM();

    U8T_data_H_temp=U8comdata;

    COM();

    U8T_data_L_temp=U8comdata;

    COM();

    U8checkdata_temp=U8comdata;

    P2_0=1;

//数据校验 

    U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);

    if(U8temp==U8checkdata_temp)

    {

       U8RH_data_H=U8RH_data_H_temp;

       U8RH_data_L=U8RH_data_L_temp;

    U8T_data_H=U8T_data_H_temp;

       U8T_data_L=U8T_data_L_temp;

       U8checkdata=U8checkdata_temp;

    }//fi

    }//fi

}

void main()

{

U8 shidu_shi,shidu_ge,wendu_shi,wendu_ge;

   LCD_init(); 

   delay_nms(2); 

   LCD_write_string(0,LINE1,str1);

   LCD_write_string(0,LINE2,str2);        

while(1)

       RH();

    shidu_shi=0x30+U8RH_data_H/10; 

          shidu_ge=0x30+U8RH_data_H%10; 

         // shidu_xs=0x30+U8RH_data_L/10; 

         wendu_shi=0x30+U8T_data_H/10; 

         wendu_ge=0x30+U8T_data_H%10; 

         //wendu_xs=0x30+U8T_data_L/10; 

      LCD_write_char(6,0,shidu_shi);

         LCD_write_char(7,0,shidu_ge);

   //LCD_write_char(9,0,shidu_xs);

         LCD_write_char(6,1,wendu_shi); 

   LCD_write_char(7,1,wendu_ge);

        //LCD_write_char(9,1,wendu_xs); 

}

}

H 文件 

ifndef  lcd_H

#define lcd_H

#include

#include

/************************************/

//common part 

#define    HIGH       1

#define    LOW        0

#define    TRUE       1

#define    FALSE       0

#define    ZERO       0 

#define    MSB        0x80

#define    LSB        0x01

/************************************/

//lcd part

#define LINE1         0

#define LINE2         1

#define LINE1_HEAD        0x80

#define LINE2_HEAD        0xC0

#define DATA_MODE        0x38

#define OPEN_SCREEN        0x0C

#define DISPLAY_ADDRESS      0x80

#define CLEARSCREEN        LCD_en_com(0x01)

/*************************************/

//change this part at different board

#define LCDIO     P1

sbit LCD1602_RS=P2^4;   

sbit LCD1602_RW=P2^5; 

sbit LCD1602_EN=P2^6; 

/********************************************************************/

void LCD_Read_BF(void)

{

unsigned char read=0; 

LCD1602_RS = LOW;   //RS 0

LCD1602_RW = HIGH;   //RW 1

LCD1602_EN = HIGH;   //EN 1 Read BF

LCDIO = 0xFF;

do{

   read = LCDIO;

}while(read&MSB);

}

void LCD_en_com(unsigned char command)    //写指令

{

LCD_Read_BF(); 

LCD1602_RS = LOW;   //RS 0 

LCD1602_RW = LOW;   //RW 0 

LCD1602_EN = HIGH; //EN --\\|/__ Write command

LCDIO = command;

LCD1602_EN = LOW;

}

void LCD_en_dat(unsigned char dat)   //写数据

{

LCD_Read_BF();

LCD1602_RS = HIGH; //RS 1 

LCD1602_RW = LOW;   //RW 0 

LCD1602_EN = HIGH; //EN --\\|/__ Write data

LCDIO = dat;

LCD1602_EN = LOW;

}

void LCD_set_xy(unsigned char x,unsigned char y)

{

unsigned char address;

if(y == LINE1) 

   address = LINE1_HEAD + x;

else    

   address = LINE2_HEAD + x;

LCD_en_com(address); 

}

void LCD_write_char( unsigned x,unsigned char y,unsigned char dat)

{

LCD_set_xy(x,y); 

LCD_en_dat(dat);

}

void LCD_write_string(unsigned char x,unsigned char y,unsigned char *s)

{

LCD_set_xy(x,y); 

while(*s) 

{

   LCDIO = *s;

   LCD_en_dat(*s);   

   s++;

}

}

void LCD_init(void)

LCD_en_com(DATA_MODE);

//set 8 bit data transmission mode 

LCD_en_com(OPEN_SCREEN);

//open display (enable lcd display)

LCD_en_com(DISPLAY_ADDRESS);

//set lcd first display address 

CLEARSCREEN;

//clear screen

}

#endif

#ifndef DELAY_H

#define DELAY_H

void delay_nms(unsigned int n)      

{

    unsigned int i=0,j=0;

    for (i=n;i>0;i--)

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

}

#endif

文档

DHT11数字温湿度传感器(附1602显示程序)已验证ok

1、DHT11产品概述           DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top