仪器社区

求教430单片机读取DHT11温湿度传感器的值,为什么不对呢?

bikvr99173 2013-05-31
#include#defineucharunsignedchar#defineuintunsignedint#defineDATA_INP1DIR|=BIT2;//P1REN|=BIT2;#defineDATA_OUTP1DIR&=~BIT2;//P1REN|=BIT2;#defineS_DATA_HP1OUT... #include #define uchar unsigned char #define uint unsigned int #define DATA_IN P1DIR |= BIT2; //P1REN |=BIT2; #define DATA_OUT P1DIR &=~BIT2; //P1REN |=BIT2; #define S_DATA_H P1OUT |= BIT2; #define S_DATA_L P1OUT &=~BIT2; #define G_DATA P1IN&0X04 uchar value; void main(void) {uchar x;
uchar j,i,temp=0;
WDTCTL=WDTPW+WDTHOLD;
DATA_OUT;
S_DATA_H;

while(1)
{
S_DATA_L;
__delay_cycles(1800); //>18ms
S_DATA_H;
__delay_cycles(50);
DATA_IN;
while(G_DATA!=0); //等待从机拉高
__delay_cycles(65); //80us
for(j=5;j>0;j++)
{
for(i=8;i>0;i--)
{
value<<=1;

while(G_DATA==0); //等待从机数据
temp=0; //短,0
__delay_cycles(40); //40us
while(G_DATA!=0)
temp=1; //长,1
value |=temp;
__delay_cycles(50); //40us
} } } }
评论
全部评论
奈何桥_002
程序的问题,主要是延时时间,不准确时结果肯定不对。
2 0 2013-06-01 0条评论 回复
何66011
请问楼主解决问题没?我也需要一份DHT11的程序,用的是MSP430F149,希望楼主能帮个忙。感激不尽~
16 0 2015-08-05 0条评论 回复
您可能感兴趣的社区主题
加载中...
发布 评论