新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機(jī)控制實時時鐘X1226的應(yīng)用設(shè)計

51單片機(jī)控制實時時鐘X1226的應(yīng)用設(shè)計

作者: 時間:2011-12-31 來源:網(wǎng)絡(luò) 收藏
引 言
具有時鐘和日歷的功能,時鐘依賴時、分、秒寄存器來跟蹤,日歷依賴日期、星期、月和年寄存器來跟蹤,日歷可正確通過2099年,具有自動閏年修正。
擁有強(qiáng)大的雙報警功能,能夠被設(shè)置到任何時鐘/日歷值上,精確度可到ls。可用軟件設(shè)置1 Hz,4096 Hz或32768Hz中任意一個頻率輸出。
該器件提供一個備份電源輸入腳VBACK1允許器件用電池或大容量電容備份供電。許多電池類型能夠用做Xicor公司器件的備份電池,3.OV或3.6V的鋰離子電池較為適合,使用期限為10年。另外一種用法可選擇一個大容量的電容,備份時間可持續(xù)幾天至兩個星期,時間的長短依賴于電容容量的大小。用一個簡單的硅或肖特基二極管連接到Vcc和充電電容的兩端,充電電容連接到Vback引腳,注意不能使用二極管對電池充電(特別是鋰離子電池)。切換到電池供電的條件是Vcc=Vback—O.1V,正常操作期間,供電電壓Vcc必須高于電池電壓,否則電池電量將逐步耗盡。

振蕩器所需晶體,采用外接32.768kHz的晶體。產(chǎn)生的振蕩誤差可通過軟件對數(shù)字微調(diào)寄存器、模擬微調(diào)寄存器的數(shù)值進(jìn)行調(diào)節(jié)加以修正,避免了外接電阻和電容的離散性對精度的影響。
器件可提供4Kb的EEPROM,8塊加鎖控制。可用作大量用戶數(shù)據(jù)存儲的存儲器,具有安全、保密性。這個存儲器的數(shù)據(jù)在主電源和備用電源全都失效時不受影響。


1 電路組成及工作原理
器件可與各種類型的微控制器或微處理器接口,接口方式為串行的I2C接口。其中數(shù)據(jù)總線SDA是一個雙向引腳,用于輸入或輸出數(shù)據(jù)。它是一個漏極開路輸出,在使用過程中需要添加上拉電阻,阻值大約在4.7Ω~10kΩ之間。本文介紹89C5l單片機(jī)與X1226的接口方法,由于89C沒有標(biāo)準(zhǔn)的I2C接口,只有用軟件進(jìn)行模擬。
為了更直觀地看到時間變換,采用八位LED數(shù)碼管顯示年、月、日或時、分、秒的變換,LED數(shù)碼管的驅(qū)動采用本公司自有產(chǎn)品PS7219A,數(shù)碼管選擇1.27cm共陰極紅色或綠色LED數(shù)碼管。由于PS7219A器件內(nèi)含IMP810單片機(jī)監(jiān)控器件,復(fù)位輸出高電平有效,因此在使用51系統(tǒng)時,無需添加監(jiān)控器件,使用PS7219A的復(fù)位輸出給復(fù)位即可,監(jiān)控電壓4.63V。硬件設(shè)計原理圖如圖1所示。

在硬件通電調(diào)試過程中,請不要用手去觸摸X1226的晶體,這樣可能會導(dǎo)致振蕩器停振。恢復(fù)振蕩器起振的方法是關(guān)閉電源(包括備份電源)重新上電另外需要說明的是,測量振蕩器時,請不要用示波器的探頭去測量X2的振蕩輸出,正確的方法是用探頭去測量PHz/IRQ的振蕩輸出,以確定是否起振和振蕩頻率是否準(zhǔn)確。測量時建議在該腳加一個5.lk Ω的上拉電阻。
注意:在印刷電路設(shè)計時,xl226的布線請參考X1226數(shù)據(jù)手冊的廠家推薦方法。


2 軟件設(shè)計
X1226由實時時鐘寄存器(RTC)、狀態(tài)寄存器(SR)、控制寄存器(CONTROL)、報警寄存器(Alarm0、Alarml)和客戶數(shù)據(jù)存儲器組成。由于實時時鐘寄存器(RTC)和狀態(tài)寄存器(SR)需要進(jìn)行頻繁的寫操作,因此它的存儲結(jié)構(gòu)為易失性SRAM結(jié)構(gòu),該結(jié)構(gòu)對寫操作的次數(shù)沒有限制。其它寄存器結(jié)構(gòu)均為非易失性EEPROM結(jié)構(gòu),該結(jié)構(gòu)對寫操作有次數(shù)限制,通常在10萬次以上。X1226初始化程序流程如圖2所示。

啟動條件子程序:
SETB SDA
LCALL YS4
SETB SCL
LCALL YS4
CLR SDA
LCALL YS4
CLR SCL
LCALL YS4
RET
停止條件子程序:
CLR SDA
LCALL YS4
SETB SCL
LCALL YS4
SETB SDA
RET
注:子程序YS4的作用是延時4μs。
2.1 寫操作
X1226初始化操作后,單片機(jī)對X1226進(jìn)行開始條件的設(shè)置,在寫CCR或EEPROM之前,主機(jī)必須先向狀態(tài)寄存器寫02H,確認(rèn)應(yīng)答信號,確認(rèn)后寫入06H,再確認(rèn)應(yīng)答信號。確認(rèn)后啟動了寫操作。首先發(fā)送高位地址,然后發(fā)送低位地址。Xl226每收到一個地址字節(jié)后,均會產(chǎn)生一個應(yīng)答信號。在兩個地址字節(jié)都收到之后,X1226等待8位數(shù)據(jù)。在收到8位數(shù)據(jù)之后,X1226再產(chǎn)生一個應(yīng)答。然后單片機(jī)通過產(chǎn)生一個停止條件來終止傳送。
Xl226具有連續(xù)寫入功能,X1226在收到每個字節(jié)后,響應(yīng)一個應(yīng)答,其內(nèi)部將地址加一。當(dāng)計數(shù)器達(dá)到該頁的末尾時,它自動的“返回”到該頁的首地址。這意味著單片機(jī)可從某一頁的任何位置開始向存儲器陣列連續(xù)寫入64字節(jié)或向CCR連續(xù)寫入8字節(jié)。
寫入Xl226數(shù)據(jù)子程序:

MOV R5,#8

SENDI:MOV A,DATASE
RLC A
MOV DATASE,A
MOV SDA,C
SEB SCL
LCALL YS4
CLR SCL
LCALL YS4
DJNZ R5,SENDl
RET
2.2讀操作
在上電時,16位地址的默認(rèn)值為0000H。X1226初始化操作之后,單片機(jī)對X1226進(jìn)行開始條件的設(shè)置,在寫CCR或EEPROM之前,主機(jī)必須先向狀態(tài)寄存器寫02H,確認(rèn)應(yīng)答信號,確認(rèn)后寫入06H,再確認(rèn)應(yīng)答信號。確認(rèn)后啟動了寫操作。首先發(fā)送高位地址,然后發(fā)送低位地址。Xl226每收到一個地址字節(jié)后,均會產(chǎn)生一個應(yīng)答信號。單片機(jī)發(fā)送另一個開始條件,將R/W位設(shè)置為l,接著就是接收8位數(shù)據(jù)。單片機(jī)終止讀操作時,無需等待X1226的應(yīng)答信號,單片機(jī)即可設(shè)置停止條件。
讀出X1226數(shù)據(jù)子程序:

MOV R5,#8
MOV DATARE,#0
SETR SDA
CLR C
READl:SETB SCL
LCALL YS4

MOV C,SDA
CLR SCL
MOV A,DATARE
RLC A
MOV DATARE,A
LCALL YS4
DJNZ R5,READl
RET
2.2 X1 226獨(dú)特的振蕩器頻率在線補(bǔ)償調(diào)節(jié)功能
Xicor公司在X1226芯片上集成了振蕩器補(bǔ)償電路,這使得用戶通過軟件,可在線對振蕩器頻率進(jìn)行微調(diào),這種對振蕩器頻率進(jìn)行的微調(diào)通常針對兩種情況。一種情況是在25℃常溫下,對振蕩器因器件初始精度帶來的頻率偏差進(jìn)行補(bǔ)償;第二種情況是對因溫度引起的頻率漂移進(jìn)行補(bǔ)償。X1226內(nèi)部設(shè)有數(shù)字微調(diào)寄存器(DTR)和模擬微調(diào)寄存器(ATR),兩個寄存器均為非易失性寄存器。數(shù)字微調(diào)寄存器(DTR)具有三位數(shù)字微調(diào)位,調(diào)節(jié)范圍一30ppm~+30ppm。模擬微調(diào)寄存器(ATR)具有六個模擬微調(diào)位,調(diào)節(jié)范圍+116ppm~-37ppm。

為了能夠?qū)ν饨绛h(huán)境溫度變化引起的溫漂進(jìn)行補(bǔ)償, 要求系統(tǒng)中設(shè)計一個溫度傳感器,并盡量讓它靠近實時時鐘器件X1226,這樣可以真實地反映振蕩器的溫度,原理圖如圖3所示。單片機(jī)首先通過系統(tǒng)溫度傳感器獲取環(huán)境溫度, 并在補(bǔ)償參數(shù)表中獲取對應(yīng)的補(bǔ)償值, 然后將補(bǔ)償數(shù)據(jù)填寫到相應(yīng)的微調(diào)寄存器中,就能實現(xiàn)溫漂補(bǔ)償?shù)哪康摹?/P>



關(guān)鍵詞: 51單片機(jī) 實時時鐘 X1226

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉