void start_ds(void) //功能设置,开始计算时间
{
DSA=0x20; //选择时钟32.768kHz,无中断
ACC=DSC; //清除中断
ACC=DSD; //vrt=1,数据有效
DSB=0x06; //无中断,时标为bcd码。24小时制,芯片工作,06
是二进制输出,02是bcd输出
}
void w_ds(void) //设置状态函数
{
uchar i;
DSB=0x80; //设置set为1
for(i=0;i <6;i++)
*(ds_addr+at[i])=date[i];
}
void r_ds(void) //输出时间函数
{
uchar i;
do{ACC=DSA;}while (uip_bit); //判断UIP位,为0时才可以读出数据
for(i=0;i <6;i++)
date[i]=*(ds_addr+at[i]);
}
void main(void)
{
P1=0x0D; //ls138(0x05); //12
887片选选中
w_ds();
start_ds();
while(1)
{
_nop_();
r_ds();
_nop_();
}
_nop_();
}