2024年4月28日发(作者:)

基于51单片机SHT11温湿度传感器检测程

序(含电路图)

下面是原理图:

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

下面是源代码:

#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 ;

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;

delay_50us(10);

lcden=0;

delay_50us(2);

}

/********************************************************

12864液晶写数据

********************************************************/

void write_dat(uchar dat)

{