自动浇水系统设计 联系客服

发布时间 : 星期二 文章自动浇水系统设计更新完毕开始阅读8bf2accb03d8ce2f01662341

陕西理工学院毕业论文

void main() { while(1) { //正常模式 if(Mode==0) { //读取AD值 temp=ADC0809(); for(p=0;p<30;p++) Display(0,temp); //判断是否报警 if(temp>FF) { Feng=0; } else { Feng=1; } } //调整模式 else { Display(1,FF); } //功能键 if(Key3==0) { Feng=0; delay(100); while(Key3==0) { if(Mode==0) Display(0,temp); else Display(1,FF); } if(Mode==0) Mode=1; else Mode=0; Feng=1;

第 17 页 共 32 页

陕西理工学院毕业论文

} //增加 if(Key2==0&&Mode==1) { Feng=0; delay(100); while(Key2==0) { Display(1,FF);

} FF++; if(FF==251) FF=250; Feng=1; } //减少 if(Key1==0&&Mode==1) { Feng=0; delay(100); while(Key1==0) { Display(1,FF);

} FF--; if(FF==0xff) FF=0; Feng=1; } } }

//ADC0809读取信息 uchar ADC0809() { uchar temp_=0x00; //初始化高阻太 OE=0; //转化初始化 ST=0; //开始转换 ST=1; ST=0; //外部中断等待AD转换结束 while(EOC==0)

第 18 页 共 32 页

陕西理工学院毕业论文

//读取转换的AD值 OE=1; temp_=Data_ADC0809; OE=0; return temp_; }

//延时

void delay(uint t) { uint i,j; for(i=0;i

//显示 X表示状态 Data表示数据 void Display(uchar X,uchar Data) { Wei1=1; Wei2=1; Wei3=1; Wei4=1; P0=0xff; //正常模式 if(X==0) { P0=~Data_[11]; } //非正常 else { P0=~Data_[10]; } Wei1=0; Wei2=1; Wei3=1; Wei4=1; delay(10); Wei1=1; Wei2=1; Wei3=1; Wei4=1; P0=~Data_[Data/100];

第 19 页 共 32 页

陕西理工学院毕业论文

}

Wei1=1; Wei2=0; Wei3=1; Wei4=1; delay(10); Wei1=1; Wei2=1; Wei3=1; Wei4=1;

P0=~Data_[Data/10]; Wei1=1; Wei2=1; Wei3=0; Wei4=1; delay(10); Wei1=1; Wei2=1; Wei3=1; Wei4=1;

P0=~Data_[Data]; Wei1=1; Wei2=1; Wei3=1; Wei4=0; delay(10); Wei1=1; Wei2=1; Wei3=1; Wei4=1;

5.2定时器部分

定时器部分以单片机AT89C51为控制核心,通过软件设置达到具体动作实现。通过按键开关对当前时间以及定时浇水时间进行设置,共阴数码管显示,当时间处在所设置的浇水时间内时,单片机发出控制信号,开始浇水。否则,停止浇水。

第 20 页 共 32 页