|
這是我想用來驗(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();
}
}
|
|