致 谢
本次设计和论文是在导师顾涓涓教授的悉心指导下完成的。非常感谢顾老师的帮助。导师渊博的专业知识,严谨的治学态度和诲人不倦的高尚师德对我影响深远。不仅使我树了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。本论文从选题到完成,每一步都是在导师的指导下完成的,倾注了导师大量的心血。
感谢我的同学和朋友们,感谢你们在我论文写作过程中给予我的鼓励、关心和无私的帮助。这次论文的写作虽然完成了,但是我想对自己说,这不是结束,而是开始,我今后还有很长的人生路要走,我相信,我在这次论文写作过程中所学到的坚持、勇敢、自信将是我在未来人生中积累的宝贵财富。
最后,也向四年来所有教授过我和帮助过我的老师表示感谢,感谢你们对我的耐心教导和大力的帮助。同时感谢所有的答辩老师,在百忙之中抽出时间,对我最后的论文进行指导和评阅。在此,谨向所有老师表示崇高的敬意和衷心的感谢!
汪飞
2015年5月26日于合肥学院
26
附 录
程序代码:
传感器程序:
#include
uchar ucharFLAG,uchartemp;
uchar shidu_shi,shidu_ge,wendu_shi,wendu_ge=4;
uchar ucharT_data_H,ucharT_data_L,ucharRH_data_H,ucharRH_data_L,ucharcheckdata;
uchar
ucharT_data_H_temp,ucharT_data_L_temp,ucharRH_data_H_temp,ucharRH_data_L_temp,ucharcheckdata_temp;
uchar ucharcomdata; //延时函数
void Delay_us(void) //1 us延时 {
MicroWait(1); }
void Delay_10us(void) //10 us延时 {
MicroWait(10);
27
}
void Delay_ms(uint Time)//n ms延时 {
unsigned char i; while(Time--) {
for(i=0;i<100;i++) Delay_10us(); } }
//温湿度传感
void COM(void) // 温湿写入 {
uchar i; for(i=0;i<8;i++) {
ucharFLAG=2;
while((!DATA_PIN)&&ucharFLAG++); Delay_10us(); Delay_10us(); Delay_10us(); uchartemp=0;
if(DATA_PIN)uchartemp=1; ucharFLAG=2;
while((DATA_PIN)&&ucharFLAG++); if(ucharFLAG==1)break; ucharcomdata<<=1; ucharcomdata|=uchartemp; } }
28
void DHT11(void) //温湿传感启动 {
DATA_PIN=0;
Delay_ms(19); //>18MS DATA_PIN=1;
P0DIR &= ~0x80; //重新配置IO口方向 Delay_10us();
Delay_10us(); Delay_10us(); Delay_10us(); if(!DATA_PIN) {
ucharFLAG=2;
while((!DATA_PIN)&&ucharFLAG++); ucharFLAG=2;
while((DATA_PIN)&&ucharFLAG++); COM();
ucharRH_data_H_temp=ucharcomdata; COM();
ucharRH_data_L_temp=ucharcomdata; COM();
ucharT_data_H_temp=ucharcomdata; COM();
ucharT_data_L_temp=ucharcomdata; COM();
ucharcheckdata_temp=ucharcomdata;
DATA_PIN=1;
uchartemp=(ucharT_data_H_temp+ucharT_data_L_temp+ucharRH_data_H_temp+ucharRH_data_L_temp);
if(uchartemp==ucharcheckdata_temp) {
29
ucharRH_data_H=ucharRH_data_H_temp; ucharRH_data_L=ucharRH_data_L_temp; ucharT_data_H=ucharT_data_H_temp; ucharT_data_L=ucharT_data_L_temp; ucharcheckdata=ucharcheckdata_temp; }
wendu_shi=ucharT_data_H/10; wendu_ge=ucharT_data_H; shidu_shi=ucharRH_data_H/10; shidu_ge=ucharRH_data_H; }
else //没用成功读取,返回0 {
wendu_shi=0; wendu_ge=0;
shidu_shi=0; shidu_ge=0; }
P0DIR |= 0x80; //IO口需要重新配置 }
传感器与协调器传输程序: #include \#include \#include \#include \#include \#include \
const cId_t SampleApp_ClusterList[SAMPLEAPP_MAX_CLUSTERS] =
30