多通道數據采集、定時及實時控制提供精確的時間基準和同
步信號。目前,實現實時時鐘的方法主要有軟件時鐘(由軟
件計時實現)、硬件時鐘(由硬件時鐘芯片實現)、GPS時鐘
(由全球衛星定位系統提供)等。軟件時鐘具有硬件開銷小、
成本低、外圍電路簡單等優點。但由於時鐘是靠軟件延時實
現的,運行過程中不僅要占用大量的CPU時間,而且計時精
度低、走時誤差較大,在智能化儀器儀表中很少采用。GPS
(全球衛星定位系統)提供的實時時鐘信號雖然具有相當高
的精度,但由於GPS產品成本高,在普通智能化儀器儀表中
很少采用。本文介紹壹種較新的實時時鐘芯片DS12C887及
其與AT89C51單片機的軟硬件接口。
1 DS12C887的特點及引腳描述
DS12C887是由美國達拉斯半導體公司推出的CMOS並
行實時時鐘芯片,它與目前微型計算機主機板中普遍采用的
MC146818、DS12887時鐘芯片引腳完全兼容,可以直接替
換。DS12C887將時鐘電路、晶振及其外圍電路、鋰電池及其
相關電路等嵌裝成壹體,並具有與微處理器的並行接口,可
方便地用於對時鐘精度要求較高的智能化儀器儀表中。
DS12C887的主要功能特點有:
(1)內含鋰電池。當外電源電壓降到3 V以下時,時鐘
自動將電源切換到由芯片內部鋰電池供電,在外電源斷電的
收稿日期:2002—05~20
作者簡介:宋雨潭(1972壹),女,吉林長春人,工程師。
情況下,時鐘可以連續運行10 a而不丟失數據。
(2)具有秒、分、時、日、月、年、世紀、星期計時及閏年自
動校正功能。
(3)可根據用戶需要選擇24/12 h運行方式和夏令時運
行方式。
(4)由硬件選擇MOTOROLA和INTEL總線時序,便
於和不同的微處理器相連接。
(5)內含128字節掉電保持RAM單元,其中10字節用
於存儲時鐘日歷和報警信息,4字節用於狀態控制寄存器,其
余I14字節供用戶存儲需要掉電保持的信息和數據。
(6)有3個可編程中斷源,可與各種微處理器中斷系統
相連接。
(7)有壹個可編程方波信號輸出引腳,根據用戶需要輸
出不同頻率的方波信號。
DS12C887引腳排列見圖1,DS12C887各引腳功能見表
1。
表1 DS1287引腳功能描述
管腳號 標識符 主要功能
MOTOROLA與I L總線時序選擇
1 MOT MOT=1:M I、[)R01 A總線時序
MOT=0:INTEL總線時序
2、3、16
Nc 保留(空閑)
2U 壹22
4—11 AEO—AD7 雙向地址/數據復用總線
2 1381212887狀態控制寄存器
1381212887內部存儲器組織見圖2。下面著重介紹影響
DS12C887功能和工作狀態的狀態控制寄存器A—D。
VCC
SQW
NC
NC
NC
Tii
RESET
DS
NC
R/W
AS
CS
地址 內容
ooH 秒
01H 秒報警
02H 分
03H 分報警
04H 時
05H 時報警
06H 星期
07H 日
O8H 月
09H 往
0AH 寄存器A
0BH 寄存器B
0CH 寄存器C
0DH 寄存器D
0EH 用戶數據區
I I
7FH 用戶數據區
圖1 DS12(2887引腳排列
(1)狀態控制寄存器A(地址XXOAH)
bit7 bit6 bit5 bit4 bit3 bit2 bitl bito
UIP DV2 DVl Dv0 RS3 RS2 RSl RSo
UIP:數據更新標誌位。UIP=1,數據更新轉換將很快
發生。UIP:0,數據更新轉換將在244 以後發生。
DV0壹DV2:內部晶振控制位。為防止DS12C887內部
鋰電池在裝入系統前被消耗,用戶可以通過軟件設置DV0壹
DV2將內部晶振關閉。只有當DV0=0,DV1=I,DV2:0
時才打開內部晶振允許計時。
RS3壹RS0:SQW 方波輸出和周期中斷頻率選擇控制
位。不同的組合用於選擇不同的輸出方波頻率和中斷周期。
具體組合見表2。
表2 周期性中斷周期和方波頻率選擇表
狀態控制寄存器A不受復位信號的影響,除UIP位以
外,其它各位均可進行讀寫操作。
(2)狀態控制寄存器B(地址)()(0BH)
狀態控制寄存器B用於控制DS12C887的工作狀態。
每壹位均可進行讀寫操作。
bit7 bit6 bit5 bit4 bit3 bit2 bitl Kto
SET PIE AIE UIE WQWE D/M 24[12 溉
SET:更新控制位。SET:0,芯片每秒走時壹次。SET:1,
禁止時間更新。當對芯片時間和日期進行設置時,應由軟件
將SET位置1,設置完畢時再將其清零。
PIE、AIE、UIE:周期中斷、報警中斷、更新結束中斷允
許位。當某壹位或幾位為1時,允許芯片由IRQ引腳發出中
斷申請信號。
SQWE:可編程方波輸出允許位。當該位置1時,SQW
引腳按狀態控制寄存器A中選定的頻率輸出方波信號。
DM:二進制/BCD數據格式選擇位。DM =1,數據以二
進制格式存儲;DM=0,數據以BCD格式存儲。
24/12:24/12 h模式選擇位。該位置1選擇24 h計時方
式,該位清零選擇12 h計時方式。
DSE:夏時制選擇位。DSE=1。夏時制自動調整;DSE=
0,不使用夏時制。
(3)狀態控制寄存器C(地址XXOCH)
狀態控制寄存器C的各位用於指示芯片的工作狀態。
bit7 bit6 bit5 bit4 bit3 bit2 bitl bito
IRQP PF VF 0 0 0 0
維普資訊
第3期 宋雨潭.DS12C887及其在智能化儀器儀表中的應用
IRQF:中斷申請標誌位。當該位為1時,IRQ輸出低電平,
向CPU發中斷申請信號。使IRQF=1的邏輯表達式為:
IRQF=PF * PIE 十AF * AIE 十UF * UIE。
PF、AF、uF:周期中斷、報警中斷、更新周期結束中斷標
誌位。當某壹中斷條件滿足時相應標誌位被置1。
Bit0壹bit3:保留標誌位。這些位讀出值始終為0,並且
不允許用戶寫入。
(4)狀態控制寄存器D(地址XXODH)
D寄存器只有VRT位可用,該位用於指示芯片內鋰電
池的工作狀態。正常時VRT=1,鋰電池耗盡時VRT=0,此
時讀出的數據無效。該寄存器的其它各位均為廠家保留位,
讀出值始終為零,不允許用戶向這些位寫入數據。
bit7 bit6 bit5 bit4 bit3 bit2 bitl bito
VRT 0 0 0 0 0 0 0
3 13812(2887與A 9C51單片機的接口
AT89C51是美國ATMEL公司生產的具有MCS51內核
的8位單片機產品。該單片機具有時鐘頻率高(最24
MHz)、運行速度快、內含4KB EEPROM、P0口驅動能力強
(最大20mA)等特點,在智能化儀器儀表中得到了廣泛的應
用。在某智能化儀器中13812(2887與AT89C51的接口電路
部分如圖3所示。
+5 V
I K
502
圖3 DS12C887與A1 9c5l接El電路
由硬件連接圖可知13812(2887內部存儲器起始地址為
7F00H,時間、日歷及報警信息分別存儲在7F00H壹7F09H
單元中,狀態控制寄存器A—D 的地址分別為:7FOAH、
7FOBH、7F0CH、7F0DH。
4 13812(2887編程
由AT89C51和13812(2887構成的時問獲取電路的初始
89
化程序如下:
XBYTE[0x7F00十0x0B]=0x82;
XBYTE[0x7F00十0xOA]=0xA0;
XBYTE[0x7F00十0x0A]=0x20;
XBYTE[0x7F00十0x0B]=0x02;
/*所有的中斷禁止,24 h制,BCD碼格式*/
以下為獲取時間程序
unsigned char data time-c~ tuW ,time-year,time—month,
time-date,time-week;
unsigned char data time-hour,time-minute,time-second;
if((XBYTE[0x7F00十0x0A]&0x80)!=0)
{time-century=XBYTE[0x7F00+0x32];/*讀取世紀
*|
t’ime-year=XBYTE[0x7F00十0x90];/*讀取年份*/
time-month=
. XBYI'E[0x7F00+0x08];/*讀取月份*/
time-date=XBYTE[0x7F00+0x07];/*讀取日期*/
time-week=XBYTE[0x7F00+0x06];/*讀取星期*/
time-hour=XBYTE[0x7F00+0x04];/*讀取小時*/
time-m;nute=XBYTE[0x7F00+0x02];/*讀取分鐘*/
time-second=XBYTE[0x7F00+0x00];/*讀取秒鐘*/
}
5 I]sl2C887應用註意事項
(1)DS12C887具有報警中斷功能。當報警中斷時間寫
入相應的時、分、秒報警單元時,報警中斷每天準時發生壹
次。當在三個報警單元中插入壹個或多個不關心碼(()0H—
FFH十六進制數)時,可以設定較短的報警周期。例如:在時
報警單元中插入不關心碼,則報警每小時發生壹次;在時、分
報警單元中均插入不關心碼,則報警每分鐘發生壹次;若在3
個報警單元中均插人不關心碼,報警1 S將發生壹次。
(2)當采用查 、報警中斷和周期中斷方法讀取時鐘日
歷信息時,需要由軟件查詢狀態控制寄存器A的UIP位,當
UIP=0時,數據更新結束,讀取的數據有效。否則。當更新
周期正在進行時(UIP=1)將造成讀取數據錯誤。
(3)在進行時鐘日歷校正時,首先要停止時鐘運行,即
將狀態控制寄存器中B的SET位清零。
(4)在保存13812(2887時鐘芯片時,要通過軟件將狀態
控制寄存器A中DV2壹DVO設置為非010組合,關閉芯片
內部晶振,避免鋰電池耗盡。