搜索
bottom↓
回复: 1

毫无反映的DHT11代码,是不是我理解的太简单了,请大神看看

[复制链接]

出0入0汤圆

发表于 2013-12-9 17:15:45 | 显示全部楼层 |阅读模式
  1. #define DHT_H_1 PORTD|=(1<<PD7)
  2. #define DHT_L_0 PORTD&=~(1<<PD7)
  3. #define DHT_Out_1 DDRD|=(1<<PD7)
  4. #define DHT_in_0 DDRD&=~(1<<PD7)
  5. uchar DHT_Read()
  6. {
  7. uchar i,Data1=0;
  8. for (i=0;i<8;i++)
  9. {
  10.    while(PIND7==0);//等待数据开始的低电平结束
  11.   _delay_us(28); //等待28us
  12.    Data1<<=1;
  13.    
  14.    if (PD7==1)//如果等待28us后 pin7为高电平该信号为1
  15.    {
  16.     Data1|=0x01;
  17.    }
  18.    else
  19.    {
  20.     Data1|=0x00;
  21.    }
  22.    while(PIND7==0);//等待结束低电平结束,以便开始下一个数据的接收
  23. }
  24. return Data1;
  25. }
  26. void DHT_Data()
  27. {
  28.    uchar i;
  29.    DHT_Out_1;//DDR pin7输出
  30.   DHT_L_0; // 把pin7高电平拉低
  31.   _delay_ms(18);//拉低持续2ms,资料上说是拉低大于1ms
  32.    DHT_H_1;//释放pin7
  33.    DHT_in_0;//设置pin7为输入
  34.   DHT_H_1;
  35.    _delay_us(25);//总线由上拉电阻拉高主机延时 >20us等待25us以便DHT应答
  36.   if(PIND7==0)//检测pin7状态。DHT是否拉低PIN7响应
  37.   {  
  38.     while(PIND7==0)//等待DHT拉低PIN7 80us
  39.     while(PIND7==1)//等待DHT释放PIN7 80us
  40.     for (i=0;i<5;i++)//开始数据传输
  41.    {
  42.      TempData[i]=DHT_Read();
  43.     }   
  44.    }
  45. }
复制代码

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2013-12-10 20:27:26 | 显示全部楼层
木有人知道吗?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 23:37

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表