<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 電源與新能源 > 單片機控制實(shí)時(shí)時(shí)鐘X1226的應用設計

單片機控制實(shí)時(shí)時(shí)鐘X1226的應用設計

——
作者:水清 時(shí)間:2007-11-14 來(lái)源:?jiǎn)纹瑱C及嵌入式系統應用 收藏

引 言

    X1226具有時(shí)鐘和日歷的功能,時(shí)鐘依賴(lài)時(shí)、分、秒寄存器來(lái)跟蹤,日歷依賴(lài)日期、星期、月和年寄存器來(lái)跟蹤,日歷可正確通過(guò)2099年,具有自動(dòng)閏年修正。

    擁有強大的雙報警功能,能夠被設置到任何時(shí)鐘/日歷值上,精確度可到ls??捎密浖O置1 Hz,4096 Hz或32768Hz中任意一個(gè)頻率輸出。

    該器件提供一個(gè)備份電源輸入腳VBACK1允許器件用電池或大容量電容備份供電。許多電池類(lèi)型能夠用做Xicor公司實(shí)時(shí)時(shí)鐘器件X1226的備份電池,3.OV或3.6V的鋰離子電池較為適合,使用期限為10年。另外一種用法可選擇一個(gè)大容量的電容,備份時(shí)間可持續幾天至兩個(gè)星期,時(shí)間的長(cháng)短依賴(lài)于電容容量的大小。用一個(gè)簡(jiǎn)單的硅或肖特基二極管連接到Vcc和充電電容的兩端,充電電容連接到Vback引腳,注意不能使用二極管對電池充電(特別是鋰離子電池)。切換到電池供電的條件是Vcc=Vback—O.1V,正常操作期間,供電電壓Vcc必須高于電池電壓,否則電池電量將逐步耗盡。

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

1 電路組成及工作原理

    實(shí)時(shí)時(shí)鐘器件X1226可與各種類(lèi)型的微控制器或微處理器接口,接口方式為串行的I2C接口。其中數據總線(xiàn)SDA是一個(gè)雙向引腳,用于輸入或輸出數據。它是一個(gè)漏極開(kāi)路輸出,在使用過(guò)程中需要添加上拉電阻,阻值大約在4.7Ω~10kΩ之間。本文介紹89C5l與X1226的接口方法,由于89C51沒(méi)有標準的I2C接口,只有用軟件進(jìn)行模擬。 

    為了更直觀(guān)地看到時(shí)間變換,采用八位LED數碼管顯示年、月、日或時(shí)、分、秒的變換,LED數碼管的驅動(dòng)采用本公司自有產(chǎn)品PS7219A,數碼管選擇1.27cm共陰極紅色或綠色LED數碼管。由于PS7219A器件內含IMP810監控器件,復位輸出高電平有效,因此在使用51系統時(shí),無(wú)需添加監控器件,使用PS7219A的復位輸出給51單片機復位即可,監控電壓4.63V。硬件設計原理圖如圖1所示。 

    在硬件通電調試過(guò)程中,請不要用手去觸摸實(shí)時(shí)時(shí)鐘X1226的晶體,這樣可能會(huì )導致振蕩器停振?;謴驼袷幤髌鹫竦姆椒ㄊ顷P(guān)閉電源(包括備份電源)重新上電另外需要說(shuō)明的是,測量振蕩器時(shí),請不要用示波器的探頭去測量X2的振蕩輸出,正確的方法是用探頭去測量PHz/IRQ的振蕩輸出,以確定是否起振和振蕩頻率是否準確。測量時(shí)建議在該腳加一個(gè)5.lk Ω的上拉電阻。
    注意:在印刷電路設計時(shí),xl226的布線(xiàn)請參考X1226數據手冊的廠(chǎng)家推薦方法。

2 軟件設計

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

啟動(dòng)條件子程序:
    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的作用是延時(shí)4μs。

2.1 寫(xiě)操作


    X1226初始化操作后,單片機對X1226進(jìn)行開(kāi)始條件的設置,在寫(xiě)CCR或EEPROM之前,主機必須先向狀態(tài)寄存器寫(xiě)02H,確認應答信號,確認后寫(xiě)入06H,再確認應答信號。確認后啟動(dòng)了寫(xiě)操作。首先發(fā)送高位地址,然后發(fā)送低位地址。Xl226每收到一個(gè)地址字節后,均會(huì )產(chǎn)生一個(gè)應答信號。在兩個(gè)地址字節都收到之后,X1226等待8位數據。在收到8位數據之后,X1226再產(chǎn)生一個(gè)應答。然后單片機通過(guò)產(chǎn)生一個(gè)停止條件來(lái)終止傳送。

    Xl226具有連續寫(xiě)入功能,X1226在收到每個(gè)字節后,響應一個(gè)應答,其內部將地址加一。當計數器達到該頁(yè)的末尾時(shí),它自動(dòng)的“返回”到該頁(yè)的首地址。這意味著(zhù)單片機可從某一頁(yè)的任何位置開(kāi)始向存儲器陣列連續寫(xiě)入64字節或向CCR連續寫(xiě)入8字節。

    寫(xiě)入Xl226數據子程序:

       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讀操作


    在上電時(shí),16位地址的默認值為0000H。X1226初始化操作之后,單片機對X1226進(jìn)行開(kāi)始條件的設置,在寫(xiě)CCR或EEPROM之前,主機必須先向狀態(tài)寄存器寫(xiě)02H,確認應答信號,確認后寫(xiě)入06H,再確認應答信號。確認后啟動(dòng)了寫(xiě)操作。首先發(fā)送高位地址,然后發(fā)送低位地址。Xl226每收到一個(gè)地址字節后,均會(huì )產(chǎn)生一個(gè)應答信號。單片機發(fā)送另一個(gè)開(kāi)始條件,將R/W位設置為l,接著(zhù)就是接收8位數據。單片機終止讀操作時(shí),無(wú)需等待X1226的應答信號,單片機即可設置停止條件。

    讀出X1226數據子程序:

       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獨特的振蕩器頻率在線(xiàn)補償調節功能


    Xicor公司在X1226芯片上集成了振蕩器補償電路,這使得用戶(hù)通過(guò)軟件,可在線(xiàn)對振蕩器頻率進(jìn)行微調,這種對振蕩器頻率進(jìn)行的微調通常針對兩種情況。一種情況是在25℃常溫下,對振蕩器因器件初始精度帶來(lái)的頻率偏差進(jìn)行補償;第二種情況是對因溫度引起的頻率漂移進(jìn)行補償。X1226內部設有數字微調寄存器(DTR)和模擬微調寄存器(ATR),兩個(gè)寄存器均為非易失性寄存器。數字微調寄存器(DTR)具有三位數字微調位,調節范圍一30ppm~+30ppm。模擬微調寄存器(ATR)具有六個(gè)模擬微調位,調節范圍+116ppm~-37ppm。

    為了能夠對外界環(huán)境溫度變化引起的溫漂進(jìn)行補償, 要求系統中設計一個(gè)溫度傳感器,并盡量讓它靠近實(shí)時(shí)時(shí)鐘器件X1226,這樣可以真實(shí)地反映振蕩器的溫度,原理圖如圖3所示。單片機首先通過(guò)系統溫度傳感器獲取環(huán)境溫度, 并在補償參數表中獲取對應的補償值, 然后將補償數據填寫(xiě)到相應的微調寄存器中,就能實(shí)現溫漂補償的目的。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>