河南理工大学 2011毕业设计说明书
}
}
dat=dat<<1; SHT11_SCK=1; Delay(); SHT11_SCK=0;
⑹ 检测SHT11的响应信号(在第九个时钟周期) void SHT11_Answer() { }
⑺ 检测SHT11温湿度检测是否完毕 void SHT11_Test_Finish() { }
⑻ “写”程序:向SHT11的状态寄存器设置功能,command为REG_WRITE 0x06写寄存器,dat为设置SHT11的功能,可以设置检测的数据位数
void SHT11_Write_Register(uchar command ,uchar dat) {
SHT11_Start();
SHT11_Sendbyte(command); SHT11_Answer(); SHT11_Sendbyte(dat); SHT11_Answer(); }
while(SHT11_DATA==1); SHT11_SCK=1; Delay();
while(SHT11_DATA==1); SHT11_SCK=0; SHT11_DATA=1;
26
河南理工大学 2011毕业设计说明书
⑼ “读”程序:ommand为REG_READ 0x07//读寄存器,返回值为状态寄存器的值。位6显示当前检测完一次数据后电源供电情况:当位6为0时表明VDD>2.47V 当位6为1时表明VDD<2.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检测功能,并返回相应的检测结果: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_Finish();
data_high=SHT11_Receivebyte(); MCU_Answer();
data_low=SHT11_Receivebyte();
27
河南理工大学 2011毕业设计说明书
SHT11_End(); dat=(dat|data_high); dat=(dat<<8)|data_low; return(dat); }
⑾ 将检测到的数据转化为相应的温度数据:温度转换公式--T=d1+d2*Sot,公式中
的参数d1=-40,d2=0.01适用于14位测量精度
float SHT11_Convert_Tempeture14bit(uint dat) {
float tempeture1; tempeture1=-40+0.01*dat; if(tempeture1>100.0) {
flag_tempeture=1;
}
else if(tempeture1<0.0) {
flag_tempeture=1;
} else {
flag_tempeture=0;
}
return(tempeture1); }
⑿ 将检测到的数据转化为相应的湿度数据:相对湿度转换公式
RHline=C1+C2*SOrh+C3*SOrh*SOrh,
RHtrue=(tempeture-25)*(t1+t2*SOrh)+RHline
式中参数C1=-4,C2=0,0405,C3=-0.0000028,t1=0.01,t2=0.00008;适用于12位测
量精度
28
河南理工大学 2011毕业设计说明书
float SHT11_Convert_Humidity12bit(uint dat,float temp) {
// float RHline,RHtrue;
RHline=-4+0.0405*dat-0.0000028*dat*dat; RHtrue=(temp-25)*(0.01+0.00008*dat)+RHline; if(RHtrue<10.0) { flag_humidity=1;
} else {
flag_humidity=0; }
return(RHtrue); }
29
河南理工大学 2011毕业设计说明书
4、DS1302时钟芯片
DS1302是Dallas公司推出的高性能低功耗涓流充电时钟芯片。可通过简单的串行接口与单片机进行通信,光感应用于智能仪器、单片机系统和家用时钟电路等领域。
4.1 DS1302时钟芯片的简介
DS1302涓流充电计时芯片包含一个实时时钟/日历和31字节的静态RAM。它通过一个简单的串行接口与微处理器进行通信[8]。实时时钟/日历提供秒,分钟,小时,周,日期,月份和年的有关信息。对于少于31天的月份,每月月底的日期是自动调整的,包括对瑞年进行更正,时钟运行可采用24小时制或带AM/PM指示的12小时制。
同步串行通信简化了DS1302与微处理的接口。与时钟/RAM通信只需三根线:RST、I/O(数据线)及SCLK(串行时钟)。时钟/RAM数据的读/写以每次一个字节或多达31个字节的多字节模式传输。DS1302设计为低功耗工作,保持数据和时钟信息的功耗小于1uF。
4.2 引脚
DS1302的引脚(引脚图如图4-1所示)及功能简介如下:
图4-1 DS1302引脚图
第1、2脚:Vcc1、Vcc2电源。 第3脚:RST复位输入端。
30
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库盆花自动浇水系统的设计(7)在线全文阅读。
相关推荐: