dht11.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /****************************************************
  2. *
  3. * DHT11温湿度传感器驱动程序
  4. * 程序作者: 小浩电子科技
  5. * 编写时间: 2015/10/12
  6. * DHT11检测范围:20-90%RH 0-50℃
  7. * 注意事项:DHT11对温湿度采集小数部分为0
  8. *
  9. *****************************************************/
  10. #ifndef __DHT11_H__
  11. #define __DHT11_H__
  12. #include <reg52.h>
  13. #include "intrins.h"
  14. sbit DHT11_PIN=P3^2;
  15. //引脚配置为输出;
  16. #define DHT11_PIN_OUT() { _nop_(); }
  17. //引脚配置为输入;
  18. #define DHT11_PIN_IN() {_nop_(); }
  19. //拉高数据线;
  20. #define DHT11_PIN_H() { DHT11_PIN = 1;_nop_(); }
  21. //拉低数据线;
  22. #define DHT11_PIN_L() { DHT11_PIN = 0; _nop_(); }
  23. /****************************************************
  24. *
  25. * 函数名: dht11_delay_us
  26. * 函数功能:us延时函数
  27. * 函数参数:
  28. * param1: 延时多少us
  29. *
  30. *****************************************************/
  31. void dht11_delay_us(unsigned int n);
  32. /****************************************************
  33. *
  34. * 函数名 : dht11_read_byte
  35. * 函数功能 : 读取DHT11传感器一个字节
  36. * 函数返回值: 成功返回读取值,失败返回100
  37. *
  38. *****************************************************/
  39. unsigned char dht11_read_byte(void);
  40. /************************************************************************
  41. *
  42. * 函数名 : dht11_value
  43. * 函数功能: 获取温湿度数值
  44. * 函数参数:
  45. * param1: 温度值
  46. * param2: 湿度值
  47. * param3: 类型(DHT11_STRING or DHT11_UINT8)
  48. * 返回值: 读取成功返回0,失败返回-1
  49. * 用法举例:
  50. * 例一:
  51. * unsigned char temp , humi;
  52. * char r_val;
  53. * r_val = dht11_value(&temp , &humi , DHT11_UINT8);
  54. *
  55. * 例二:
  56. * unsigned char temp[2],humi[2];
  57. * char r_val;
  58. * r_val = dht11_value(temp , humi , DHT11_STRING);
  59. *
  60. *************************************************************************/
  61. #define DHT11_STRING 1
  62. #define DHT11_UINT8 2
  63. char dht11_value(unsigned char *temp , unsigned char *humi , unsigned char flag);
  64. #endif