- DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能
RTC(Real Time Clock):实时时钟,是一种集成电路,通常称为时钟芯片
引脚定义和应用电路
引脚名 | 作用 | 引脚名 | 作用 |
VCC2 | 主电源 | CE | 芯片使能 |
VCC1 | 备用电池 | IO | 数据输入/输出 |
GND | 电源地 | SCLK | 串行时钟 |
X1、X2 | 32.768KHz晶振 |
内部结构框图
寄存器定义
手册规定(位7)需为1,(位6)如果为1则操作RAM,如果为0则操作时钟寄存器,位(1~5)位则表示输入输出的指定寄存器,(位 0) 在逻辑0时为写操作(输出),逻辑 1时为读操作(输入).命令字以 LSB (位 0)开始总是输入.
例如:想要读取秒寄存器的值,则应为1000 0000,写入则是1000 0001
想要读取分寄存器的值,则应为1000 0011,写入则是1000 0010
时序定义
时序运行逻辑:
第一步,将CE置1,
第二步将数据写到I/O口上,
第三步SCLK给个上升沿,这时命令字就写入到单片机中了。
第四部将始终上升沿置0。
第五步将下一位数据放在I/O口上,然后重复第三步直到第八位被写入,此时命令字已被写入进单片机,单片机 则可以判断接下来的操作是写入数据还是读出数据。
如果是写入操作则一直重复第2、3步。
如果是读取数据,在写入完命令字后,SCLK将给下降沿来将数据读出。
最后所有操作都完成后再将CE置0。
BCD码
BCD码(Binary Coded Decimal),用4位二进制数来表示1位十进制数
例:0001 0011表示13,1000 0101表示85,0001 1010不合法
在十六进制中的体现:0x13表示13,0x85表示85,0x1A不合法
BCD码转十进制:DEC=BCD/16*10+BCD%16; (2位BCD)
十进制转BCD码:BCD=DEC/10*16+DEC%10; (2位BCD)