找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1629|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

為什么我的DHT11不能對單片機(jī)的信號做出回應(yīng)?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1078664 發(fā)表于 2023-6-7 22:56 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
這是我想用來驗(yàn)證DHT11的反應(yīng)的,理論上來說只要while(LCD_T);能出來就會熄滅led燈,但是實(shí)際情況是一直卡在while里面不出來

單片機(jī)源程序如下:
#include<reg52.h>
#include<intrins.h>


#define u8 unsigned char
#define u16 unsigned int
sbit GREEN  =P2^3;
sbit YELLOW  =P2^4;
sbit RED =P2^5;
sbit LCD_T    =P2^6;


void delay_us(u8 us) {
    while (us--);
}


void delayms(u8 t)//延時
{
                        u8 i;
                        u8 j;
                          for(i=0;i<t;i++)
                            for(j=0;j<124;j++);
}


// 發(fā)送起始信號
void DHT_Start()
        {
                LCD_T=1;
    LCD_T = 0;     // 拉低引腳電平18ms以上
                delayms(30);
    LCD_T = 1;     // 拉高電平20~40us
    delay_us(30);
                while(LCD_T);
                        GREEN=0;
                  RED=0;
}


void main()
{
        delayms(200);
        while(1)
        {
                DHT_Start();
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:123289 發(fā)表于 2023-6-8 08:25 | 只看該作者
這么簡單,走單步調(diào)式一下,一看就明白了。
回復(fù)

使用道具 舉報

板凳
ID:752974 發(fā)表于 2023-6-8 15:38 | 只看該作者
DHT11是單總線,仔細(xì)看看單總線協(xié)議,再寫代碼。
回復(fù)

使用道具 舉報

地板
ID:17647 發(fā)表于 2023-6-8 17:06 | 只看該作者
前面LCD_T = 1; 后面while(LCD_T);咋還能出來
回復(fù)

使用道具 舉報

5#
ID:1082926 發(fā)表于 2023-6-9 00:01 | 只看該作者
請問樓主后來解決了嗎,我也遇到一樣的問題
回復(fù)

使用道具 舉報

6#
ID:747496 發(fā)表于 2023-6-9 00:43 | 只看該作者
檢查數(shù)據(jù)線上的上拉電阻
回復(fù)

使用道具 舉報

7#
ID:1078664 發(fā)表于 2023-6-14 19:44 | 只看該作者
RianYu 發(fā)表于 2023-6-9 00:01
請問樓主后來解決了嗎,我也遇到一樣的問題

算解決了,延時的問題,那個延時和單片機(jī)的hz不統(tǒng)一,改成11.0592MHz后就行了
回復(fù)

使用道具 舉報

8#
ID:1078664 發(fā)表于 2023-6-14 19:45 | 只看該作者
找到了,單片機(jī)內(nèi)設(shè)改成了11.0592MHz就可以接收了
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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