好文档 - 专业文书写作范文服务资料分享网站

基于51单片机SHT11温湿度传感器检测程序(优质参考)

天下 分享 时间: 加入收藏 我要投稿 点赞

基于51单片机SHT11温湿度传感器检测程序(含电路图)

? 下面是原理图:

下面是SHT11与MCU连接的典型电路:

仅供参照! 1

下面是源代码:

#include #include

/******************************************************** 宏定义

********************************************************/ #define uint unsigned int #define uchar unsigned char #define noACK 0 #define ACK 1

#define STATUS_REG_W 0x06 #define STATUS_REG_R 0x07 #define MEASURE_TEMP 0x03 #define MEASURE_HUMI 0x05 #define RESET 0x1e

enum {TEMP,HUMI};

typedef union //定义共用同类型 {

unsigned int i; float f; } value;

/******************************************************** 位定义

********************************************************/ sbit lcdrs=P2^0; sbit lcdrw=P2^1; sbit lcden=P2^2; sbit SCK = P1^0; sbit DATA = P1^1;

/******************************************************** 变量定义

********************************************************/ uchar table2[]=\温湿度检测%uchar table3[]=\温度为: ℃%uchar table4[]=\湿度为:\

仅供参照!

2

uchar table5[]=%uchar wendu[6]; uchar shidu[6];

/******************************************************** 1ms延时函数

********************************************************/ void delay(int z) {

int x,y;

for(x=z;x>0;x--) for(y=125;y>0;y--); }

/******************************************************** 50us延时函数

********************************************************/ void delay_50us(uint t) {

uint j;

for(;t>0;t--)

for(j=19;j>0;j--); }

/******************************************************** 50ms延时函数

********************************************************/ void delay_50ms(uint t) {

uint j;

for(;t>0;t--)

for(j=6245;j>0;j--); }

/******************************************************** 12864液晶写指令

********************************************************/ void write_12864com(uchar com) {

lcdrs=0;

delay_50us(1); P0=com; lcden=1;

仅供参照!

3

7yrxk5fpyf6h1tx45d7638ccg96n4k006yw
领取福利

微信扫码领取福利

微信扫码分享