dht11.h 2.0 KB

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