烟台大学毕业论文(设计)
5.3 浇水执行程序框图
正常模式,显示时间 是 是否到时 ? 是 今日浇水 ? 1路浇水,显示倒计时 否 否 是 否 倒计时重置 倒计时减1 倒计时=0? 2路浇水,显示倒计时 是 否 倒计时重置 倒计时减1 倒计时=0? 3路浇水,显示倒计时 是 否 倒计时重置 倒计时减1 倒计时=0? 4路浇水,显示倒计时 是 否 倒计时重置 倒计时减1 倒计时=0? 5路浇水,显示倒计时 是 否 倒计时重置 倒计时减1 倒计时=0? 6路浇水,显示倒计时 是 否 倒计时重置 倒计时减1 倒计时=0? 7路浇水,显示倒计时 倒计时重置 =0? 否 是 倒计时显示系统时间 8路浇水,显示倒计时 是 否 倒计时重置 倒计时=0? 返回 图5-4 浇水执行程序框图
24
倒计时减1 倒计时减1 烟台大学毕业论文(设计)
5.4 主程序
/*
系统一共有两套时间体系:系统时间(定时器控制)和浇水开始时间 系统时间是由Timer0 中断产生 */
//#include \#include \
//=============================================================== //-------------------------宏定义和位定义------------------------
//===============================================================
//-------端口定义---------- #define SEG P0 // 数码管数据口 #define LED P1 // 仿真时LED灯数据口 实际是浇水控制口 #define KEY_DATA P3 // 按键接口
//-------位定义---------- sbit DP =P2^1; // 小数点 sbit TIME_1 =P2^2; // 时 高 sbit TIME_2 =P2^3; // 时 低 sbit TIME_3 =P2^4; // 分 高 sbit TIME_4 =P2^5; // 分 低 sbit TIME_5 =P2^6; // 星期几 sbit TIME_6 =P2^7; // 秒闪烁
//-------宏定义----------
#define KEY_NULL 0xff #define TIME 50000 //TIMER0一次定时50ms #define uchar unsigned char #define uint unsigned int
//=============================================================== //--------------------------全局变量-----------------------------
//=============================================================== uchar flag=0; // 定时器50Ms标志 uchar SysSecond; // 系统时间 秒 uchar SysHour; // 系统时间 时 uchar SysMinute; // 系统时间 分 uchar SysDay; // 系统时间 周
25
烟台大学毕业论文(设计)
uchar SECOND_FLAG; // 秒显示标记,1时9 10 LED 闪烁,0 闪烁停止
uchar MON_FLAG; // 浇水天控制标记位:周一,为1的时候周一浇水,否则不浇水 uchar TUE_FLAG; // 浇水天控制标记位:周二,为1的时候周二浇水,否则不浇水
uchar WEN_FLAG; // 浇水天控制标记位:周三,为1的时候周三浇水,否则不浇水
uchar THIR_FLAG; // 浇水天控制标记位:周四,为1的时候周四浇水,否则不浇水
uchar FRI_FLAG; // 浇水天控制标记位:周五,为1的时候周五浇水,否则不浇水
uchar SAT_FLAG; // 浇水天控制标记位:周六,为1的时候周六浇水,否则不浇水
uchar SUN_FLAG; // 浇水天控制标记位:周日,为1的时候周日浇水,否则不浇水
uchar WateringTimeFlag; // 浇水标志,Timer0 中断倒计时显示控制标志位,为1的时候,Timer0的秒中断让浇水时间递减到0 uint WateringTime; // 浇水时长 全局变量 0~9999 uint WateringTime_H; // 浇水时长 高 uint WateringTime_L; // 浇水时长 低 uchar Startwatering_HOUR; // 浇水开始时间 小时 uchar Startwatering_minute; // 浇水开始时间 分钟
//=============================================================== //--------------------------函 数-----------------------------
//===============================================================
//------------------------------------------ //延迟函数
//------------------------------------------ void delayms(unsigned int n) {
unsigned int i=0,j=0; for(;i for(;j<35000;j++); } //------------------------------------------ //延迟函数 //------------------------------------------ 26 烟台大学毕业论文(设计) void delayus(unsigned int n) { unsigned int i=0,j=0; for(;i for(;j<35;j++); } //------------------------------------------ //显示时间,使用扫描显示 //在设置周几不浇水的时候,数码管的小数点显示 //与否由此函数控制 //------------------------------------------ void ShowTime(uchar SysHour,uchar SysMinute,uchar SysDay) { DP =0; //正常情况下,不点亮小数点 TIME_1 =0; //第一个数码管点亮 SEG =SysHour/10; //显示小时高位 delayus(1); //产生视觉余辉 TIME_1 =1; //第一个数码管点灭 TIME_2 =0; //第二个数码管点亮 SEG =SysHour; //显示小时低位 delayus(1); //产生视觉余辉 TIME_2 =1; //第二个数码管点灭 TIME_3 =0; //第三个数码管点亮 SEG =SysMinute/10; //显示分钟高位 delayus(1); //产生视觉余辉 TIME_3 =1; //第一个数码管点灭 TIME_4 =0; //第四个数码管点亮 SEG =SysMinute; //显示分钟低位 delayus(1); //产生视觉余辉 TIME_4 =1; //第四个数码管点灭 TIME_5 =0; //第五个数码管点亮 SEG =SysDay; //显示天 if(SysDay==1&&MON_FLAG==0) //关闭周一浇水,点亮小数点 { DP = 1; } else if(SysDay==2&&TUE_FLAG==0) //关闭周二开始,点亮小数点 { 27 烟台大学毕业论文(设计) DP = 1; } else if(SysDay==3&&THIR_FLAG==0) //关闭周三开始,点亮小数点 { DP = 1; } else if(SysDay==4&&WEN_FLAG==0) //关闭周四开始,点亮小数点 { DP = 1; } else if(SysDay==5&&FRI_FLAG==0) //关闭周五开始,点亮小数点 { DP = 1; } else if(SysDay==6&&SAT_FLAG==0) //关闭周六开始,点亮小数点 { DP = 1; } else if(SysDay==7&&SUN_FLAG==0) //关闭周日开始,点亮小数点 { DP = 1; } delayus(1); //产生视觉余辉 TIME_5 =1; //第五个数码管灭 } //-------------------------------------- // 显示浇水倒计时 // 最大可以显示9999 //-------------------------------------- void showcountering(uint WateringTime_temp,uchar SysDay) { DP =0; //正常情况下,不点亮小数点 TIME_1 =0; SEG =WateringTime_temp/1000; //获取并显示千位 WateringTime_temp=WateringTime_temp00; //得到没有千位的数,只含有百十个 delayus(1); TIME_1 =1; 28 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库毕业设计-自动浇水控制器 - 图文(6)在线全文阅读。
相关推荐: