dht11.h 2.1 KB

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