18.1.2 实时时钟芯片DS1302的日期操作
DS1302的日期操作主要用于对日期和时间相关的寄存器进行操作。实时时钟芯片DS1302与日期和时间有关的寄存器数据格式,如图18.3所示。下面分别介绍各个寄存器的含义。
图 18.3 DS1302的日期数据格式
❑秒寄存器,其中以BCD码形式分别存放秒数据。秒寄存器的最高位为时钟暂停控制位,该位设置为0时时钟振荡器暂停,DS1302进入低功耗状态,该位设置为1时启动时钟振荡器。秒寄存器的地址为00H。
❑分寄存器,其中以BCD码形式分别存放分钟数据。分寄存器的地址为01H。
❑小时寄存器,其中以BCD码形式分别存放小时数据。小时寄存器的地址为02H。
❑日寄存器,其中以BCD码形式分别存放日期数据。日寄存器的地址为03H。
❑月寄存器,其中以BCD码形式分别存放月数据。月寄存器的地址为04H。
❑星期寄存器,其中以BCD码形式分别存放星期数据。星期寄存器的地址为05H。
❑年寄存器,其中以BCD码形式分别存放年数据。年寄存器的地址为06H。
提示BCD码利用4位二进制位元来储存1位十进制的数。对于秒、分、小时、日、月、年这些数据用十进制表示时最多需要2位,因此用二制表来示最多需要8位。对于个位数有0~9的变化,需要使用4位二进制,对于十位数,如秒、分表示的范围为0~5,最多需要3位二进制就可表示。因此,8位寄存器中会多出1个以上的二进制位,可供作他用。
提示从图18.3可看到,小时寄存器的最高位是AM-PM/12-24模式选择位,该位为1时,选择12小时制,为0时,选择24小时制。在24小时制时,第5~6位用来表示小时。当为12小时制时,只需要用第2位来表示小时的十位即可(12小时制时十位只能为0或1,一位二进制即可)。
通过读这些寄存器可以获知当前的日期和时间信息,通过写这些寄存器可以设置日期和时间信息。