烟台大学毕业论文(设计)
} else if(AN4_CNT==2) //如果AN4被按下两次,则是浇水时长的低位设置 { WateringTime_L++; if(WateringTime_L==100) //最大是99 WateringTime_L=0; } break; } case 0xf7://AN3:AN5=0 周校对 AN5=1 浇水周校对 { SysDay++; if(SysDay==8) //最大为周日 SysDay=1; break; } case 0xef://AN4 { AN4_CNT++; if(AN4_CNT==2) //如果AN4按下两次,则是浇水时长设置,9 10 LED 停止闪烁 { SECOND_FLAG =0; //9 10 LED 停止闪烁 TIME_6 =0; //9 10 LED 熄灭 } else //如果AN4不是被按下两次,则显示正常 { SECOND_FLAG =1; //9 10 LED 正常闪烁 if(AN4_CNT==3) //而且,AN4最大只能是2 AN4_CNT=0; } break; } case 0xdf://AN5,设置周几不浇水 { // AN5_CNT=1; // if(AN5_CNT==1) // { if(SysDay==1) {
34
烟台大学毕业论文(设计)
MON_FLAG=0; //关闭周一浇水, } else if(SysDay==2) { TUE_FLAG=0; //关闭周二浇水, } else if(SysDay==3) { THIR_FLAG=0; //关闭周三浇水, } else if(SysDay==4) { WEN_FLAG=0; //关闭周四浇水, } else if(SysDay==5) { FRI_FLAG=0; //关闭周五浇水, } else if(SysDay==6) { SAT_FLAG=0; //关闭周六浇水, } else if(SysDay==7) { SUN_FLAG=0; //关闭周日浇水, } // } // else if(AN5_CNT==2) //关闭周日浇水, // AN5_CNT=0; break; } default:break; } }//结束按键控制
//-------------------------模式的执行和浇水控制---------------------------- //如果系统时间等于浇水时间,执行浇水,不考虑任何模式 if(SysHour==Startwatering_HOUR&&SysMinute==Startwatering_minute) { if(SysDay==1&&MON_FLAG) //周一开始浇水 {
35
烟台大学毕业论文(设计)
// // // // //
Watering(1); } else if(SysDay==2&&TUE_FLAG) //周二开始浇水 { Watering(2); } else if(SysDay==3&&THIR_FLAG) //周三开始浇水 { Watering(3); } else if(SysDay==4&&WEN_FLAG) //周四开始浇水 { Watering(4); } else if(SysDay==5&&FRI_FLAG) //周五开始浇水 { Watering(5); } else if(SysDay==6&&SAT_FLAG) //周六开始浇水 { Watering(6); } else if(SysDay==7&&SUN_FLAG) //周日开始浇水 { Watering(7); } } else ShowTime(SysHour,SysMinute,SysDay); } else {
//无论浇水与否,都需要判断模式 if(AN4_CNT==0) //正常工作,显示时间 { ShowTime(SysHour,SysMinute,SysDay); } else if(AN4_CNT==1) //设置浇水开始时间 { ShowTime(Startwatering_HOUR,Startwatering_minute,8); } else if(AN4_CNT==2) //设置浇水时间长度 秒 {
36
烟台大学毕业论文(设计)
WateringTime=WateringTime_H*100+WateringTime_L; //计算浇水时间 ShowTime(WateringTime_H,WateringTime_L,9); //显示 }
} }
//----------------------------------------- //定时器0中断服务函数 //Timer0定时50ms,
//----------------------------------------
void Time0_ISR(void) interrupt 1 using 2 {
TR0=0; //关闭定时
TH0 = (65536-TIME) /256; //重载初始值 TL0 = (65536-TIME) %6;
flag++; //为了获取1s,设置的标志flag
if(flag==20) //1s定时到 { SysSecond++; //1s到,秒加1 flag=0; //标志清零 if(SECOND_FLAG) //如果需要显示LED闪烁,着SECOND_FLAG=1,否则不显示 TIME_6=SysSecond&0x01; //时分秒进位判断 //秒 if(SysSecond==60) { SysSecond=0; SysMinute++; } //分 if(SysMinute==60) { SysMinute=0; SysHour++; }
37
烟台大学毕业论文(设计)
}
//时 if(SysHour==24) { SysHour=0; SysDay++; } //天 if(SysDay==8) { SysDay=1; } //如果是倒计时模式,浇水时间每一秒减小一个数值 if(WateringTimeFlag==1) WateringTime--; }
TR0 = 1; // 定时器中断服务函数结束,重新开启定时器
38
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库毕业设计-自动浇水控制器 - 图文(8)在线全文阅读。
相关推荐: