教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

-基于51单片机温湿度采集控制系统 - 图文(7)

来源:网络收集 时间:2026-04-03
导读: 北方民族大学学士学位论文 附录C 程序清单 主程序 #include //52单片机头文件 #include //温湿度传感器DHT11头文件 #include //液晶屏1602头文件 uchar i,key_flag; uchar set_temp_H_shi,set_temp_H_ge;//设定温度

北方民族大学学士学位论文

附录C 程序清单 主程序

#include //52单片机头文件

#include //温湿度传感器DHT11头文件 #include //液晶屏1602头文件 uchar i,key_flag;

uchar set_temp_H_shi,set_temp_H_ge;//设定温度的变量 uchar set_temp_L_shi,set_temp_L_ge;//设定温度的变量 uchar set_humi_H_ge,set_humi_H_shi;//设置湿度的变量 uchar set_humi_L_ge,set_humi_L_shi;//设置湿度的变量

signed char set_temp_H=38, set_temp_L=8; //温度上限赋值38,温度下限赋值8

signed char set_humi_H=78, set_humi_L=48;//湿度上限赋值78,湿度下限赋值48

sbit k1=P3^2;//定义按键K1 sbit k2=P3^3;//定义按键K2 sbit k3=P3^4;//定义按键K3 sbit k4=P3^5;//定义按键K4

/////////////////////////延时函数///////////////////////////// void delay(uchar x) {

uchar a,b;

for(a=0;a<20;a++)

{ for(b=x;b>0;b--); } }

/////////////////////////显示温度 和 湿度////////////////////////// void disp_t_h() {

write_cmd(0x8c);

write_dat(tab_lcd_num[ds3]);//显示温度十位 write_cmd(0x8d);

write_dat(tab_lcd_num[ds4]);//显示温度个位 write_cmd(0xcc);

write_dat(tab_lcd_num[ds1]);//显示温湿度十位 write_cmd(0xcd);

write_dat(tab_lcd_num[ds2]);//显示温湿度个位

}///////////////////////开//////////////////////////////////// void disp_start() {for(i=0;i<16;i++)

{write_cmd(0x80+i); 页 第 27 页 共 36

机显示基于51单片机温湿度采集控制系统

write_dat(tab_t[i]);//温度 }

for(i=0;i<16;i++) {write_cmd(0xc0+i); write_dat(tab_h[i]);//湿度 } }

///////////////////////扫描按键//////////////////////////////// void key_scan() {

if(k1==0)//按下K1 {

//设置温度上限//////////////////////////////// if(key_flag==0)//按键标志0 {

write_cmd(0x01);//清屏

write_cmd(0x80);//显示位置第一行第一列 for(i=0;i<13;i++)

write_dat(tab_set_temp_H[i]);//显示SET TEMPERATURE字符

while(k4==1)//按下K4 {

if(k2==0)//按下K2 { while(k2==0);

set_temp_H++;//设置温度数值加

if(set_temp_H==100)//到100,清0 set_temp_H=0; }

if(k3==0)//按下K2

{ while(k3==0);//松手检测

set_temp_H--;//设置温度数值减 if(set_temp_H==0)//到0,加为100 set_temp_H=100;}

set_temp_H_ge=set_temp_H;//计算设置温度个位 set_temp_H_shi=set_temp_H/10;//计算设置温度十位

write_cmd(0xc6);

write_dat(tab_lcd_num[set_temp_H_shi]);//显示设置温度个位

第 28 页 共 36 页

北方民族大学学士学位论文

write_cmd(0xc7);

write_dat(tab_lcd_num[set_temp_H_ge]);//显示设置温度十位

}

delay(200); }

//设置温度下限//////////////////////////////// if(key_flag==1)//按键标志1 {

write_cmd(0x01); write_cmd(0x80); write_dat(tab_set_temp_L[i]);符

{

{ set_temp_L++; set_temp_L=0; }

{ set_temp_L--; set_temp_L=100; }

set_temp_L_ge=set_temp_L; set_temp_L_shi=set_temp_L/10;

write_cmd(0xc6);

write_dat(tab_lcd_num[set_temp_L_shi]);度个位

write_cmd(0xc7);

write_dat(tab_lcd_num[set_temp_L_ge]);十位

} }

//清屏

//显示位置第一行第一列 for(i=0;i<13;i++)

//显示SET TEMPERATURE字while(k4==1)//按下K4 if(k2==0)//按下K2 while(k2==0);

//设置温度数值加

if(set_temp_L==100)//到100,清0 if(k3==0)//按下K2

while(k3==0);//松手检测

//设置温度数值减 if(set_temp_L==0)//到0,加为100 //计算设置温度个位 //计算设置温度十位 //显示设置温//显示设置温度第 29 页 共 36

页 基于51单片机温湿度采集控制系统

////设置湿度上限/////////////////////////////////////////////////// if(key_flag==2)//按键标志2 {

write_cmd(0x01);//清屏

write_cmd(0x80);//显示位置第一行第一列 for(i=0;i<13;i++)

write_dat(tab_set_humi_H[i]);//显示SET HUMIDITY字符 while(k4==1) {

if(k2==0)

{ while(k2==0);

set_humi_H++;//设置湿度数值加 if(set_humi_H==100) set_humi_H=0; }

if(k3==0)

{ while(k3==0);

set_humi_H--;//设置湿度数值减 if(set_humi_H==0) set_humi_H=100; }

set_humi_H_ge=set_humi_H;//计算设置湿度个位 set_humi_H_shi=set_humi_H/10;//计算设置湿度十位

write_cmd(0xc6);

write_dat(tab_lcd_num[set_humi_H_shi]);//显示设置湿度十位

write_cmd(0xc7);

write_dat(tab_lcd_num[set_humi_H_ge]);//显示设置湿度个位

}

}

////设置湿度下限////// …… 此处隐藏:3011字,全部文档内容请下载后查看。喜欢就下载吧 ……

-基于51单片机温湿度采集控制系统 - 图文(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/434731.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)