久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4177|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品1区 | 性网站免费| 久久国产精品久久久久 | 久久精品国产一区 | 久久99精品久久久久久国产越南 | 日韩一级黄色毛片 | 天天综合久久网 | av永久免费| 中文字幕第一页在线 | 97超碰人人 | www.操.com| 亚洲欧洲日韩精品 中文字幕 | 欧美亚洲激情 | 成人欧美日韩一区二区三区 | 精品久久久久久久久久久院品网 | 欧美高清性xxxxhd | 少妇一区在线观看 | 精品国产一区探花在线观看 | 久久成人一区 | 欧美日韩中文在线 | 久久久久国产一区二区三区四区 | 欧美日韩综合一区 | 中文字幕av亚洲精品一部二部 | 国产成人精品久久二区二区91 | 免费一区二区三区 | 久久国产成人午夜av影院武则天 | 日本精品视频 | a级在线免费观看 | 福利国产| 在线三级网址 | 鸳鸯谱在线观看高清 | 久久久91 | 国产一区欧美 | 国产在线精品一区二区 | 最新国产视频 | 国产欧美视频一区二区三区 | 爱操av | 黄色国产在线播放 | 成人在线一级片 | 亚洲精品免费视频 | 免费视频一区二区 |