找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1796|回復(fù): 3
收起左側(cè)

單片機(jī)DHT11接收數(shù)據(jù)異常,而且改變數(shù)據(jù)時LCD不會隨之改變?

[復(fù)制鏈接]
ID:1078664 發(fā)表于 2023-6-14 20:16 | 顯示全部樓層 |閱讀模式
第一次顯示時基本沒做什么改變
第一幅.png

但是改變數(shù)據(jù)之后并沒有反應(yīng)
第二幅.png
但是關(guān)閉重開又改變了

第二幅.png
這是與溫濕顯示相關(guān)代碼(還有其他的亂七八糟的代碼太多太雜了,所以就單獨(dú)把DHT11的拿了出來)
void LCD_DIer()//第二行固定符號
{
  LCD_Cursor(1);
        LCD_Charactor("T:");
}

void LCD_WEN()//溫度示數(shù)顯示
{               
        LCD_Data(shuzi[T_H]);
        LCD_Data(shuzi[T_L]);
        LCD_Data(0xdf);
        LCD_Data(0x43);
        LCD_Charactor(" H:");
//        LCD_Data(0x53);//固定S顯示
//        LCD_Data(0x3a);
//        LCD_Data(0xa0);
}

void LED()//濕度警示燈
{
        if((S_L+S_H)>45&&(S_L+S_H)<60)
        GREEN=1;
        if((S_L+S_H)>60)
        YELLOW=1;
        if((S_L+S_H)<45)
        RED=1;
}

void LCD_SHI()//濕度示數(shù)顯示
{
        LCD_Data(shuzi[S_H]);
        LCD_Data(shuzi[S_L]);
        LCD_Data(0x25);
}
void LCD_WENSHI()//溫濕數(shù)據(jù)報警及警示燈
{
  if((S_L+T_H)>=50)//高溫報警
        {
                GREEN=0;
                YELLOW=0;
                RED=1;
                delayms(200);
                RED=0;
                yy=1;
        }
        if((T_L+T_H)<50)
        yy=0;
        if(yy==0)
        LED();
}

void DHT11_start()//溫濕傳輸信號判定(數(shù)據(jù)位移有問題)
{
        u8 i,Temp;//后續(xù)可能要加延時
        for(i=0;i<16;i++)
        {
                while(!LCD_T);
                delayus(30);
                Temp=0;
                if(LCD_T==1)
                        Temp=1;
                //while(LCD_T);
           sum<<=1;
                sum|=Temp;
  }
}

void LCD_Tem()//溫濕開始電信號
{
        u8 i=0;
        LCD_T=1;
        LCD_T=0;
        Delay(200);
        LCD_T=1;
        delayus(80);
        while(LCD_T);
        while(!LCD_T);
        while(LCD_T);
        while(!LCD_T);
        DHT11_start();
        S=sum;
        DHT11_start();
        T=sum;
        DHT11_start();
        res=sum;
}
LCD_T就是DHT11與單片機(jī)連接的端口命名
這個是放在中斷函數(shù)里的將個十位分開的代碼
                if(T_H+T_L+S_H+S_L==res)
                {
                  T_H=(T/10)%10;
                  T_L=T%10;
                  S_H=(S/10)%10;
                  S_L=S%10;
                }

回復(fù)

使用道具 舉報

ID:384109 發(fā)表于 2023-6-14 22:46 | 顯示全部樓層
1602顯示的是ASCII碼,不是數(shù)字
回復(fù)

使用道具 舉報

ID:1078664 發(fā)表于 2023-6-15 18:00 | 顯示全部樓層
人中狼 發(fā)表于 2023-6-14 22:46
1602顯示的是ASCII碼,不是數(shù)字

顯示我做了一個數(shù)組,把1602顯示數(shù)字的的電信號按0-9寫進(jìn)去了
回復(fù)

使用道具 舉報

ID:1089749 發(fā)表于 2023-7-27 01:00 | 顯示全部樓層
你好,請問解決了嗎?
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表