51单片机内部含有晶振,可以实现定时/计数功能。但是其缺点有:精度往往不高、不能掉电使用等。 我们可以通过DS1302时钟芯片来解决以上的缺点。
DS1302时钟芯片
功能:DS1302是一种低功耗实时时钟芯片,内部有自动的计时功能,其范围包括:年、月、日、时、分、秒、星期。(且每个月的天数和闰年的天数可以内部自动调整)。
结构以及引脚定义:
常见的DS1302时钟芯片有DIP(直插式)和SO(表贴式)两种封装 。
引脚名称 | 功能 |
X1、X2 | DS1302外部晶振引脚,通常接32.768K晶振 |
VCC1 | 备用电源,在主电源使用时可被充电 |
VCC2 | 主电源供应管脚(与单片机共用一个电源) |
GND | 电源地 |
CE | 使能端,也是复位引脚,在进行读写时CE要保持高电平 |
I/O | 串行数据输入或输出 |
SCLK | 串行时钟 |
通常通过单片机直接与CE、I/O、SCLK这3个引脚相连,控制其高低电平,进而控制DS1302时钟芯片。
DS1302电路图
其中,C2和C3为旁路电容,目的是消除晶振起振时产生的电感干扰。对于此电路,没有接入备用电池,可自行将外部备用电源接入VCC1。
DS1302内部寄存器
控制寄存器
功能:通过给控制寄存器数据,来决定:进入年月日等具体哪一个寄存器、进行读/写操作。
上图为控制寄存器样式。
最高位一直为1;
第6位:1表示RAM,寻址内部存储器;0为CK,寻址内部寄存器。
第5位~第1位:为年月日等日历寄存器的地址。
最低位:1表示下一步操作为“读”;0表示下一步操作为“写”。
日历/时钟寄存器
上图为年月日等相关寄存器的地址(绿框内)、功能等。以下对其进行详细说明:
寄存器名称 | 取值范围 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
秒寄存器 |