基于单片机SHT11温湿度传感器电路图于程序Word文件下载.docx
- 文档编号:13895091
- 上传时间:2022-10-14
- 格式:DOCX
- 页数:9
- 大小:16.99KB
基于单片机SHT11温湿度传感器电路图于程序Word文件下载.docx
《基于单片机SHT11温湿度传感器电路图于程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机SHT11温湿度传感器电路图于程序Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
***************************/
sbitSHT11_DATA=P3^1;
sbitSHT11_SCK=P3^0;
sbitP33=P3^3;
sbitP32=P3^2;
sbitP36=P3^6;
sbitP37=P3^7;
ucharflag_tempeture=0;
//显示温度位置的标志
ucharflag_humidity=0;
//显示湿度位置的标志
ucharcodestr1[]={0*10,0*06,0*09,0*08,0*08,0*09,0*06,0*00};
//温度图标
ucharcodestr6_sht11[]="
%RH"
;
ucharcodestr4_sht11[]="
humi="
ucharcodestr2_sht11[]="
temp="
ucharcodestr7_sht11[]="
"
//去除没不要的显示
/***************************
函数名称:
Delay()
函数功能:
SHT11部延时
****************************/
voidDelay()
{
;
}
Delay_Ms()
SHT11检测等待延时
函数说明:
11ms/55ms/210ms分别对应8位/12位/14位测量结果
对应的形参为N则延时Nms
voidDelay_Ms(uintms)//ms延时函数(AT89C5111.0592MHz)
uinti;
ucharj;
for(i=0;
i<
ms;
i++)
{
for(j=0;
j<
200;
j++);
102;
}
SHT11启动时序
voidSHT11_Start()
SHT11_SCK=1;
SHT11_DATA=1;
Delay();
SHT11_DATA=0;
SHT11_SCK=0;
/******************************
函数名称:
SHT11_Sendbyte(uchardat)
向SHT11发送8bite数据
******************************/
voidSHT11_Sendbyte(uchardat)
uchari;
8;
if(dat&
0*80)
else
dat=dat<
<
1;
/*********************************
函数名称SHT11_Answer():
检测SHT11的响应信号(在第九个时钟周期)
***********************************/
voidSHT11_Answer()
while(SHT11_DATA==1);
/************************************
SHT11_Test_Finish()
检测SHT11温湿度检测是否完毕
*************************************/
voidSHT11_Test_Finish()
SHT11_Receivebyte()
从SHT11接收8bite数据
ucharSHT11_Receivebyte()
uchardat;
{
if(SHT11_DATA)
dat=dat|0*01;
dat=dat&
0*fe;
//释放数据总线
return(dat);
/***********************************
MCU_Answer()
单片机向SHT11发送应答信号
voidMCU_Answer()
//释放数据总线这条指令非常重要不加的话导致单片机不能读取低8位
SHT11_End()
当接收两个8byte数据后部接收CRC校验码
************************************/
voidSHT11_End()
/*************************************
voidSHT11_Write_Register(ucharmand,uchardat)
函数说明:
向SHT11的状态存放器设置功能
mand为REG_WRITE0*06写存放器
dat为设置SHT11的功能可以设置检测的数据位数
*/
SHT11_Start();
SHT11_Sendbyte(mand);
SHT11_Answer();
SHT11_Sendbyte(dat);
/***************************************
ucharSHT11_Read_Register(ucharmand)
mand为REG_READ0*07//读存放器
返回值为状态存放器的值
位6显示当前检测完一次数据后电源供电情况
当位6为0时说明VDD>
2.47V当位6为1时说明VDD<
2.47V即电量缺乏
位0说明当前的测量分辨率
当位0为1时说明测量精度:
8位/湿度12位温度
当位0为0时说明测量精度:
12位湿度14位温度
默认为0
*******************************************/
dat=SHT11_Receivebyte();
SHT11_End();
SHT11_Measure(ucharmand,uinttime);
设置SHT11检测功能,并返回相应的检测结果
mand形参用于设定温度检测还是湿度检测,
time形参用于设定检测过程中的等待时间,以确定检测结果的位数
11ms/55ms/210ms分别对应8位/12位/14位
****************************************/
uintSHT11_Measure(ucharmand,uchartime)
uintdat=0;
uchardata_high,data_low;
Delay_Ms(time);
SHT11_Test_Finish();
data_high=SHT11_Receivebyte();
MCU_Answer();
data_low=SHT11_Receivebyte();
dat=(dat|data_high);
dat=(dat<
8)|data_low;
/****************************************
Convert_Tempeture12bit(uintdat);
将检测到的数据转化为相应的温度数据
温度转换公式--T=d1+d2*SOt
公式中的参数d1=-40,d2=0.04
适用于12位测量精度
floatSHT11_Convert_Tempeture12bit(uintdat)
floattempeture1;
tempeture1=-40+0.04*dat;
if
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 SHT11 温湿度 传感器 电路图 程序
![提示](https://static.bdocx.com/images/bang_tan.gif)