SHT11程序代码_第1页
SHT11程序代码_第2页
SHT11程序代码_第3页
SHT11程序代码_第4页
SHT11程序代码_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#ifndef _SHT11_H_#define _SHT11_H /*SHT11 相关命令*/#define TEM_TEST#define HUM_TEST#define REG_READ#define REG_WRITE#define FUNCTION_SET0x03温度检测命令0x05湿度检测命令0x07读寄存器0x06写寄存器0x01设置SHT11的工作精度为8位/湿度12位温度 /*SHT11 端口定义*/ sbit SHT11_DATA=P。;sbit SHT11_SCK=卩2人2;/显示温度位置的标志/显示湿度位置的标志uchar flag_tempeture=0;uchar

2、flag_humidity=0;uchar code str1= 0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00;/ 温度图标 uchar code str6_sht11=%RH;uchar code str4_sht11=humi=;uchar code str2_sht11=temp=;uchar code str7_sht11= ; /清除没不要的显示/*函数名称 :Delay() 函数功能 :SHT11 内部延时*/ void Delay() ;/*函数名称 :Delay_Ms()函数功能 :SHT11 检测等待延时函数说明 :11ms/55ms/210

3、ms 分别对应 8位/12位/14位 测量结果对应的形参为 N 则延时 Nms */ void Delay_Ms(uint ms)uint i,j;for(i=ms;i0;i-) for(j=112;j0;j-);/* 函数功能 :SHT11 启动时序*/ void SHT11_Start()SHT11_SCK=1;SHT11_DATA=1;Delay();SHT11_DATA=0;Delay();SHT11_SCK=0;Delay();SHT11_SCK=1;Delay();SHT11_DATA=1;/*函数名称: SHT11_Sendbyte(uchar dat) 函数功能 : 向 SHT

4、11 发送 8bite 数据*/void SHT11_Sendbyte(uchar dat) uchar i;SHT11_SCK=0;Delay();for(i=0;i8;i+)if(dat&0x80)SHT11_DA TA=1;Delay(); elseSHT11_DA TA=0;Delay();dat=dat1;SHT11_SCK=1;Delay();SHT11_SCK=0;/* 函数名称 SHT11_Answer() : 函数功能 :检测 SHT11 的响应信号 (在第九个时钟周期 ) */ void SHT11_Answer()SHT11_SCK=1;Delay();while(SHT

5、11_DATA=1);SHT11_SCK=0;SHT11_DATA=1;/*函数名称: SHT11_Test_Finish() 函数功能 :检测 SHT11 温湿度检测是否完毕*/ void SHT11_Test_Finish()while(SHT11_DATA=1);/* 函数名称: SHT11_Receivebyte() 函数功能 :从 SHT11 接收 8bite 数据*/ uchar SHT11_Receivebyte() uchar i;uchar dat; SHT11_SCK=0;Delay(); for(i=0;i8;i+)SHT11_SCK=1;Delay(); dat=dat

6、2.47V 当位6为1时表明 VDD2.47V 即电量不足位 0 表明当前的测量分辨率当位 0为 1时表明测量精度: 8位/湿度 12位温度 当位 0为0时表明测量精度: 12 位湿度 14位温度 默认为 0*/uchar SHT11_Read_Register(uchar command) uchar dat;SHT11_Start();SHT11_Sendbyte(command);SHT11_Answer();dat=SHT11_Receivebyte();SHT11_End();return(dat);/*函数名称 :SHT11_Measure(uchar command,uint t

7、ime); 函数功能 :设置 SHT11 检测功能 ,并返回相应的检测结果 函数说明 :command 形参用于设定温度检测还是湿度检测 , time 形参用于设定检测过程中的等待时间,以确定检测结果的位数 11ms/55ms/210ms 分别对应 8 位 /12 位/14 位 */uint SHT11_Measure(uchar command,uchar time)uint dat=0;uchar data_high,data_low;SHT11_Start();SHT11_Sendbyte(command);SHT11_Answer();Delay_Ms(time);SHT11_Test

8、_Finish(); data_high=SHT11_Receivebyte(); MCU_Answer(); data_low=SHT11_Receivebyte();SHT11_End();dat=(dat|data_high);dat=(dat100.0)flag_tempeture=1;else if(tempeture10.0)flag_tempeture=1;else flag_tempeture=0;return(tempeture1);/*函数名称 :SHT11_Convert_Humidity(uint dat,float temp)函数功能 :将检测到的数据转化为相应的湿度

9、数据函数说明 : 相对湿度转换公式 RHline=C1+C2*SOrh+C3*SOrh*SOrh( 检测数据的线性化SOrh 为单片机接收到的数据 )RHtrue=(tempeture-25)*(t1+t2*SOrh)+RHline公式中的参数 :C1=-4,C2=0,0405,C3=-0.0000028t1=0.01,t2=0.00008 适用于 12 位测量精度 */float SHT11_Convert_Humidity12bit(uint dat,float temp) float RHline,RHtrue;RHline=-4+0.0405*dat-0.0000028*dat*dat

10、;RHtrue=(temp-25)*(0.01+0.00008*dat)+RHline; if(RHtrue100.0)flag_tempeture=1;else flag_tempeture=0;return(tempeture1);*/ /*函数名称 :SHT11_Convert_Humidity8bit(uint dat,float temp) 函数功能 :将检测到的数据转化为相应的湿度数据函数说明 : 相对湿度转换公式 RHline=C1+C2*SOrh+C3*SOrh*SOrh( 检测数据的线性化 SOrh 为单片机接收到的数据 )RHtrue=(tempeture-25)*(t1+t2*SOrh)+RHline公式中的参数 :C1=-4,C2=0,648,C3=-0.00072t1=0.01,t2=0.00128适用于 12 位测量精度float SHT11_Convert_Humidity8bit(uint dat,float temp) float RH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论