基于51单片机SHT11温湿度传感器检测程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于51单片机SHT11温湿度传感器检测程序(含电路图)
•
下面是原理图:
下面是SHT11与MCU连接的典型电路:
下面是源代码:
view source
print?
001.#include
002.#include
003.
004./******************************************************** 005. 宏定义
006.********************************************************/ 007.#define uint unsigned int
008.#define uchar unsigned char
009.#define noACK 0
010.#define ACK 1
011.#define STATUS_REG_W 0x06
012.#define STATUS_REG_R 0x07
013.#define MEASURE_TEMP 0x03
014.#define MEASURE_HUMI 0x05
015.#define RESET 0x1e
016.
017.enum {TEMP,HUMI};
018.
019.typedef union //定义共用同类型
020.{
021. unsigned int i;
022. float f;
023.} value;
024.
025.
026./******************************************************** 027. 位定义
028.********************************************************/ 029.sbit lcdrs=P2^0;
030.sbit lcdrw=P2^1;
031.sbit lcden=P2^2;
032.sbit SCK = P1^0;
033.sbit DATA = P1^1;
034.
035./******************************************************** 036. 变量定义
037.********************************************************/ 038.uchar table2[]="SHT11 温湿度检测";
039.uchar table3[]="温度为:℃";
040.uchar table4[]="湿度为:";
041.uchar table5[]=".";
042.uchar wendu[6];
043.uchar shidu[6];
044.
045./******************************************************** 046. 1ms延时函数
047.********************************************************/ 048.void delay(int z)
049.{
050. int x,y;
051. for(x=z;x>0;x--)
052. for(y=125;y>0;y--);
053.}
054.
055./******************************************************** 056. 50us延时函数
057.********************************************************/ 058.void delay_50us(uint t)
059.{
060. uint j;
061. for(;t>0;t--)
062. for(j=19;j>0;j--);
063.}
064.
065./******************************************************** 066. 50ms延时函数
067.********************************************************/ 068.void delay_50ms(uint t)
069.{
070. uint j;
071. for(;t>0;t--)
072. for(j=6245;j>0;j--);
073.}
074.
075./******************************************************** 076. 12864液晶写指令
077.********************************************************/ 078.void write_12864com(uchar com)
079.{
080. lcdrs=0;
081. lcdrw=0;
082. delay_50us(1);
083. P0=com;
084. lcden=1;
085. delay_50us(10);
086. lcden=0;