單片機(jī)時鐘芯片DS12887的應(yīng)用
DS12887是美國達(dá)接斯半導(dǎo)體公司(Dallas)最新推出的串行接口實時時鐘芯片,采用CMOS技術(shù)制成,具有內(nèi)部晶振和時鐘芯片備份鋰電池,同時它與目前IBM AT計算機(jī)常用的時鐘芯片MC146818B和DS1287管腳兼容,可直接替換。它所提供的世紀(jì)字節(jié)在位置32h,世紀(jì)寄存器32h到2000年1月1日將從19遞增到20。
采用DS12887芯片設(shè)計的時鐘電路無需任何外圍電路和器件,并具有良好的微機(jī)接口。DS12887芯片具有微功耗,外圍接口簡單,精度高,工作穩(wěn)定可靠等優(yōu)點,可廣泛用于各種需要較高精度的實時時鐘系統(tǒng)中。
DS12887主要功能簡介
(1)內(nèi)含一個鋰電池,斷電后運行十年以上不丟失數(shù)據(jù)。
(2)計秒,分,時,天,星期,日,月,年,并有閏年補嘗功能。
(3)二進(jìn)制數(shù)碼或BCD碼表示時間,日歷和定鬧。
(4)12小時或24小時制,12小時時鐘模式帶有PM和AM指示,有夏令時功能。
(5)Motorola和Intel總線時序選擇。
(6)有128個字節(jié)RAM單元與軟件接口,其中14個字節(jié)作為時鐘和控制寄存器,114字節(jié)為通用RAM,所有RAM單元數(shù)據(jù)都具有掉電保護(hù)功能。
(7)可編程方波信號輸出。
(8)中斷信號輸出(IRQ)和總線兼容,定鬧中斷,周期性中斷、時鐘更新周期結(jié)束中斷可分別由軟件屏蔽,也可分別進(jìn)行測試。
原理及引腳說明
DS12887內(nèi)部由振蕩電路,分頻電路,周期中斷/方波選擇電路,14字節(jié)時鐘和控制單元,114字節(jié)用戶非易失RAM,十進(jìn)制/二進(jìn)制累加器,總線接口電路,電源開關(guān)寫保護(hù)單元和內(nèi)部鋰電池等部分組成。DS12887引腳分配如圖1:
Vcc:直流電源+5V電壓。當(dāng)5V電壓在正常范圍內(nèi)時,數(shù)據(jù)可讀寫;當(dāng)Vcc低于4.25V,讀寫被禁止,計時功能仍繼續(xù);當(dāng)Vcc下降到3V以下時,RAM和計時器供電被切換到內(nèi)部鋰電池。
MOT(模式選擇):MOT引腳接到Vcc時,選擇MOTOROLA時序,當(dāng)接到GND時,選擇Intel時序。
SQW(方波信號輸出):SQW引腳能從實時鐘內(nèi)部15級分頻器的13個抽頭中選擇一個作為輸出信號,其輸出頻率可通過對寄存器A編程改變。
AD0-AD7(雙向地址/數(shù)據(jù)復(fù)用線):總線接口,可與Motorola微機(jī)系列和Intel微機(jī)系列接口。
AS(地址選通輸入):用于實現(xiàn)信號分離,在AD/ALE的下降沿把地址鎖入DS12887。
DS(數(shù)據(jù)選通或讀輸入):DS/RD引腳有兩種操作模式,取決于MOT引腳的電平,當(dāng)使用Motorola時序時,DS是一正脈沖,出現(xiàn)在總線周期的后段,稱為數(shù)據(jù)選通;在讀周期,DS指示DS12887驅(qū)動雙向總線的時刻;在寫周期,DS的后沿使DS12887鎖存寫數(shù)據(jù)。選擇Intel時序時,DS稱作(RD),RD與典型存貯器的允許信號(OE)的定義相同。
R/W(讀/寫輸入):R/W引腳也有兩種操作模式。選Motorola時序時,R/W是低電平信號時,指示當(dāng)前周期是讀或?qū)懼芷?DS為高電平時,R/W高電平指示讀周期,R/W信號一低電平信號,稱為WR。在此模式下,R/W引腳與通用RAM的寫允許信號(WE)的含義相同。
CS(片選輸入):在訪問DS12887的總線周期內(nèi),片選信號必須保持為低。
IRQ(中斷申請輸入):低電平有效,可作微處理的中斷輸入。沒有中斷的條件滿足時,IRQ處于高阻態(tài)。IRQ線是漏極開路輸入,要求外接上接電阻。
RESET(復(fù)位輸出):當(dāng)該腳保持低電平時間大于200ms,保證DS12887有效復(fù)位。
內(nèi)部功能
地址分配
DS12887的地址由114字節(jié)的用戶RAM存放。10字節(jié)的存放實時時鐘時間,日歷和定鬧RAM及用于控制和狀態(tài)的4字節(jié)特殊寄存器組成,幾乎所有的128個字節(jié)直接讀寫。
時間,日歷和定鬧單元
時間和日歷信息通過讀相應(yīng)的內(nèi)存字節(jié)來獲取,時間,日歷和定鬧通過寫相應(yīng)的內(nèi)存字節(jié)設(shè)置或初始化,其字節(jié)內(nèi)容可以是二進(jìn)制或BCD形式。時間可選擇12小時制或24小時制,當(dāng)選擇12小時制時,小時字節(jié)的高門為邏輯“1”代表PM。時間,日歷和定鬧字節(jié)是雙緩沖的,總是可訪問的。每秒鐘這10個字節(jié)走時1秒,檢查一次定鬧條件,如在更新時,讀時間和日歷可能引起錯誤,三個字節(jié)的定鬧字節(jié)有兩種使用方法。第一種,當(dāng)定鬧時間寫入相應(yīng)時,分,秒,定鬧單元,在定允許鬧位置高的條件下,定鬧中斷每天準(zhǔn)時起動一次。第二種,在三個定鬧字節(jié)中插入一個或多個不關(guān)心碼。不關(guān)心碼是任意從O0到FF的16進(jìn)制數(shù)。當(dāng)小時字節(jié)的不關(guān)心碼位置位時,定鬧為小時發(fā)生一次;同樣,當(dāng)小時和分鐘定鬧字節(jié)置不關(guān)心位時,每分鐘定鬧一次;當(dāng)三個字節(jié)都置不關(guān)心位時,每秒中斷一次。
非易失RAM
在DS1288中,114字節(jié)通用非易失RAM不專用一任何特殊功能,它們可被處理器程序用作非易失內(nèi)存,在更新周期也可訪問。
中斷
RTC實時時鐘加RAM向處理器提供三個獨立的,自動的中斷源。定鬧中斷的發(fā)生率可編程,從每秒一次到每天一次,周期性中斷的發(fā)生率可從500ms到122s選擇。更新結(jié)束中斷用于向程序指示一個更新周期完成。中斷控制和狀態(tài)位在寄存器B和C中,本文的其它部分將詳細(xì)描述每個中斷發(fā)生條件。
晶振控制位
DS12887出廠時,其內(nèi)部晶振被關(guān)掉,以防止鉭電池在芯片裝入系統(tǒng)前被消耗。寄存器A的BIT4-BIT6的其它組合都是使晶振關(guān)閉。
方波輸出選擇
15級分頻抽頭中的13個可用于15選1選擇器,選擇分頻器抽頭的目的是在SQW引腳產(chǎn)生一個方波信號,其頻率由寄存器A的RS0-RS3位設(shè)置。SQW頻率選擇器與周期中斷發(fā)生器共有15選1選擇器,一旦頻率選擇好,通過用程序控制方波輸出允許位SQWE來控制SQW引腳輸出的開關(guān)。
周期中斷選擇
周期中斷可在IRQ腳產(chǎn)生500ms一次到每122μs一次的中斷,中斷步率同樣由寄存A確定,它的控制位為寄存器B中的PIE位。
更新周期
DS12887每一秒執(zhí)行一次更新周期,保證時間、日歷的準(zhǔn)確。更新周期還比較每一定鬧字節(jié)與相應(yīng)的時間字節(jié),如果匹配或三個字節(jié)都是不關(guān)心碼,則產(chǎn)生一次定鬧中斷。
狀態(tài)控制寄存器
DS12887有4個控制寄存器,它們在任何時間都可訪問,即使更新周期也不例外。
寄存器A
UIP:更新周期正在進(jìn)行位。當(dāng)UIP為1,更新轉(zhuǎn)換將很快發(fā)生,當(dāng)UIP為0,更新轉(zhuǎn)換至少在244s內(nèi)不會發(fā)生。DV0、DV1、DV2:用于開關(guān)晶振和復(fù)位分頻鏈。這些位的010唯一組合將打開晶振并充許RTC計時。
RS3、RS2、RS1、RS0:頻率選擇位,從15級頻率器13個抽頭中選一個,或禁止分頻器輸入。選擇好的抽頭用于產(chǎn)生方波(SQW引腳)輸出和周期中斷,用戶可以:
(1)用PIE位允許中斷。
(2)用SQWE位允許并用相同的頻率。
寄存器B、C、D的介紹從略
圖2是作者所設(shè)計的LED大屏幕系統(tǒng)中DS12887與80196KB的硬件連接圖。固化在下位機(jī)2764中的時間顯示子程序,由于篇幅關(guān)系在此從略,感興越的讀者可同本刊編輯部聯(lián)系。
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
分頻器相關(guān)文章:分頻器原理 晶振相關(guān)文章:晶振原理
評論