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();
}