找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3017|回复: 9
收起左侧

DHT11温湿度传感器测得的温湿度都是00?求解答

[复制链接]
ID:840436 发表于 2021-3-17 20:10 | 显示全部楼层 |阅读模式
1黑币
42f12701e8508501254178273c26032.jpg
附代码
#include <reg52.h>
#include <intrins.h>
#include <absacc.h>
#include <math.h>

#define uchar unsigned char
#define uint unsigned int

//定义四个输出端口
sbit Led_jiashi=P3^0;                //加湿
sbit Led_qushi=P3^1;                //去湿
sbit Led_jiangwen=P3^2;                //降温
sbit Led_shengwen=P3^3;                //升温
//定义三个设置按键
sbit Key_SET = P1^2;
sbit Key_ADD = P1^3;
sbit Key_SUB = P1^4;
sbit Key_OK  = P1^5;
//定义24C02数据口
sbit SCL = P1^0;
sbit SDA = P1^1;
//定义DHT11数据口
sbit DATA = P1^6;
sbit buzz=P3^5;

//定义LCD1602端口
sbit E=P0^5;                //1602使能引脚
sbit RW=P0^6;                //1602读写引脚        
sbit RS=P0^7;                //1602数据/命令选择引脚
//定义全局变量
uchar U8FLAG,U8temp,U8comdata,U8RH_data_H_temp,U8RH_data_L_temp,U8T_data_H_temp,U8T_data_L_temp,U8checkdata_temp;
uchar U8RH_data_H,U8RH_data_L,U8T_data_H,U8T_data_L,U8checkdata;
//----温度高8位== U8T_data_H------
//----温度低8位== U8T_data_L------
//----湿度高8位== U8RH_data_H-----
//----湿度低8位== U8RH_data_L-----
//----校验 8位 == U8checkdata-----
uchar Mode,humidity,temperature;
char TH,TL,HH,HL;
bit bdata FlagStartRH,hot,cold,humid,dry,BJ;

//定时器0初始化
void Timer0_Init()
{
        ET0 = 1;        //允许定时器0中断
        TMOD = 0x11;       //定时器工作方式选择
        TL0 = 0xb0;     
        TH0 = 0x3c;     //定时器赋予初值
        TR0 = 1;        //启动定时器
}

//定时器0中断
void Timer0_ISR (void) interrupt 1 using 0
{
        uchar RHCounter;
        TL0 = 0xb0;
        TH0 = 0x3c;     //定时器赋予初值
        RHCounter++;
        if(RHCounter%10==0&&BJ==1)
        buzz=!buzz;
        else if(BJ==0)
        buzz=1;
        //每2秒钟启动一次温湿度转换
    if (RHCounter >= 40)
    {
       FlagStartRH = 1;
           RHCounter = 0;
    }
}

/*********************************
      BASE  DRIVE
**********************************/
void DELAY(unsigned int t)
{
        while(t!=0)
        t--;
}

/******************************
      IIC  DRIVE
******************************/
void IICStart(void)
{
     SCL=0;  
          DELAY(1);
     SDA=1; SCL=1; DELAY(1);
     SDA=0; DELAY(1);
     SCL=0;
}

void IICStop(void)
{
         SDA=0;SCL=1; DELAY(1);
     SDA=1; DELAY(1);
     SCL=0;         
}
void SEND0(void)
{
        SDA=0;
        SCL=1;
        DELAY(1);
        SCL=0;
}

void SEND1(void)
{
        SDA=1;
        DELAY(1);
        SCL=1;
        DELAY(1);
        SCL=0;
}

bit Check_Ack(void)
{
        unsigned char errtime=250;
        DELAY(1);
        SCL=1;
        DELAY(1);
        CY=SDA;
        while(CY)
        {
                errtime--;
                CY=SDA;
                if (!errtime)
                {
                        IICStop();
                        return 1;
                }
        }
        DELAY(1);
        SCL=0;
        return 0;
}

void Write_byte(unsigned char dat)
{
    unsigned char i;
        for(i=0;i<8;i++)
        {        
                if((dat<<i)&0x80)
                SEND1();
                else
                SEND0();
        }
}

unsigned char Read_byte(void)
{
        unsigned char i,temp=0;     
        for(i=0;i<8;i++)
        {
        SDA=1;
            SCL=1;
            DELAY(1);  
                if(SDA==1)
                {
                        temp=temp<<1;
                        temp=temp|0x01;
                }
                else
                temp=temp<<1;
                 SCL=0;        
          }
          return temp;
}

/************************************
      EEPROM  DRIVE
          Addr:from 0x00-->
*************************************/
unsigned char rdeeprom(unsigned char addr)
{
        unsigned char temp=0;
                bit flag=0;
                IICStart();
                Write_byte(0xa0);
        Check_Ack();
                Write_byte(addr);
                Check_Ack();
                IICStart();
                Write_byte(0xa1);
                Check_Ack();
                temp=Read_byte();
                SEND1();
                IICStop();
             return temp;   
}  


void wrteeprom(unsigned char addr,unsigned char dat)
{
               IICStart();
                Write_byte(0xa0);
                Check_Ack();
                Write_byte(addr);
                Check_Ack();
                Write_byte(dat);
                Check_Ack();
                IICStop();
}


void Delay1(uint j)
{
        unsigned char i;
        i = 47;
        while(j--)
  {         
          _nop_();         
          while (--i);
  }
}

void  Delay_10us(void)
{
        unsigned char i;
        _nop_();
        i = 2;
        while (--i);
}        

void  COM(void)
{
    uchar i;
    for(i=0;i<8;i++)           
    {
              U8FLAG=2;
                   while((!DATA)&&U8FLAG++);
                Delay_10us();
                Delay_10us();
                Delay_10us();
                  U8temp=0;
        if(DATA)U8temp=1;
                    U8FLAG=2;
                while((DATA)&&U8FLAG++);
                   //超时则跳出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();
//--------------------------------
uchar RH(void)
{
        
    //主机拉低20ms
  DATA=0;
        Delay1(20);  //2000us
        
        DATA=1;
        //总线由上拉电阻拉高 主机延时20us
        Delay_10us();
        Delay_10us();
        Delay_10us();
        Delay_10us();
        //主机设为输入 判断从机响应信号
        DATA=1;
        //判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行         
        if(!DATA)                 //T !         
        {
               

               
            U8FLAG=2;
            
                //判断从机是否发出 80us 的低电平响应信号是否结束         
            while((!DATA)&&U8FLAG++);
            U8FLAG=2;
            
                //判断从机是否发出 80us 的高电平,如发出则进入数据接收状态
            while((DATA)&&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;
            DATA=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;
            }
                return 1;
        }
        else   //传感器不响应
        {
           return 0;
        }
}

/********************************************************************
* 文件名  : 液晶1602显示.c
* 描述    :  该程序实现了对液晶1602的控制。
***********************************************************************/


/********************************************************************
* 名称 : delay()
* 功能 : 延时,延时时间大概为140US
***********************************************************************/

void delay()
{
        int i,j;
        for(i=0; i<=10; i++)
        for(j=0; j<=2; j++);
}         
        
/********************************************************************
* 名称 : enable(uchar del)
* 功能 : 1602命令函数
* 输入 : 输入的命令值
* 输出 : 无
***********************************************************************/

void enable(uchar del)
{
        delay();
        RS = 0;
        RW = 0;
        E = 1;
        P2 = del;
        delay();
        E = 0;
        delay();
}

/********************************************************************
* 名称 : write(uchar del)
* 功能 : 1602写数据函数
* 输入 : 需要写入1602的数据
* 输出 : 无
***********************************************************************/

void write(uchar del)
{
        delay();
        RS = 1;
        RW = 0;
        E = 1;
        P2 = del;
        delay();
        E = 0;
        delay();
}

/********************************************************************
* 名称 : L1602_init()
* 功能 : 1602初始化
* 输入 : 无
* 输出 : 无
***********************************************************************/
void L1602_init(void)
{
        
        enable(0x38);
        delay();
        enable(0x38);
        delay();
        enable(0x38);
        delay();
        enable(0x38);
        enable(0x08);
        enable(0x01); //清屏要放在最后
        enable(0x06);
        delay();
        enable(0x0C);
        enable(0x01);
        delay();
}

/********************************************************************
* 名称 : L1602_char(uchar hang,uchar lie,char sign)
* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符显示"b" ,调用该函数如下
                 L1602_char(1,5,'b')
* 输入 : 行,列,需要输入1602的数据
* 输出 : 无
***********************************************************************/
void L1602_char(uchar hang,uchar lie,char sign)
{
        uchar a;
        if(hang == 1) a = 0x80;
        if(hang == 2) a = 0xc0;
        a = a + lie - 1;
        enable(a);
        write(sign);
}

/********************************************************************
* 名称 : L1602_string(uchar hang,uchar lie,uchar *p)
* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,调用该函数如下
                  L1602_string(1,5,"ab cd ef;")
* 输入 : 行,列,需要输入1602的数据
* 输出 : 无
***********************************************************************/
void L1602_string(uchar hang,uchar lie,uchar *p)
{
        uchar a;
        if(hang == 1) a = 0x80;
        if(hang == 2) a = 0xc0;
        a = a + lie - 1;
        enable(a);
        while(1)
        {
                if(*p == '\0') break;
                write(*p);
                p++;
        }
}

//显示整型的温湿度数据用,共占用4位,其中一位符号位
void L1602_int(uchar hang, uchar lie, int num)
{
   uint temp;
   uint gewei,shiwei,baiwei,sign;
   if (num >= 0)
   sign = 0;
   else
   sign = 1;
   temp = abs(num);
   baiwei = temp / 100;
   temp = temp - baiwei*100;
   shiwei = temp / 10;
   gewei = temp - shiwei*10;
   num = abs(num);
   if (num>=100)
   {
   //   L1602_char(hang, lie+1, baiwei+48);  
          L1602_char(hang, lie+2, shiwei+48);  
          L1602_char(hang, lie+3, gewei+48);  
   }
   else if (num>=10)
   {
      if (sign == 1)           
          L1602_char(hang, lie+1, '-');
          L1602_char(hang, lie+2, shiwei+48);  
      L1602_char(hang, lie+3, gewei+48);
   }
   else
   {
      if (sign == 1)           
          L1602_char(hang, lie+2, '-');
          else
          L1602_char(hang, lie+2, ' ');
      L1602_char(hang, lie+3, gewei+48);  
   }
}

void display()
{
        if(Mode==0)
        {
                L1602_int(1,3,temperature);
                L1602_char(1,7,0xdf);
                L1602_int(1,12,humidity);

                if(hot==1&&cold==0&&humid==0&&dry==0)
                {L1602_string(2,1," It's very hot! ");BJ=1;}
                else if(hot==1&&cold==0&&humid==1&&dry==0)
                {L1602_string(2,1," Hot and humid! ");BJ=1;}
                else if(hot==1&&cold==0&&humid==0&&dry==1)
                {L1602_string(2,1,"  Hot and dry!  ");BJ=1;}
                else if(hot==0&&cold==1&&humid==0&&dry==0)
                {L1602_string(2,1," It's very cold!");BJ=1;}
                else if(hot==0&&cold==1&&humid==1&&dry==0)
                {L1602_string(2,1," Cold and humid!");BJ=1;}
                else if(hot==0&&cold==1&&humid==0&&dry==1)
                {L1602_string(2,1,"  Cold and dry! ");BJ=1;}
                else if(hot==0&&cold==0&&humid==1&&dry==0)
                {L1602_string(2,1,"It's very humid!");BJ=1;}
                else if(hot==0&&cold==0&&humid==0&&dry==1)
                {L1602_string(2,1," It's very dry! ");BJ=1;}
                else if(hot==0&&cold==0&&humid==0&&dry==0)
                {L1602_string(2,1,"Good environment");BJ=0;}
        }                                                                          
}

/***按键函数***/
void KEY()
{
        if(Key_SET==0)
        {
                Delay1(200);
                if(Key_SET==0)
                {
                        Mode++;
                        TR0=0;
                        Led_shengwen=1;
                        Led_jiangwen=1;
                        Led_jiashi=1;
                        Led_qushi=1;
                        hot=0;
                        cold=0;
                        humid=0;
                        dry=0;
                        if(Mode==1)
                        {
                                L1602_string(1,1," TH:    C HH:  %");
                                L1602_char(1,8,0xdf);
                                L1602_string(2,1," TL:    C HL:  %");
                                L1602_char(2,8,0xdf);
                                L1602_int(1,4,TH);
                                L1602_int(1,12,HH);
                                L1602_int(2,4,TL);
                                L1602_int(2,12,HL);
                                enable(0x80+6);
                                enable(0x0f);
                        }
                        else if(Mode==2)
                        {
                                enable(0x80+0x40+6);
                                enable(0x0f);
                        }
                        else if(Mode==3)
                        {
                                enable(0x80+14);
                                enable(0x0f);
                        }
                        else if(Mode==4)
                        {
                                enable(0x80+0x40+14);
                                enable(0x0f);
                        }
                        else if(Mode>=5)
                        {
                                Mode=1;
                                enable(0x80+6);
                                enable(0x0f);
                        }
                        while(!Key_SET);
                }
        }
        else if(Key_ADD==0)
        {
                Delay1(200);
                if(Key_ADD==0)
                {
                        if(Mode==1)
                        {
                                TH++;
                                if(TH>=100)
                                TH=99;
                                L1602_int(1,4,TH);
                                enable(0x80+6);
                                wrteeprom(0,TH);
                        }
                        else if(Mode==2)
                        {
                                TL++;
                                if(TL>=TH)
                                TL=TH-1;
                                L1602_int(2,4,TL);
                                enable(0x80+0x40+6);
                                wrteeprom(1,TL);
                        }
                        else if(Mode==3)
                        {
                                HH++;
                                if(HH>=100)
                                HH=99;
                                L1602_int(1,12,HH);
                                enable(0x80+14);
                                wrteeprom(2,HH);
                        }
                        else if(Mode==4)
                        {
                                HL++;
                                if(HL>=HH)
                                HL=HH-1;
                                L1602_int(2,12,HL);
                                enable(0x80+0x40+14);
                                wrteeprom(3,HL);
                        }
                        while(!Key_ADD);
                }
        }
        else if(Key_SUB==0)
        {
                Delay1(200);
                if(Key_SUB==0)
                {
                        if(Mode==1)
                        {
                                TH--;
                                if(TH<=TL)
                                TH=TL+1;
                                L1602_int(1,4,TH);
                                enable(0x80+6);
                                wrteeprom(0,TH);
                        }
                        else if(Mode==2)
                        {
                                TL--;
                                if(TL<=0)
                                TL=0;
                                L1602_int(2,4,TL);
                                enable(0x80+0x40+6);
                                wrteeprom(1,TL);
                        }
                        else if(Mode==3)
                        {
                                HH--;
                                if(HH<=HL)
                                HH=HL+1;
                                L1602_int(1,12,HH);
                                enable(0x80+14);
                                wrteeprom(2,HH);
                        }
                        else if(Mode==4)
                        {
                                HL--;
                                if(HL<=0)
                                HL=0;
                                L1602_int(2,12,HL);
                                enable(0x80+0x40+14);
                                wrteeprom(3,HL);
                        }
                        while(!Key_SUB);
                }
        }
        if(Key_OK==0&&Mode!=0)
        {
                Delay1(200);
                if(Key_OK==0)
                {
                        L1602_string(1,1,"Tem:   C Hum:  %");
                        L1602_string(2,1,"Good environment");
                        Mode=0;
                        TR0=1;
                        enable(0x0c);
                        while(Key_OK==0);
                }
        }
}

//数据初始化
void Data_Init()
{
   Led_qushi = 1;
   Led_jiashi=1;
   Led_jiangwen = 1;
   Led_shengwen = 1;
}

void main()
{
    uint i, j, testnum;

    EA = 0;

        Timer0_Init();  //定时器0初始化

    Data_Init();
        EA = 1;

        L1602_init();
        L1602_string(1,1," Welcome to T&H ");
        L1602_string(2,1," Control System!");
        //延时
        for (i=0;i<1000;i++)
           for (j=0;j<100;j++)
           {;}
            /***载入温度上限和湿度上限设定值***/
        TH=rdeeprom(0);         
        Delay1(20);                 //加延时可以存取稳定
        TL=rdeeprom(1);
        Delay1(20);
        HH=rdeeprom(2);
        Delay1(20);
        HL=rdeeprom(3);
        Delay1(20);
                 
        if(TH<=0&&TL<=0&&HH<=0&&HL<=0)
        {
                wrteeprom(0,30);
                Delay1(20);                 //加延时可以存取稳定
                TH=rdeeprom(0);        
                Delay1(20);                 //加延时可以存取稳定

                wrteeprom(1,20);
                Delay1(20);                 //加延时可以存取稳定
                TL=rdeeprom(1);
                Delay1(20);                 //加延时可以存取稳定

                wrteeprom(2,60);
                Delay1(20);                 //加延时可以存取稳定
                HH=rdeeprom(2);
                Delay1(20);                 //加延时可以存取稳定

                wrteeprom(3,50);
                Delay1(20);                 //加延时可以存取稳定
                HL=rdeeprom(3);
        }
    //清屏
        L1602_string(1,1,"                ");
        L1602_string(2,1,"                ");
    L1602_string(1,1,"Tem:   C Hum:  %");
        L1602_string(2,1,"Good environment");

        while(1)
        {

                 if (FlagStartRH == 1)         //温湿度转换标志检查
                 {
                     TR0 = 0;
             testnum = RH();
                          FlagStartRH = 0;
                         TR0 = 1;
                         humidity = U8RH_data_H;         //读出温湿度,只取整数部分
                         temperature = U8T_data_H;

                        
                         if(Mode==0)                //温湿度控制
                         {
                                 if (temperature > TH)
                                {
                                        Led_jiangwen = 0;
                                        hot=1;
                                        Led_shengwen = 1;
                                        cold=0;
                        //                BJ=1;
                                }
                                else if(temperature<TL)
                                {
                                        Led_shengwen = 0;
                                        cold=1;
                                        Led_jiangwen = 1;
                                        hot=0;
                                        buzz=0;
                        //                BJ=1;
                                }                              
                                else
                                {
                                        Led_jiangwen=1;
                                        Led_shengwen=1;
                                        hot=0;
                                        cold=0;
                                        buzz=1;
                                }
                                if (humidity > HH)
                                {
                                        Led_qushi = 0;
                                        humid=1;
                                        Led_jiashi = 1;
                                        dry=0;
                        //                BJ=1;
                                }
                                else if(humidity<HL)
                                {
                                        Led_jiashi = 0;
                                        dry=1;
                                        Led_qushi = 1;
                                        humid=0;
                        //                BJ=1;
                                }               
                                else
                                {
                                        Led_qushi=1;
                                        Led_jiashi=1;
                                        humid=0;
                                        dry=0;
                                }        
                         }
                         else
                         {
                                 Led_shengwen=1;
                                Led_jiangwen=1;
                                Led_jiashi=1;
                                Led_qushi=1;
                                hot=0;
                                cold=0;
                                humid=0;
                                dry=0;
                                BJ=0;
                         }        
                }
                display();
                KEY();
        }        
}

最佳答案

查看完整内容

控制程序 1.单字节采集 void COM(void) { U8 i; for(i=0;i
回复

使用道具 举报

ID:372579 发表于 2021-3-17 20:10 来自手机 | 显示全部楼层
控制程序 1.单字节采集  void  COM(void) {         U8 i;                         for(i=0;i<8;i++)                    {                 U8FLAG=2;                         while((!P2_0)&&U8FLAG++);                 Delay_10us();                 Delay_10us();                 Delay_10us();                 U8temp=0;                  if(P2_0)U8temp=1;                         U8FLAG=2;                  while((P2_0)&&U8FLAG++);                 //超时则跳出for循环                                    if(U8FLAG==1)break;                 //判断数据位是0还是1                                   // 如果高电平高过预定0高电平值则数据位为 1                            U8comdata<<=1;                  U8comdata|=U8temp;        //0          } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2.完整一次数据采集  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;                  }          }/ } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 3.获取DHT11数据  void GetTemp1(void) {         //------------------------          //调用温湿度读取子程序                  RH();          //串口显示程序           //--------------------------         Send_string("Humidity:");                 str[0]=U8RH_data_H/10+0x30;                 str[1]=U8RH_data_H%10+0x30;                 str[2]='.';                 str[3]=U8RH_data_L/10+0x30;                 str[4]=U8RH_data_L%10+0x30;                 str[5]='\0';                 Send_string(str);                 Send_string("%\r\n");                                  Send_string("Temperature:");                 str[0]=U8T_data_H/10+0x30;                 str[1]=U8T_data_H%10+0x30;                 str[2]='.';                 str[3]=U8T_data_L/10+0x30;                 str[4]=U8T_data_L%10+0x30;                 str[5]='\0';                 Send_string(str);                 Send_string("℃\r\n"); }  试下这个
回复

使用道具 举报

ID:420836 发表于 2021-3-18 04:49 | 显示全部楼层
只需编写一个简单的测试代码即可检查DHT11传感器是否正常工作。
回复

使用道具 举报

ID:372579 发表于 2021-3-18 11:05 来自手机 | 显示全部楼层
给你一个参考
回复

使用道具 举报

ID:840436 发表于 2021-3-19 21:33 | 显示全部楼层
TTQ001 发表于 2021-3-18 04:49
只需编写一个简单的测试代码即可检查DHT11传感器是否正常工作。

感谢,已解决
回复

使用道具 举报

ID:840436 发表于 2021-3-19 21:33 | 显示全部楼层
aide51 发表于 2021-3-18 11:06
控制程序 1.单字节采集  void  COM(void) {         U8 i;                         for(i=0;i

感谢,已解决
回复

使用道具 举报

ID:899490 发表于 2021-4-1 13:59 | 显示全部楼层
楼主你好,请问你是怎么解决的,方便告诉我一下吗
回复

使用道具 举报

ID:899490 发表于 2021-4-1 14:04 | 显示全部楼层
帖主你好,请问问题是怎么解决的,我也在困惑一样的问题
回复

使用道具 举报

ID:948327 发表于 2022-5-20 20:56 | 显示全部楼层
您好,我想请问以下你这个温湿度显示都是0的问题是怎么解决的呀?我在设计的过程中也遇到了这种问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表