DS12C887元器件详解是什么?
摘要:元器件详解——DS12C887 引言 在嵌入式开发中,经常需要获取或记录时间信息,例如电子时钟、数据记录器、定时开关等。这时候就需要一个实时时钟(RTC)芯片。市面上RTC芯片众多,但对于刚入门的新手来说,DS12C887无疑是一个绝佳的起
元器件详解——DS12C887
引言
在嵌入式开发中,经常需要获取或记录时间信息,例如电子时钟、数据记录器、定时开关等。这时候就需要一个实时时钟(RTC)芯片。市面上RTC芯片众多,但对于刚入门的新手来说,DS12C887无疑是一个绝佳的起点——它几乎把最复杂的部分都封装好了,让你可以专注于软件逻辑,而不必担心硬件设计的坑。
本文将详细介绍DS12C887的功能、内部结构、引脚定义、典型电路以及简单的编程思路。希望能够帮助新手朋友快速上手。
1、DS12C887能做什么?
DS12C887是一个功能完善的RTC芯片,它的本职工作就是计时,它可以输出年、月、日、时、分、秒,并且能自动处理闰年,时间跨度从1970年到2099年。此外,它还额外提供了以下功能:
内置电池与晶振:出厂时内部集成了锂电池和32.768kHz晶振,主电源断电后仍能维持时钟运行长达10年。
128字节RAM:其中14字节用于时钟和控制寄存器,剩余114字节可供用户自由存储数据,且数据随时钟一起保持(掉电不丢失)。
闹钟功能:可设置一到三个闹钟(时分秒匹配),当时间到达时,芯片会通过中断引脚通知MCU。
可编程方波输出:可以SQW引脚输出2Hz~8kHz的方波,用于其他电路的时钟源。
2、DS12C887是否适合学习?
传统的RTC芯片(如DS1302、DS3231)通常需要外接晶振和备份电池,这对初学者来说增加了布线和焊接难度,而且容易因晶振不起振、电池接触不良导致失败。DS12C887将晶振和电池密封在黑色外壳内,用户只需连接电源和数据线即可工作,极大降低了入门门槛。
此外,它的接口是标准的并行接口,读写时序简单直观,非常适合用51单片机、Arduino等学习控制。当然,现代的MUC也可以通过GPIO模拟时序与之通信。
3、芯片内部结构
DS12C887内部框图可以简化为以下部分:
振荡器与分频器:内部晶振产生的32.768kHz信号经过分频得到1Hz时钟。
时钟计数器链:对1Hz进行累加,计算出秒、分、时……同时处理闰年。
闹钟比较器:将当前时间与闹钟寄存器设定的值比较,一致时产生中断。
控制逻辑与寄存器组:包含14个特殊功能寄存器(控制/状态寄存器+时间/闹钟/日历寄存器)。
用户RAM:114字节的通用静态RAM,地址从0x0E开始。
4、引脚功能详解
DS12C887的引脚排列如图1所示,各管脚的功能说明如下:
GND、VCC:直流电源,其中VCC接+5V输入,GND接地,当VCC输入为+5V时,用户可以访问DS12C887内的RAM中的数据,并可对其进行读、写操作;当VCC的输入小于+4.25时,禁止用户对内部RAM进行读、写操作,此时用户不能获取芯片内的时间信息;当VCC的输入小于+3V时,DS12C887会自动将电源换到内部自带的锂电池上,以保证内部的电路能够正常工作。
MOT:模式选择脚,DS12C887有两种工作模式,即Motorola模式和lntel模式,当MOT接VCC时,选用的工作模式是Motorola模式,当MOT接GND时,选用的是lntel模式,本文主要讨论lntel模式。
SQW:方波输出脚,当供电电压VCC大于4.25V时,SQW脚可以进行方波输出,此时用户可以通过对控制寄存器编程来得到13种方波信号输出。
AD0~AD7:复用地址数据总线,该总线采用时分复用技术,在总线周期的前半部分,出现在AD0~AD7上的是地址信息,可用来选通DS12C887内的RAM,总线周期的后半部分出现在AD0~AD7上的是数据信息。
AS:地址选通输入脚,在进行读写操作时,AS的上升沿将AD0~AD7上出现的地址信息锁存到DS12C887上,而下一个下降沿清除AD0~AD7上的地址信息,不论是否有效,DS12C887都将执行操作。
DS/RD:数据选择或读输入脚,该引脚有两种工作模式,当MOT接VCC时,选用Motorola工作模式,在这种工作模式中,每个总线周期的后一部分的DS为高电平,被称为数据选通。在读操作中,DS的上升沿使DS12C887将内部数据送往总线AD0~AD7上,以供外部读取。在写操作中,DS的下降沿将使总线 AD0~AD7上的数据锁存在DS12C887中;当MOT接GND时,选用Intel工作模式,在该模式中,该引脚是读允许输入脚,即Read Enable。
R/W:读/写输入端,该管脚也有2种工作模式,当MOT接VCC时,R/W工作在Motorola模式。此时,该引脚的作用是区分进行的是读操作还是写操作,当R/W为高电平时为读操作,R/W为低电平时为写操作;当MOT接GND时,该脚工作在Intle模式,此时该作为写允许输入,即Write Enable。
