18.2.16 时钟显示子函数

时钟显示子函数用于读取并显示实时时钟芯片DS1302内部时钟寄存器中的数据。在程序中,首先复位DS1302,然后采用多字节突发方式读取时钟寄存器中的数据,最后每秒显示一次结果。时钟显示子函数程序代码示例如下。


void Display(uchar loop)//时钟显示子函数

{

uchar lsec=99,sec,min,hrs,dte,mon,day,yr;

do//主循环

{

ResetDS1302();

WriteByteDS1302(0xBF);//以多字节方式读取时钟寄存器数据

sec=ReadByteDS1302();//读取秒

min=ReadByteDS1302();//读取分

hrs=ReadByteDS1302();//读取小时

dte=ReadByteDS1302();//读取日期

mon=ReadByteDS1302();//读取月份

day=ReadByteDS1302();//读取星期

yr=ReadByteDS1302();//读取年

ResetDS1302();//复位DS1302

if(sec!=lsec||!loop)//每秒显示一次

{//输出结果

printf(“\nYr Day Mon Dte Hrs Min Sec”);

printf(“\n%2.bX%2.bX%2.bX%2.bX”,yr,day,mon,dte);

printf(“%2.bX%2.bX%2.bX”,hrs,min,sec);

lsec=sec;

}

if(!loop)break;

}while(!RI);

if(loop)_getkey();

}