標題:
為什么我的DHT11不能對單片機的信號做出回應?
[打印本頁]
作者:
dwx31
時間:
2023-6-7 22:56
標題:
為什么我的DHT11不能對單片機的信號做出回應?
這是我想用來驗證DHT11的反應的,理論上來說只要while(LCD_T);能出來就會熄滅led燈,但是實際情況是一直卡在while里面不出來
單片機源程序如下:
#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();
}
}
作者:
yzwzfyz
時間:
2023-6-8 08:25
這么簡單,走單步調(diào)式一下,一看就明白了。
作者:
munuc_w
時間:
2023-6-8 15:38
DHT11是單總線,仔細看看單總線協(xié)議,再寫代碼。
作者:
BG6BXN
時間:
2023-6-8 17:06
前面LCD_T = 1; 后面while(LCD_T);咋還能出來
作者:
RianYu
時間:
2023-6-9 00:01
請問樓主后來解決了嗎,我也遇到一樣的問題
作者:
heitudi
時間:
2023-6-9 00:43
檢查數(shù)據(jù)線上的上拉電阻
作者:
dwx31
時間:
2023-6-14 19:44
RianYu 發(fā)表于 2023-6-9 00:01
請問樓主后來解決了嗎,我也遇到一樣的問題
算解決了,延時的問題,那個延時和單片機的hz不統(tǒng)一,改成11.0592MHz后就行了
作者:
dwx31
時間:
2023-6-14 19:45
找到了,單片機內(nèi)設改成了11.0592MHz就可以接收了
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1