功能特點
DS12887是美國達拉斯半導體公司最新推出的時鐘芯片,采用CMOS技術制成,把時鐘芯片所需的晶振和外部鋰電池相關電路集于芯片內部,同時它與目前 IBM AT計算機常用的時鐘芯片MC146818B和DS1287管腳兼容,可直接替換。采用DS12887芯片設計的時鐘電路勿需任何外圍電路并具有良好的微機接口。DS12887芯片具有微軾耗、外圍接口簡單、精度高、工作穩(wěn)定可靠等優(yōu)點,可廣泛用于各種需要較高精度的實時時鐘場合中。其主要功能如下:
(1)內含一個鋰電池,斷電情況運行十年以上不丟失數據。
(2)計秒、分、時、天、星期、日、月、年,并有閏年補償功能。
(3)二進制數碼或BCD碼表示時間、日歷和定鬧。
(4)12小時或24小時制,12小時時鐘模式帶有PWM和AM指導,有夏令時功能。
(5)MOTOROLA5和INATAEL總線時序選擇。
(6)有128個RAM單元與軟件音響器,其中14個作為字節(jié)時鐘和控制寄存器,114字節(jié)為通用RAM,所有ARAM單元數據都具有掉電保護功能。
(中斷信號輸出(IRQ)和總線兼容,定鬧中斷、周期性中斷、時鐘更新周期結束中斷可分別由軟件屏蔽,也可分別進行測試。
DS12887的原理及管腳說明
DS12887內部原理如圖1所示,由振蕩電路、分頻電路、周期中斷/方波選擇電路、14字節(jié)時鐘和控制單元、114字節(jié)用戶非易失RAM、十進制/二進制計加器、總線接口電路、電源開關寫保護單元和內部鋰電池等部分組成。
GND,VCC:直流電源+5V電壓。當5V電壓在正常范圍內時,數據可讀寫;當VCC低于4.25V,讀寫被禁止,計時功能仍繼續(xù);當VCC下降到3V以下時,RAM和計時器被切換到內部鋰電池。
MOT(模式選擇):MOT管腳接到VCC時,選擇MOTOROLA時序,當接到GND時,選擇INTEL時序。
SQW(方波信號同):SQW管腳能從實時時鐘內部15級分頻器的13個抽頭中選擇一個作為輸出信號,其輸出頻率可通過對寄存器A編程改變。
AD0~AD7(雙向地址/數據復用線):總線接口,可與MOTOROLA微機系列和INTEL微機系列接口。
AS(地址選通輸入):用于實現信號分離,在AD/ALE的下降沿把地址鎖入DS12887。
DS(數據選通或讀輸入):DS/RD客腳有兩種操作模式,取決于MOT管腳的電平,當使用MOTOROLA時序時,DS是一正脈沖,出現在總線周期的后段,稱為數據選通;在讀周期,DS指示DS12887驅動雙向總的時刻,在寫周期,DS的后沿使DS12887鎖存寫數據。選擇INTEL時序時,DS稱作(RD),RD與典型存貯器的允許信號(OE)的定義相同。
R/W(讀/寫輸入):R/W管腳也有兩種操作模式。選MOTOROLA時序時,R/W是一電平信號,指示當前周期是讀或寫周期,DSO為高電平時,R/W高電平指示讀周期,R/W低電平指示寫周期;選INTEL時序,R/W信號是一低電平信號,稱為WR。在此模式下,R/W管腳與通用RAM的寫允許信號(WE)的含義相同。
CS(片選輸入):在訪問DS12887的總線周期內,片選信號必須保持為低。
IRQ(中斷申請輸入):低電平有效,可作微處理的中斷輸入。沒有中斷條件滿足時,IRQ處于高阻態(tài)。IRQ線是漏極開路輸入,要求外接上接電阻。
RESET(復位輸出):當該腳保持低電平時間大于200ms,保證DS12887有效復位。
DS12887的內部功能
地址分配圖
DS12887的地下分配圖如圖3所示,由114字節(jié)的用戶RAM,10字節(jié)的存放實時時鐘時間。日歷和定鬧RAM及用于控制和狀態(tài)的4字節(jié)特殊寄存器組成,幾乎所有的128個字節(jié)可直接讀寫。
時間、日歷和定鬧單元
時間和日歷信息通過讀相應的內存字節(jié)來獲取,時間、日歷和定鬧通過寫相應的內存字節(jié)設置或初始化,其字節(jié)內容可以是十進制或BCD形式。時間可選擇12小時制或24小時制,當選擇12小時制時,小時字節(jié)搞位為邏輯“1”代表PM。時間、日歷和定鬧字節(jié)是雙緩沖的,總是可訪問的。每秒鐘這10個字節(jié)走時1 秒,檢查一次定鬧條件,如在更新時,讀時間和日歷可能引起錯誤。三個字節(jié)的定鬧字節(jié)有兩種使用方法。第一種,當定鬧時間寫入相應時、分、秒定鬧單元,在定允許鬧位置高的條件下,定鬧中斷每天準時起動一次。第二種,在三個定鬧字節(jié)中插入一個或多個不關心碼。不關心碼是任意從C到FF的16進制數。當小時字節(jié)的不關心碼位置位時,定鬧為小時發(fā)生一次由于相線小時和分鐘定鬧字節(jié)置不關心位時,每分鐘定鬧一次;當三個字節(jié)都置不關心位時,每秒中斷一次。
非易失RAM
在DS12887中,114字節(jié)通用非易失RAM不專用于任何特殊功能,它們可被處理器程序用作非易失內存,。在更新周期也可訪問。
中斷
RTC實時時鐘加RAM向處理器提供三個獨立的、自動的中斷源。定鬧中斷的發(fā)生率可編程,從每秒一次到每天一次,周期性中斷的發(fā)生率可從500ms到 122μs選擇。更新結束中斷用于向程序指示一個更新周期完成。中斷控制和狀態(tài)位在寄存器B和C中,本文的其它部分將詳細描述每個中斷發(fā)生條件。
晶振控制位
DS12887出廠時,其內部晶振被關掉,以防止鋰電池在芯片裝入系統(tǒng)前被消耗。寄存器A的BIT4~BIT6為010時打開晶振,分頻鏈復位,BIT4~BIT6的其它組合都是使晶振關閉。
方波輸出選擇
如圖1原理圖所示,15級分步抽著中的13個可用于15選1選擇器,選擇分頻器抽頭的目的是在SQW管腳產生一個方波信號,其頻率由寄存器A的 RS0~RS3位設置。SQW頻率選擇與周期中斷發(fā)生器共離15選1選擇器,一旦頻率選擇好,通過用程序控制方波輸出允許位SWQE來控制SQW管腳輸出的開關。
周期中斷選擇
周期中斷可在IRQ腳產生500ms一次到每122μs一次的中斷,中斷頻率同樣由寄存A確定,它的控制位為寄存器B中的PIE位。
更新周期
DS12887每秒執(zhí)行一次更新周期還比較每一定鬧字節(jié)與相應的時間字節(jié),如果匹配枵三個字節(jié)都是不關心碼,則產生一次定鬧中斷。
ds12887應用設計
硬件接口電路
DS12887時鐘芯片和80C31單微機的接口電路如圖4所示。模式選擇腳MOT拉地,選擇不NTEL時序,選擇DS12887時鐘芯片的地址總線及 AS端口和80C31單片微機的P0及ALE端直接相聯;而DS、R/W讀寫控制線與單片機的RD、WAR控制線相連;DS12887的高位地址由 80C31半日片機的P2.7端口來片選,則DS12887的高8位地址定為7FH,而其低8俠地址則由芯片內部各單元的地址來決定(00H~3FH); DS12887的中斷輸出端IRQ和80C的外部INT0端相聯,給單片機提供中斷信號;DS12887的SQW端口可編程產生方波輸出信號。
接口軟件
下面為DS12887時鐘芯片和80C31單片機的接口軟件,假定采用每天24小時制的非夏令時,時間數據格式為BCD碼,初始化時間為1996年1月1 日9時00分00秒,1k方波輸出。時鐘芯片每一秒種向單片機申請中斷一次,一方面讓單片機修改一次時鐘顯示,另一方面也給單片微機系統(tǒng)提供時間基準。
(1)DS12887時鐘芯片的初始化寫入程序
MOV DPTR,#7F0AH;寄存器A地址
MOV A,#70H:DV2~DV0=111,分頻復位
MOVX @ DPTR,AA
INC DPTR:到寄存器B地址
MOV A,#8AH:停止更新,允許更新中斷,選BCD碼,24小時制
MOVX @DPRT,A
MOV DPL,#00H,秒單元地址
CLR A:00秒
MOVX @DPTR,A
MOV DPL,#02H;分單元地址
CLR A:00分
MOVX @DPTR,A
MOV DPL,#04H;時單元地址
MOV A,#09H;9時
MOVX @DPTR,A
MOV DPL#07H;日單元地址
MOV A,@01H:1日
MOVX?。繢PTR,A
INC DPTR:到月單元地址
MOV A,#01H;1月
MOVX @DPTR,A
IC DPTR:到年單元地址
MOV A,#96H;1996年
MOVX @DPTR,A
INC DPTR;到寄存器A地址
MOV A,#26H;DV2~DV0=010 RS3~RS0=0110
MOVX @DPTR,A:選周期中斷率為976.5625μs,允許方波輸出,頻率1kHz
INC DPTR:到寄存器B
MOV A,#1AH;每秒更新一次,允許方波輸出,24小時制
MOVX @DPTR,A:時鐘開始運行
(2)讀取DS12887時鐘日歷數據程序
DS12887的日歷時鐘通常有中斷和查詢兩種方法讀出。但在讀數據時,首先要判斷數據是否更新結束,只有在數據更新結束時數據讀出才有效。
①采用查詢法讀取數據:
查詢寄存器A的UIP位,當UIP=0時,數據更新結束,可以讀出。以下是采用查詢方法,從秒至年單元的數據讀出后存入80C31內部RAM的30~35H單元中,該部分程序如下:
MOV DPTR,#7F0AH;寄存器A地址
MOVX A,@DPTR
WAIT:JB ACC,7,WAIT:UIP=1則等待更新完畢
MOV DPL,@00H;秒地址
MOV R0,#30H;取目標首地址
MOVX A,@DPTR;取秒數據
MOV @R0,A:送入80C31的內部RAM緩沖區(qū)
IC DPTR:移指針
IC R0;
②采用中斷法讀取數據
當DS12887發(fā)出中斷請示,單片微機可以響應中斷而讀取日歷數據。對于更新結束中斷,中斷時更新結束,數據有效,可以直接讀取日歷數據;對于鬧鐘中斷和周期中斷也需查詢寄存器A的UIP位,當UIP=0時,數據更新結束,再讀出日歷時鐘,具體指令這里不再列出。
評論
查看更多