保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

I2C总线数字式温湿度传感器SHT11及其在单片机系统的应用


加上窄缝,同时应避免使传感器在强光或UV下曝晒。

传感器在布线时,SCK和DATA信号平行且相互接近,或信号线长于10cm时,均会产生干扰信息,此时应在两组信号之间放置VDD或GND。

5 具体应用

图5是AT89C2051单片机与SHT11的接口电路。由于AT89C2051不具备I2C总线接口,故使用单片机通用I/O口线来虚拟I2C总线,并利用P1.0来虚拟数据线DATA,利用P1.1口线来虚拟时钟线,并在DATA端接入一只4.7kΩ的上拉电阻,同时,在VDD及GND端接入一只0.1μF的去耦电容。下面给出与上述硬件电路配套的C51应用程序。

#define DATA P1_1

#define SCK P1_0

#define ACK 1

#define noACK 0

#define MEASURE_TEMP 0x03 //测量温度命令

#define MEASURE_HUMI 0x05 //测量湿度命令

//读温湿度数据

char s-measure(unsigned char *p- value, un-signed char *p_checksum, unsigned char mode)

{

unsigned char error=0;

unsigned int i;

s_transstart(); //传输开始

switch(mode){

case

TEMP:error+=s_write_byte(measure_temp);

break;

case

HUMI:error+=s_write_byte(measure_humi);break;

default:break;

}

for(i=0;i<65535;i++) if(DATA==0) break;

if (DATA) reeor+=1;

*(p_value)=s_read_byte(ACK);

*(p_value+1)=s_read_byte(ACK);

*p_checksum=s_read_byte(noACK);

return error;

}

//温湿度值标度变换及温度补偿

void calc_sth15(float *p_humidity,float *p_tempera-ture)

{

const float c1=-4.0;

const float c2=0.0405;

const float c3=-0.0000028;

const float t1=-0.01;

《I2C总线数字式温湿度传感器SHT11及其在单片机系统的应用(第4页)》
本文链接地址:http://www.oyaya.net/fanwen/view/153379.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。