骆定辉
(台州市环科环保设备运营维护有限公司 318000)
DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。图1为DS1302的引脚功能图
图1 DS1302的引脚
从2001年开始各地方环境保护部门开始安装重点企业污染源在线系统,到2007年环保部开始大范围安装重点企业污染源在线系统,污染源在线系统具有实时监控企业排放废气或废水的各项指标,协助环保部门对企业排污的监管。但是系统运行需要电源且由企业提供。当企业排污未达标甚至明知超标仍要排放时,就会采取将系统电源关闭来躲避监测系统的检测。由于企业数量巨大,无法对关电行为进行实时执法。现设计一款电源运行记录仪,记录在线系统的断电时间以及来电时间,具备现场查看功能。协助环保部门对非法停电的行为进行监督。
系统的主要功能是检测现场的有无电源,并记录下现场每次电源变化的时间及状态,电源变化的时间由计时器提供,状态分为断电和来电两种。难点为系统必须在现场无电源时长时间工作。因为系统由单片机AT89C52、储存芯片、及显示部分组成,功耗大,即使采用外置电源也无法保证长时间监测运行。
综上所述,本系统选择计时芯片DS1302,利用DS1302的主电源/后背电源的双电源功能,安装3V电池作为后备电源,只供DS1302芯片来计时,无需供应单片机及其附属电路,那运行功耗得到大幅度降低,当现场有电源时,停止电池供电以确保长时间测量。
利用DS1302系统断电时可以以后备电源供电的优点,保持时钟不会因为系统断电而中止计时,同时利用DS1302内部的31个用于临时性存放数据的RAM寄存器。存放AT24C256的数据地址,当来电时能让单片机将数据准确的存入AT24C256的相应地址中,而不会造成覆盖以前的数据。存放完整的数据以便系统来电时可以查看。
本系统以单片机AT89C52采集电源状态以及按键的输入,储存采集数据,处理并显示。计时芯片DS1302用于计时并向单片机提供准确时间。显示HD7279用于显示,AT24C256用于历史数据的储存。
系统的电源部分采用延时设计,当断电情况发生后,电源可以短时间继续供电,K3由主电源控制,断电时闭合,在电源短时间供电的情况下记录下断电信息。主要电路图如下图。
图2 系统电路图
程序设计采用DS1302不断电的特性,将AT24C256的数据地址存储在DS1302的RAM寄存器中,可以在系统每次断电恢复时知道上次断电时储存的数据在哪个位置,来电的记录存放于这个地址。
系统初次使用时,对DS1302进行初始化,初始化包括赋值时间和清空RAM寄存器数据,在今后的断电和恢复过程中不再对时间进行初始化。当系统初次开启或由断电情况恢复时,读取DS1302中的分数据、小时数据、日期数据、月数据、年数据以及来电标志数据,共6个字节,再读取C1、C3的数据作为AT24C256的最后存放地址,将6个字节依次存放于地址为0000H~0005H的存储器中。再将0005H+1覆盖于DS1302的两个寄存器中。由K3的闭合标志断电情况的发生,此时,再次读取DS1302中的分数据、小时数据、日期数据、月数据、年数据以及断电标志数据,存放于地址为0006H~000BH的存储器中。再将地址+1覆盖于DS1302的两个寄存器中。为防止因为延时电源时间不可控的情况下多次写入断电信息,在单片机初始化中设标志位数值为0,当标志位为0时,可写入断电信息,写入一次断电信息后,标志位变为1,不可再次写入断电信息,只有断电初始化后方可再次写入。
当电源情况正常时。秒数据、分数据、小时数据与日期数据、月数据、年数据以20S为周期进行循环送入显示芯片进行显示。当K1按下时,读取DS1302的存储器地址并-3,将月数据、年数据以及来电或断电标志数据送入显示,再按一下,存储器地址再-3,将分数据、小时数据、日期数据送入显示。依此类推,如果30S内K1无动作将返回待机画面显示实时时间。
因为AT24C256芯片的储存空间为512页,每页64个字节,地址区间为0000H~7FFFH,实际有效地址位为15位,低6位表示字节,高9位表示页码。当写页操作写入一个数据字节后,微控制器不发停止状态,而是在应答信号后接着输入63 个字节。每一个字节接收完毕后,EEPROM 照样输出一个零应答信号。因为一页只有64 个单元,所以数据字的地址低6 位在接收到一个字节后会自动加l,而高位地址不变,即页地址不变。若内部产生的地址达到了页的边界时,系统将回到页的开始进行写。如果一次要写的字节大于64字节,则最早写入的字节将被覆盖。所以本系统采用写字节操作。程序流程图如图3。
图3 程序流程图
本系统的试验后,功能基本达到,系统充分利用了DS1302的后备电源的功能,不光是时钟走时与外接电源无关,自带的寄存器也可以长时间保持数据,利用DS1302的寄存器储存AT24C256的地址,可以忽略AT24C256的地址低6 位在接收到一个字节后会自动加l,而高位地址不变造成的系统将回到页的开始进行写的缺点。以保证系统可以正常日常监控企业的电源供给情况,并且可以随时查看历史断电和来电的记录。
[1] 王立文,肖理庆.利用DS1302存储数据的一种高效方法.[J] .现代电子技术,2008(24).
[2] 周巧娣,刘敬彪.AT24C256 在单片机系统中的应用.[J].国外 电子元器件,2003(2).