基于单片机的语音报时系统论文 - 图文(7)

2019-04-22 14:38

}

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


基于单片机的语音报时系统论文 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:1吨生活污水处理设计方案(周凤坤)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: