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

2019-04-22 14:38

}

}

PlayNum(TempMin); PlaySnd(S_Fen); break;

case KEY_3:

if(TempMin==0) TempMin = 59; else TempMin--; PlayNum(TempMin); PlaySnd(S_Fen); break;

// Key3,分钟数减1,到0后变为59

default:

break;

}

//============================================================= // 语法格式: unsigned int AdjustSec(unsigned int Sec); // 实现功能: 调整秒 // 参数: // 返回值:

Sec - 调整前的秒 调整后的秒

//============================================================= unsigned int AdjustSec(unsigned int Sec) {

unsigned int KeyCode; unsigned int TempSec = Sec;

PlaySec(TempSec); while(1)

// 播报调整前的秒数

33

}

{

*P_Watchdog_Clear = 0x01; KeyCode = Key_Get(); switch(KeyCode) { }

case KEY_1:

return TempSec;

// Key1,返回调整后的秒

case KEY_2:

TempSec++;

// Key2,秒加1,到59后变为0

if(TempSec>59) TempSec = 0; PlaySec(TempSec); break;

case KEY_3:

if(TempSec==0) TempSec = 59; else TempSec--; PlaySec(TempSec); break;

// Key3,秒减1,到0后变为59

default:

break;

}

//============================================================= // 语法格式: void Adjust(void); // 实现功能: 调整日期时间 // 参数: // 返回值:

无 无

34

//============================================================= void Adjust() { }

子程序:3

//======================================================

PlaySnd(S_DING);

// 播报调整后的日期时间

unsigned int TempYear, TempMon, TempDay, TempHour, TempMin, TempSec;

TempYear = AdjustYear(Clock_GetYear()); TempMon = AdjustMon(Clock_GetMon());

// 调整年 // 调整月

TempDay = AdjustDay(TempYear, TempMon, Clock_GetDay()); // 调整日 TempHour = AdjustHour(Clock_GetHour()); TempMin = AdjustMin(Clock_GetMin()); TempSec = AdjustSec(Clock_GetSec());

Clock_SetYear(TempYear); Clock_SetMon(TempMon); Clock_SetDay(TempDay); Clock_SetHour(TempHour); Clock_SetMin(TempMin); Clock_SetSec(TempSec);

// 保存调整后的日期时间

// 调整时 // 调整分 // 调整秒

PlayYear(TempYear); PlayMon(TempMon); PlayDay(TempDay); PlayHour(TempHour); PlayMin(TempMin);

35

// 文件名称: Clock_Speech.c

// 功能描述: 语音播报日期和时间的函数集 // 维护记录: 2006-08-30 v1.0

//======================================================

#include \#include \

//============================================================= // 语法格式: void PlayNum(unsigned int Num); // 实现功能: 播放100以内的数字 // 参数: // 返回值:

Num - 待播报的数字 无

//============================================================= void PlayNum(unsigned int Num) { }

unsigned int TempNum = Num;

if(TempNum==0)

PlaySnd(S_0);

// 数字为0则直接播报0

else { }

if(TempNum>=20) PlaySnd(TempNum/10); if(TempNum>=10) PlaySnd(S_10); TempNum = TempNum % 10;

if(TempNum>0) PlaySnd(TempNum);

// 个位

// 十位 // \十\

36

//============================================================= // 语法格式: void PlayYear(unsigned int Year); // 实现功能: 播报年 // 参数: // 返回值:

Year - 待播报的年 无

//============================================================= void PlayYear(unsigned int Year) { }

//============================================================= // 语法格式: void PlayMon(unsigned int Mon); // 实现功能: 播报月 // 参数: // 返回值:

Mon - 待播报的月 无

unsigned int TempYear = Year;

PlaySnd(TempYear/1000);

// 千位

TempYear = TempYear % 1000; PlaySnd(TempYear/100); TempYear = TempYear % 100; PlaySnd(TempYear/10); TempYear = TempYear % 10; PlaySnd(TempYear); PlaySnd(S_Nian);

// 个位 // \年\

// 十位

// 百位

//============================================================= void PlayMon(unsigned int Mon)

37


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

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

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

马上注册会员

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