}
KeyCode = Key_Get(); switch(KeyCode) { }
case KEY_1:
// Key1,返回调整后的月
return TempMon;
case KEY_2:
TempMon++;
// Key2,月数加1,到12后回复为1
if(TempMon>12) TempMon = 1; PlayMon(TempMon); break;
case KEY_3:
TempMon--;
// Key3,月数减1,到1后变为12
if(TempMon<1) TempMon = 12; PlayMon(TempMon); break;
default:
break;
}
//=============================================================
// 语法格式: unsigned int AdjustDay(unsigned int Year, unsigned int Mon, unsigned int Day); // 实现功能: 调整日 // 参数: // //
Year - 调整后的年 Mon - 调整后的月 Day - 调整前的日 调整后的日
// 返回值:
28
//=============================================================
unsigned int AdjustDay(unsigned int Year, unsigned int Mon, unsigned int Day) { unsigned int KeyCode; unsigned int TempDay = Day;
if(TempDay > Month_Day[Mon-1])
数则日期置为1 { if(TempDay==29)
{ if((Year&0x03)!=0) TempDay = 1;
}
else TempDay = 1;
}
PlayDay(TempDay);
while(1) { *P_Watchdog_Clear = 0x01; KeyCode = Key_Get(); switch(KeyCode) { case KEY_1:
return TempDay;
case KEY_2:
TempDay++;
1
if(TempDay > Month_Day[Mon-1])
29
// 如果当前的日期已经超过调整后月的最大天
// 处理闰年
// 播放调整前日
// Key1,返回调整后日
// Key2,日数加1,达到当月最大日之后回复为
}
}
{ }
PlayDay(TempDay); break;
if(TempDay==29) { }
else TempDay = 1;
if((Year&0x03)!=0) TempDay = 1;
// 处理闰年
case KEY_3:
TempDay--; if(TempDay<1) { }
PlayDay(TempDay); break;
if(Mon==2 && (Year&0x03)==0) TempDay = 29; else TempDay = Month_Day[Mon-1];
// Key3,日数减1,减到0时转为当月最大日
default:
break;
}
//============================================================= // 语法格式: unsigned int AdjustHour(unsigned int Hour); // 实现功能: 调整小时 // 参数:
Hour - 调整前的时
30
// 返回值: 调整后的时
//============================================================= unsigned int AdjustHour(unsigned int Hour) { unsigned int KeyCode; unsigned int TempHour = Hour;
PlayHour(TempHour);
while(1) { *P_Watchdog_Clear = 0x01; KeyCode = Key_Get(); switch(KeyCode) { case KEY_1:
return TempHour;
case KEY_2: TempHour++;
if(TempHour>23) TempHour = 0; PlayHour(TempHour);
break;
case KEY_3: if(TempHour==0) TempHour = 23; else TempHour--; PlayHour(TempHour);
break;
default:
break;
31
// 播报整前小时数
// Key1,返回调整后的小时
// Key2,时数加1,到23后回复为0
// Key3,时数减1,到0后回复为23
}
}
}
//============================================================= // 语法格式: unsigned int AdjustMin(unsigned int Min); // 实现功能: 调整分 // 参数: // 返回值:
Min - 调整前的分 调整后的分
//============================================================= unsigned int AdjustMin(unsigned int Min) {
unsigned int KeyCode; unsigned int TempMin = Min;
PlayNum(TempMin); PlaySnd(S_Fen); while(1) {
*P_Watchdog_Clear = 0x01; KeyCode = Key_Get(); switch(KeyCode) {
case KEY_1:
return TempMin;
// Key1,返回调整后的分
// 播报调整前的分钟数
case KEY_2:
TempMin++;
// Key2,分钟数加1,到59后变为0
if(TempMin>59) TempMin = 0;
32