当前位置:首页 > 电信0901--智能灌溉监控系统设计
总结与体会
17
附录A 总程序
#include
#define uchar unsigned char #define W_cmd 0xa0 //24c02写指令
#define R_cmd 0xa1 //24c02读指令
uint temp,humi;
value humi_val,temp_val; //定义两个共同体,一个用于湿度,一个用于温度
uchar error; //用于检验是否出现错误
uchar set_humi[4]; //保存设定的湿度
uchar idata temp_humi_cache[8]; //温湿度设置缓存 uint
//温度上限变量 uint
//温度下限变量 uint
//湿度上限变量 uint
//湿度下限变量 uchar
//按键次数变量 uchar //用于蜂鸣器
temp_high;
temp_low;
humi_high;
humi_low;
presskeynum;
nn;
uchar checksum; //CRC uchar code word1[]={%uchar TEMP_data[7]; //用于记录实测的温度
uchar HUMI_data[6]; //用于记录实测的湿度
uchar set_temp[5]; //保存设定的温度
18
of %uchar
code
word2[]={\
ELECTRONS%uchar
code
word3[]={\
Welcome........\sbit
k1=P3^2;
//按键 sbit //按键 sbit //按键 sbit {
k2=P3^3; delay(10);
if (k1==0)
k3=P3^4; {
presskeynum++;
k4=P3^5; if(presskeynum==5)
//按键
sbit beep=P1^4; sbit led1=P1^3; sbit led2=P1^5; sbit led3=P1^6; sbit led4=P1^7; sbit led5=P3^6; //延时函数 void
delay(uint
//z为毫秒数 {
int a,b;
for(a=z;a>0;a--) for(b=120;b>0;b--); }
void key() {
uchar m; if
//调整按键检测
{
presskeynum=0;
}
while(k1==0);
LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏 }
z) }
if(presskeynum==1)//温度上限设置{
if(k2==0)// 加 {
delay(300); temp_high++; if (temp_high>99) temp_high=0;
(k1==0) if (temp_high<0)
temp_high=99;
19
// while(k2==0); //加上此句必须松按键才处理 }
if(k3==0)//减 {
delay(300); temp_high--; if (temp_high>99) temp_high=0; if (temp_high<0) temp_high=99;
// while(k3==0); //加上此句必须松按键才处理 } }
if(presskeynum==2)//温度下限设置 {
if(k2==0)// 加 {
delay(300); temp_low++; if (temp_low>99) temp_low=0; if (temp_low<0) temp_low=99;
20
// while(k2==0); }
if(k3==0) {
delay(300); temp_low--; if (temp_low>99) temp_low=0; if (temp_low<0) temp_low=99; // while(k3==0); } }
if(presskeynum==3)//湿度上限设置 {
if(k2==0)// 加 {
delay(300); humi_high++; if (humi_high>99) humi_high=0; if (humi_high<0) humi_high=99; // while(k2==0);
共分享92篇相关文档