用DS12887制作无电源仍可走时的时钟
乍一看题目读者可能会纳闷,这是什么奇怪的东西,不用电源还可以工作?其实笔者只是在这里卖了个关子,说的是不用外加电源也可以正常走时,并不是说整个电路工作时不需要供电。也就是说不使用时这个时钟不需要供电,在你加上电源之后就可以显示时间,并且仍然是正确的。就好像有些手机关闭之后又取下电板,等你下次开机的时候它又能显示正确的时间。其实这些手机里面都是有后备电池的,就是做时钟那一小块电路有后备电池供着电的。要是后备电池没有了电,取下电板后问题就来了,这也是为什么有些用久了的手机取下电板再装上,时间就不对了的缘故。但是本文说的这个时钟不需要外加后备电池,那它是怎么做到这一点的呢?请听我慢慢道来。
先了解一下主角的基本特性吧。DS12887是Dallas半导体公司推出的实时时钟芯片,在芯片内部集成了石英晶体、锂电池和其他支持电路,在没有外部供电的情况下,可以正确走时10年;可以计数时分秒、年月日和星期等信息,而且润年补偿到2100年有效;内部的闹钟寄存器用来保存闹钟时间,当实时时间等于闹钟时间时,在DS12887的IRQ引脚输出低电平,微控制器可以利用此信号作为闹钟信号来处理。笔者用万用板焊接了电路,实物图见如图1。下面将介绍如何使用DS12887制作这个时钟。
芯片引脚
了解了主角的基本特性,再来看看它的引脚。一个芯片的引脚可以看作是跟外界交流的通道,了解了引脚的用法就可以知道如何跟单片机相连。芯片引脚如图2所示,其中部分引脚命名与官方的数据手册有所不同,原数据手册上使用的是Motorala总线时序的命名方式,这里为了方便理解,采用Intel总线时序的命名方式,因为文章所使用的51单片机即为Intel时序。这两种总线时序最初分别是用在Motorala和Intel两家公司生产的芯片中,有兴趣的朋友可以在DS12887的数据手册上找到更详细的信息。引脚MOT为总线方式选择,DS12887可以有两种时序:当MOT接VCC时选择Motorala总线时序;当MOT接地或悬空时选择Intel总线时序。本文用AT89S52作为控制器,AT89S52作为一种典型的51单片机,理所当然使用的是Intel总线时序。
AD0~AD7是地址、数据复用线,跟标准的51单片机的P0口类似,在一个读写周期里的前后两个时间段分别是作为地址线或数据线。可以直接连接到AT89S52的P0口。
ALE为地址锁存信号,因为DS12887数据地址线采用分时复用的形式,所以需要ALE作地址锁存信号。在一个读写周期里AD0~AD7引脚上首先出现的信号表示地址,通过ALE的下降沿将该信号锁存到DS12887的地址寄存器,稍后AD0~AD7引脚上出现的信号则表示写入或读出DS12887的数据。ALE可以直接连接至AT89S52的ALE引脚。
RD、WR是读写控制信号引脚,分别连接AT89S52的RD(P3.7)、WR(P3.6)引脚。CS为片选信号,为低电平时选中芯片,可以跟AT89S52的P2.7脚相连,这样就可以形成DS12887的读写基地址:0x0000。
IRQ引脚为中断输出信号,当DS12887产生中断时,在IRQ引脚输出有效低电平,该引脚为漏极开路输出,在外部需要加上拉电阻。复位功能在本设计中不使用,RST可以直接接高电平。
片内资源
看完了外面,进到里面看看。DS12887内部有10字节的时钟(时、分、秒)、闹钟(时、分、秒)和日历(年、月、日、星期)寄存器和4个控制寄存器以及114字节的通用RAM。地址分配如附表所示。在本文的设计中只使用了前面14字节的时钟、闹钟、日历和控制寄存器,其余的114字节的RAM并未使用。采用了图3所示的电路图后,片内的14字节的地址分配就是从0x0000~0x000D,在程序中可以像访问外部RAM一样方便地读取和写入数据至这些地址。0x0000~0x0009是时钟、闹钟和日历寄存器,保留了时间信息等相关内容,单片机可以通过读取这些内容将时间信息显示出来。寄存器A的BIT6~BIT5控制DS12887内部晶体振荡器的关断。寄存器B控制各种中断的使能,在本文中需要将闹钟使能位(BIT5)打开,BIT2决定输出的时钟数据是十六进制或是BCD码,BIT1决定时间采用的格式:24小时或12小时制。寄存器C保存了中断标志位,若在使用多种中断的情况下,微控制器可以通过读取该寄存器辨别是产生了何种中断,从而进入相应的处理程序。而在本设计中,只使用了闹钟中断,当在/IRQ引脚输出低电平时,就可以判断产生了闹钟时间到
- 由振荡器生成精确时钟源的设计方案(12-08)
- TI WEBENCH的设计工具(06-09)
- CTS设计技巧:布线工程师如何充分“掌控”时钟信号?(01-22)
- 电路的均方根输出在宽范围内与温度呈线性比例关系(11-21)
- 基于MPC92433的高频时钟电路的设计(07-24)
- 用于实时时钟的32.768kHz晶振电路分析与设计(01-11)