一棚多温大棚温湿控制(7)

2019-02-20 22:33

新乡学院本科毕业论文(设计)

第4章 软件系统设计

4.1总体设计

图4.1 总体系统流程图

单片机LCD1602 SHT11初始化 延时 SHT11数据采集 单片机处理 LCD1602显示 调控温湿度设备 蜂鸣器 延时

主函数: void main() {

unsigned int temp1,humi1, temp2,humi2;

value humi_val1,temp_val1, humi_val2,temp_val2;//定义两个共同体,一个用于湿度,

28

新乡学院本科毕业论文(设计)

一个用于温度

//float dew_point1 dew_point2; //用于记录露点值 unsigned char error1,error2; //用于检验是否出现错误 unsigned char checksum1, checksum2;//CRC uchar wendu[6]; //用于记录温度 uchar shidu[6]; //用于记录湿度

LCD_Initial(); //初始化液晶

GotoXY(0,0); //选择温度显示位置 Print(\ C\ //4格空格 GotoXY(10,0); //选择湿度显示位置 Print(\ % \ //4格空格 GotoXY(0,1); //选择温度显示位置 Print(\ C\ //4格空格 GotoXY(10,1); //选择湿度显示位置 Print(\ % \ //4格空格 s_connectionreset1(); //启动连接复位 s_connectionreset2(); while(1) {

error1=0; //初始化error=0,即没有错误

error1+=s_measure1((unsigned char*)&temp_val1.i,&checksum1,TEMP); //温度测量 error1+=s_measure1((unsigned char*)&humi_val1.i,&checksum1,HUMI); //湿度测量 if(error1!=0) s_connectionreset1(); //如果发生错误,系统复位 else {

humi_val1.f=(float)humi_val1.i; //转换为浮点数

29

新乡学院本科毕业论文(设计)

temp_val1.f=(float)temp_val1.i; //转换为浮点数 calc_sth101(&humi_val1.f,&temp_val1.f); //修正相对湿度及温度 // dew_point1=calc_dewpoint1(humi_val1.f,temp_val1.f); //计算e dew_point temp1=temp_val1.f*10; humi1=humi_val1.f*10;

GotoXY(3,0); //设置温度显示位置

wendu[0]=temp100/100+'0'; //温度十位 wendu[1]=temp10/10+'0';//温度个位 wendu[2]=0x2E;//小数点

wendu[3]=temp1+'0';//温度小数点后第一位 Print(wendu); //输出温度 GotoXY(12,0); //设置湿度显示位置

shidu[0]=humi100/100+'0'; //湿度十位 shidu[1]=humi10/10+'0';//湿度个位 shidu[2]=0x2E;//小数点

shidu[3]=humi1+'0';//湿度小数点后第一位 Print(shidu); //输出湿度 }

delay(20); //等待足够长的时间,以现行下一次转换

error2=0; //初始化error=0,即没有错误

error2+=s_measure2((unsigned char*)&temp_val2.i,&checksum2,TEMP); //温度测量 error2+=s_measure2((unsigned char*)&humi_val2.i,&checksum2,HUMI); //湿度测量 if(error2!=0) s_connectionreset2(); //如果发生错误,系统复位 else {

humi_val2.f=(float)humi_val2.i; //转换为浮点数 temp_val2.f=(float)temp_val2.i; //转换为浮点数

30

新乡学院本科毕业论文(设计)

calc_sth102(&humi_val2.f,&temp_val2.f); //修正相对湿度及温度 // dew_point2=calc_dewpoint2(humi_val2.f,temp_val2.f); //计算e dew_point temp2=temp_val2.f*10; humi2=humi_val2.f*10;

GotoXY(3,1); //设置温度显示位置

wendu[0]=temp200/100+'0'; //温度十位 wendu[1]=temp20/10+'0';//温度个位 wendu[2]=0x2E;//小数点

wendu[3]=temp2+'0';//温度小数点后第一位 Print(wendu); //输出温度 GotoXY(12,1); //设置湿度显示位置 shidu[0]=humi200/100+'0'; //湿度十位 shidu[1]=humi20/10+'0'; //湿度个位 shidu[2]=0x2E;//小数点

shidu[3]=humi2+'0';//湿度小数点后第一位 Print(shidu); //输出湿度 }

delay(800); //等待足够长的时间,以现行下一次转换 } }

31

新乡学院本科毕业论文(设计)

4.2 SHT11测量流程

发送测量值 图4.2 SHT11测量流程图

初始化 发动启动传输 等待主机发送测量指令 发送测量指令 判断指令 温湿度计算 浮点转换

SHT11函数声明:

void s_connectionreset1(void);

char s_measure1(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode);

void calc_sth101(float *p_humidity1,float *p_temperature1); float calc_dewpoint1(float h,float t);

32


一棚多温大棚温湿控制(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:化工原理试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: