淮阴师范学院毕业设计
附录2 主程序
#include
char set_temp_H=20;//设定温度的变量 char set_temp_L=03;//设定温度的变量 char set_humi_H=60;//设置湿度的变量 char set_humi_L=40;//设置湿度的变量 sbit temp_led_H = P1^1; //温度上限指示灯 sbit temp_led_L = P1^2; //温度下限指示灯 sbit humi_led_H = P1^3; //湿度上限指示灯 sbit humi_led_L = P1^4; //湿度下限指示灯 sbit temp_JDQ_OUT = P2^0; sbit humi_JDQ_OUT = P2^1; 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(void) {
write_cmd(0x8c);
21
淮阴师范学院毕业设计
write_dat(U8Temp_zheng/10+0X30);//显示温度十位,加0x30是转换成ASCII码 write_cmd(0x8d);
write_dat(U8Temp_zheng+0X30);//显示温度个位 ,加0x30是转换成ASCII码 write_cmd(0xcc);
write_dat(U8Humi_zheng/10+0X30);//显示湿度十位 ,加0x30是转换成ASCII码 write_cmd(0xcd);
write_dat(U8Humi_zheng+0X30);//显示湿度个位 ,加0x30是转换成ASCII码 }
///////////////////////开机显示//////////////////////////////////// void disp_start(void) {
for(i=0;i<16;i++) { write_cmd(0x80+i);
write_dat(tab_t[i]);//温度 }
for(i=0;i<16;i++) { write_cmd(0xc0+i); }
///////////////////////扫描按键//////////////////////////////// void key_scan(void) {
write_dat(tab_h[i]);//湿度 }
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 {
22
淮阴师范学院毕业设计
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=99; }
write_cmd(0xc6);
write_dat(set_temp_H/10 + 0x30);//显示设置温度十位 write_cmd(0xc7);
write_dat(set_temp_H + 0x30); //显示设置温度个位 }
delay(200);
}
//第二、设置温度下限////////////////////////////////
if(key_flag==1)//按键标志1 {
write_cmd(0x01);//清屏
write_cmd(0x80);//显示位置第一行第一列 for(i=0;i<13;i++)
write_dat(tab_set_temp_L[i]);//显示SET TEMPERATURE字符 while(k4==1)//按下K4 { if(k2==0)//按下K2
{ while(k2==0);
set_temp_L++;//设置温度数值加 if(set_temp_L==100)//到100,清0 set_temp_L=0; }
23
淮阴师范学院毕业设计
if(k3==0)//按下K2
{ while(k3==0);//松手检测
set_temp_L--;//设置温度数值减 if(set_temp_L<0)//到0,加为100 set_temp_L=99; }
write_cmd(0xc6); }
write_dat(set_temp_L/10 + 0x30);//显示设置温度十位 write_cmd(0xc7);
write_dat(set_temp_L + 0x30); //显示设置温度个位 }
////第三、设置湿度上限/////////////////////////////////////////////////// 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=99; }
write_cmd(0xc6);
write_dat(set_humi_H/10 + 0x30);//显示设置湿度十位,加0x30是转换成ASCII码
24
相关推荐: