DS12C887内有11B RAM用来存储时间信息,4B用来存储控制信息,其具体的地址及取值见表10-1。由表10-1可以看出,DS12C887内部有4个控制寄存器A~D,用户可以在任何时候对其进行访问以对DS12C887进行控制操作。
表10-1 DS12C887的存储功能
(续)
DS12C887有4个控制寄存器,寄存器A、寄存器B、寄存器C、寄存器D可以在任何时候读写。
1.寄存器A
最高位 最低位
(1)UIP
更新位UIP用来标志芯片是否即将进行更新。当UIP位为1时,表示芯片正处于更新周期或即将开始更新周期。此时不准读/写寄存器;当它为0时,表示在至少244μs后才开始更新周期。此时,时钟、日历和闹钟信息可以通过读写相应的字节获得和设置。
UIP位为只读位且不受复位信号(RESET)的影响。通过把寄存器B中的SET位设置为1,可以禁止更新并将UIP位清0。
(2)DV0、DV1、DV2这3位用来开关晶体振荡器和复位分频器。
当[DV0 DV1 DV2]=[010]时,晶体振荡器开启并且保持时钟运行;当[DV0 DV1DV2]=[01X]时,晶体振荡器开启,但分频器保持复位状态。
(3)RS3、RS2、RS1、RS0
RS寄存器的作用有4个:设置周期中断允许位(PIE);设置方波输出允许位(SQWE);PIE和SQWE两位同时设置为有效并且设置频率;全部禁止。
表10-2列出了可通过RS寄存器选择周期中断的频率和方波的频率。这4个可读写位不受复位信号的影响。
表10-2 周期中断频率和方波中断频率
(续)
2.寄存器B
最高位 最低位
(1)SET
当该位为0时,芯片处于正常工作状态,每秒产生一个更新周期来更新时标寄存器;该位为1时,芯片停止工作,程序在此期间可初始化芯片的各个时标寄存器。SET位可读写,并不会受到复位信号的影响。
(2)PIE
周期中断,当PIE=0时,禁止周期中断输出到IRQ;当PIE=1时,允许周期中断输出到IRQ。
(3)AIE
闹钟中断,当AIE=0时,禁止闹钟中断输出到IRQ;当AIE=1时,允许闹钟中断输出到IRQ。
(4)UIE
更新结束中断,当UIE=0时,禁止更新结束中断输出到IRQ;当UIE=1时,允许更新结束中断输出到IRQ。此位在复位或设置SET为高时清0。(www.xing528.com)
(5)SQWE
方波输出允许位,当SQWE=0时,SQW引脚保持低电平;当SQWE=1时,按寄存器A输出速率选择位所确定的频率方波。
(6)DM
格式选择位,DM=0,BCD格式;DM=1,二进制格式。此位不受复位信号影响。
(7)24/12
小时模式设置位,为1时是24h制;为0时是12h制。
(8)DSE
夏令时允许标志,DSE=1,夏令制设置有效,夏时制结束可自动刷新恢复时间;DES=0,无效。夏令时:在4月的第1个星期日的1∶59∶59a.m.,时钟调到3∶00∶00a.m.;在10月的最后一个星期日的1∶59∶59a.m.,时钟调到1∶00∶00a.m.。
3.寄存器C
最高位 最低位
该寄存器的特点是:程序访问该寄存器或复位后,该寄存器的内容将自动清0,从而使IRQF标志位变为高电平,否则芯片将无法向CPU申请下一次中断。
(1)IRQF
中断申请标志位。该位的逻辑表达式为IRQF=PF·PIE+AF·AIE+UF·UIE。当IRQF位变为1时,引脚变为低电平引起中断申请。
在有以下情况中的一种或几种发生时,中断请求标志位IRQF置高:
PF=PIE=1;
AF=AIE=1;
UF=UIE=1;
IRQF=PF·PIE+AF·AIE+UF·UIE。
IRQF一旦为高,IRQ引脚输出低。
(2)PF
周期中断标志位。
(3)AF
闹钟中断标志位。
(4)UF
更新周期结束中断标志位。
寄存器C的低4位是未定义的保留位,不能写入,读出值始终为0。
4.寄存器D
最高位 最低位
寄存器D为只读寄存器。当VRT=0时表示内置电池能量耗尽,此时RAM中的数据正确性无法保证。低6位无用,只读,读出值恒为0。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。