单片机(7)

2018-11-21 21:29

第三章 系统软件的设计

tYear = BCD_DEC(DS12887_Read(DS_YER)); //当前年 tMonth = BCD_DEC(DS12887_Read(DS_MON));//当前月 switch (tMonth) { case 1: case 3: case 5: case 7: case 8: case 10:

case 12:return 31; //1、3、5、7、8、10、12 月均为31天 case 4: case 6: case 9:

case 11:return 30; //4、6、9、11 月均为30天 case 2:

if (tYear%4==0) //2月闰年为29天 return 29; else

return 28; //平年为28天 default: return 0; } }

void Key(void) {

unsigned char i;

P1 = 0xFF;

if (KEY1 == 0) //显示模式更改

27

2 7

28

第三章 系统软件的设计

{

Delay(10); if (KEY1 == 0) {

if (modify)

modify = 0;

//修改模式下用于退出修改

else { }

DS12887_Write(DS_R_B, 0x62); dispMode++; if (dispMode > 2)

dispMode = 0;

}

while (KEY1 == 0) Display(); }

if (KEY2 == 0) //修改模式 {

Delay(10); if (KEY2 == 0) {

if (modify == 0) //时分秒123,年45,月日星期789 {

modify = 3 * dispMode + 1; DS12887_Write(DS_R_B, 0xE2); } else { modify++;

switch (dispMode) //根据显示模式确定modify初值 { case 0:

28

第三章 系统软件的设计

29

case 2:

if (modify > (3 * dispMode + 3)) //时分秒,日星期模式下每个是3位 {

modify = 0;

DS12887_Write(DS_R_B, 0x62); } break; case 1:

if (modify > (3 * dispMode + 2)) //年模式下是2位 {

modify = 0;

DS12887_Write(DS_R_B, 0x62); } break; } } }

while (KEY2 == 0) Display(); }

if (KEY3 == 0) //+ {

Delay(10); if (KEY3 == 0) {

switch (modify) {

case 1: //时 i = BCD_DEC(DS12887_Read(DS_HOR));

29

30

第三章 系统软件的设计

i++; if (i > 23) i = 0;

DS12887_Write(DS_HOR, DEC_BCD(i)); break;

case 2: //分 i = BCD_DEC(DS12887_Read(DS_MIN)); i++; if (i > 59) i = 0;

DS12887_Write(DS_MIN, DEC_BCD(i)); break;

case 3: i = BCD_DEC(DS12887_Read(DS_SEC)); i++; if (i > 59) i = 0;

DS12887_Write(DS_SEC, DEC_BCD(i)); break;

case 4: i = BCD_DEC(DS12887_Read(DS_Y_S)); i++; if (i > 21) i = 19;

DS12887_Write(DS_Y_S, DEC_BCD(i)); break;

case 5: i = BCD_DEC(DS12887_Read(DS_YER)); i++; if (i > 99)

//秒 //年高两位 //年低两位 30

第三章 系统软件的设计

31

i = 0;

DS12887_Write(DS_YER, DEC_BCD(i)); break;

case 7: //月 i = BCD_DEC(DS12887_Read(DS_MON)); i++; if (i > 12) i = 1;

DS12887_Write(DS_MON, DEC_BCD(i)); break;

case 8: i = BCD_DEC(DS12887_Read(DS_DAY)); i++; if (i > getDay()) i = 1;

DS12887_Write(DS_DAY, DEC_BCD(i)); break;

case 9: i = BCD_DEC(DS12887_Read(DS_WEK)); i++; if (i > 7) i = 1;

DS12887_Write(DS_WEK, DEC_BCD(i)); break; } }

while (KEY3 == 0) Display(); }

if (KEY4 == 0)

//日 //星期 31


单片机(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高岭土回转窑煅烧工艺,日产200-600吨的价格多少钱_ss

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

马上注册会员

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