搜索
bottom↓
回复: 17

老男人成功应用国产温湿度数字探头DHT11成功晒下程序!感谢各位老大的教导!

[复制链接]

出0入0汤圆

发表于 2010-6-1 20:58:13 | 显示全部楼层 |阅读模式
功能:用Mega16读出温湿度数据显示到电脑上。
电路图:略(因为和18B20的连接图完全一样也是单总线,呵呵)
程序:传上来了!
感想:略
全部工程文件, IAR5.4
DHT11.rar(文件大小:29K)

小女子成功应用国产温湿度数字探头DHT11成功秀下板子晒下程序!感谢各位老大的教导!


//DHT11.c
#include "CPU_Config.h"
#include "DHT11.h"

uchar  DHT11T_Data_H, DHT11T_Data_L, DHT11RH_Data_H, DHT11RH_Data_L;

uchar  DHT11_ReadChar(void)
{
   uchar dat=0;
   uint count;     //计数防止死等

   for(uchar i=0;i<8;i++)       
   {
      count=2;
      while((!READ_DHT11)&&count++)    //等待50us低电平结束
         ;
      delay_us(40);     //40us

      dat <<= 1;        //50us低电平+28us高电平表示'0'
      if(READ_DHT11)    //50us低电平+70us高电平表示'1'
         dat |= 1;

      count=2;
      while((READ_DHT11)&&count++)
         ;

      if(count==1)      //超时则跳出for循环
         break;
   }
   return dat;
}

bool DHT11_GetRH(void)
{
   uchar TData_H_temp,TData_L_temp,RHData_H_temp,RHData_L_temp,CheckData_temp;
   uchar checktemp;
   uint count;

   SET_DDR_DHT11;
   CLR_OP_DHT11;
   delay_ms(18);     //主机拉低18ms
   SET_OP_DHT11;
   CLR_DDR_DHT11;
   delay_us(40);     //总线由上拉电阻拉高 主机延时20us
                     //主机设为输入 判断从机响应信号
   //判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行       
   if(!READ_DHT11)
   {
      count=2;
      //判断从机是否发出 80us 的低电平响应信号是否结束       
      while((!READ_DHT11)&&count++)
         ;

      count=2;
      //判断从机是否发出 80us 的高电平,如发出则进入数据接收状态
      while((READ_DHT11)&&count++)
         ;

      RHData_H_temp = DHT11_ReadChar();
      RHData_L_temp = DHT11_ReadChar();
      TData_H_temp = DHT11_ReadChar();
      TData_L_temp = DHT11_ReadChar();
      CheckData_temp = DHT11_ReadChar();

      SET_DDR_DHT11;
      SET_OP_DHT11;

      checktemp = (RHData_H_temp + RHData_L_temp + TData_H_temp + TData_L_temp);
      if (checktemp == CheckData_temp)
      {
         DHT11RH_Data_H = RHData_H_temp;
         DHT11RH_Data_L = RHData_L_temp;
         DHT11T_Data_H = TData_H_temp;
         DHT11T_Data_L = TData_L_temp;
         return true;
      }
   }
   return false;
}

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

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

出0入0汤圆

发表于 2010-6-1 21:16:07 | 显示全部楼层
额,我失意了..倒塌

出0入0汤圆

发表于 2010-6-1 21:49:59 | 显示全部楼层
DHT11在哈口气后,湿度值会不会变成零值?我最近用了一下,发现了上述问题。

出0入0汤圆

发表于 2010-6-1 21:54:47 | 显示全部楼层
DHT11在哈口气后,湿度值会超出量程。我最近用了一下,发现了上述问题。比较郁闷!只能弃之不用!SHT11没有发现该情况。不知道你试过没有?我给奥松电子的技术支持打了电话,他支吾了半天说不出所以然,不过不错的是,他们寄给我两个样品,我明天再试试。

出0入0汤圆

 楼主| 发表于 2010-6-1 21:56:02 | 显示全部楼层
啊, 一样的情况, DHT21也是这情况.

出0入0汤圆

发表于 2010-6-1 23:39:10 | 显示全部楼层
除了这个,还有没有廉价的湿度测量解决方案?

好像湿敏器件是需要用交流来驱动的?

出0入0汤圆

发表于 2010-9-7 13:43:17 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-30 10:12:24 | 显示全部楼层
问个问题

出0入0汤圆

发表于 2010-9-30 10:15:51 | 显示全部楼层
我最近也用玩DHT11传感器,只是我觉得DHT11的输出应该是BCD码,那要它显示的话应该先把读出来的数据变成十进制才对啊,
可是为那样做完之后,发现原本23度的温度,显示只为17~18度了,,,请问只是为什么呢??难道DHT11的输出数据已经是十进制的了??

出0入0汤圆

发表于 2010-9-30 12:35:20 | 显示全部楼层
回复【8楼】skay_mcu
-----------------------------------------------------------------------

就是十进制的!!

出0入0汤圆

发表于 2010-10-4 10:03:51 | 显示全部楼层
回复【9楼】danielmi
-----------------------------------------------------------------------

  应该是16进制吧,可以直接用,因为我们接收数据的时候都是要判断0101的啊,十进制的话应该就不用判断了吧。。?

出0入4汤圆

发表于 2010-10-6 10:46:56 | 显示全部楼层
标记

出0入18汤圆

发表于 2010-10-6 16:46:21 | 显示全部楼层
我看到的资料是  湿敏传感器  是需要交流驱动 的   但是我用万用表 电阻挡测量时 哈气 阻值明显变化  我怀疑 可以用测电阻的方法测量!!!  正当 我准备试试的时候 那玩意 无意间 离奇的坏了 断成2节  悲剧中

出0入0汤圆

发表于 2010-10-15 20:35:14 | 显示全部楼层
为啥我这边湿度一直在10   /21 之间跳动呢?

出0入0汤圆

发表于 2010-10-15 20:49:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-3 14:46:09 | 显示全部楼层
马克

出0入0汤圆

发表于 2012-11-21 12:29:28 | 显示全部楼层
太好了我喜欢

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-7-24 03:19

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

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