當前位置:編程學習大全網 - 編程語言 - DALLAS DS12C887 REAL TIME 模塊是做什麽用的

DALLAS DS12C887 REAL TIME 模塊是做什麽用的

在智能化儀器儀表中,往往需要走時準確的實時時鐘為

多通道數據采集、定時及實時控制提供精確的時間基準和同

步信號。目前,實現實時時鐘的方法主要有軟件時鐘(由軟

件計時實現)、硬件時鐘(由硬件時鐘芯片實現)、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組合,關閉芯片

內部晶振,避免鋰電池耗盡。

  • 上一篇:重慶郵電大學的軟件工程專業好不好?
  • 下一篇:計算機原理是什麽課,要學些什麽?
  • copyright 2024編程學習大全網