新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 單片機控制實時時鐘X1226的設計 (圖)

        單片機控制實時時鐘X1226的設計 (圖)

        ——
        作者:武漢力源信息技術服務有限公司 水清 時間:2007-02-06 來源: 收藏
        摘 要:介紹xicor公司實時時鐘器件x1226的工作原理,以及單片機控制的硬件設計和軟件編程的方法和注意事項。
        關鍵詞:實時時鐘;i2c接口;應答信號ack;掉電時的電池切換

        引言
        ---x1226具有時鐘和日歷的功能,時鐘依賴時、分、秒寄存器來跟蹤,日歷依賴日期、星期、月和年寄存器來跟蹤,日歷可正確顯示至2099年,并具有自動閏年修正功能。擁有強大的雙報警功能,能夠被設置到任何時鐘/日歷值上,精確度可到1秒。可用軟件設置1hz、4096hz或32768hz中任意一個頻率輸出。
        ---x1226提供一個備份電源輸入腳vback,允許器件用電池或大容量電容進行備份供電。采用電容供電時,用一個硅或肖特基二極管連接到vcc和充電電容的兩端,充電電容連接到vback管腳,注意不能使用二極管對電池充電(特別是鋰離子電池)。切換到電池供電的條件是vcc=vback-0.1v,正常操作期間,供電電壓vcc必須高于電池電壓,否則電池電量將逐步耗盡。振蕩器采用外接32.768kh的晶體,產生的振蕩誤差可通過軟件對數字微調寄存器、模擬微調寄存器的數值進行調節加以修正,避免了外接電阻和電容的離散性對精度的影響。4kb的eeprom可用于存儲戶數據。

        電路組成及工作原理
         ---x1226可與各種類型的的微控制器或微處理器接口,接口方式為串行的i2c接口。其中數據總線sda是一個雙向引腳,用于輸入或輸出數據。其漏極開路輸出在使用過程中需要添加4.7~10kω的上拉電阻。本文介紹89c51單片機與x1226的接口方法,由于89c51單片機沒有標準的i2c接口,只能用軟件進行模擬。
        ---為了更直觀地看到時間的變化,采用8位led數碼管顯示年、月、日或時、分、秒,用ps7219a驅動led數碼管,數碼管選擇0.5英寸共陰極紅色或綠色led數碼管。由于ps7219a器件內含imp810單片機監控器件,復位輸出高電平有效,因此在使用51系統時,無須添加監控器件,使用ps7219a的復位輸出給51單片機復位即可,監控電壓為4.63v。硬件設計原理圖如圖1所示。
        ---在硬件通電調試過程中,不能用手去觸摸x1226的晶體振蕩器,否則可能會導致振蕩器停振,恢復振蕩器起振的方法是關閉電源(包括備份電源)后重新上電。另外需要說明的是,測量振蕩器時,不要用示波器的探頭去測量x2的振蕩輸出,應該用探頭測量phz/irq的振蕩輸出,以確定是否起振和振蕩頻率是否準確,測量時建議在該腳加一個5.1kω的上拉電阻。

        軟件設計
        ---x1226內含實時時鐘寄存器(rtc)、狀態寄存器(sr)、控制寄存器(control)、報警寄存器(alarm0、alarm1)和客戶存儲數據的存儲器。由于實時時鐘寄存器和狀態寄存器需要進行頻繁的寫操作,因此其存儲結構為易失性sram結構。其他寄存器均為eeprom結構,寫操作次數通常在10萬次以上。x1226初始化程序框圖如圖2所示,子程序ys4的作用是延時4μs。
        啟動條件子程序: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

        ● 寫操作
        ---x1226初始化之后,單片機對x1226進行開始條件的設置,在寫ccr或eeprom之前,主機必須先向狀態寄存器寫02h,確認應答信號,確認后寫入06h,再確認應答信號。確認后啟動了寫操作,首先發送高位地址,然后發送低位地址。x1226每收到一個地址字節后,均會產生一個應答信號。在兩個地址字節都收到之后,x1226等待8位數據。在收到8位數據之后,x1226再產生一個應答,然后單片機產生一個停止條件來終止傳送。
        ---x1226具有連續寫入的功能,每收到1字節后,響應一個應答,其內部將地址加一。當計數器達到該頁的末尾時,就自動返回到該頁的首地址。這意味著單片機可從某一頁的任何位置開始向存儲器陣列連續寫入64字節,或向ccr連續寫入8字節的數據。
        寫入x1226數據子程序:mov r5,#8
        send1: mov a,datase
        rlc a
        mov datase,a
        mov sda,c
        setb scl
        lcall ys4
        clr scl
        lcall ys4
        djnz r5,send1
        ret

        ● 讀操作
        ---在上電時,16位地址的默認值為0000h。x1226初始化操作之后,單片機對x1226進行開始條件的設置,在寫ccr或eeprom之前,主機必須先向狀態寄存器寫02h,確認應答信號,確認后寫入06h,再確認應答信號。確認后啟動了寫操作,首先發送高位地址,然后發送低位地址。x1226每收到一個地址字節后,均會產生一個應答信號。單片機發送另一個開始條件,將r/w位設置為1,接著接受8位數據。單片機終止讀操作時,無需等待x1226的應答信號,單片機即可設置停止條件。
        ---讀出x1226數據子程序: movr5,#8
        movdatare,#0
        setbsda
        clr c
        read1: setb scl
        lcall ys4
        mov c,sda
        clr scl
        mov a,datare
        rlc a
        mov datare,a
        lcall ys4
        djnz r5,read1
        ret

        ● 振蕩器頻率在線補償調節
         ---x1226集成了振蕩器補償電路,用戶可通過軟件在線對振蕩器頻率進行微調,這種微調通常針對兩種情況。一種情況是在25℃常溫下,對振蕩器因器件初始精度帶來的頻率偏差進行補償;第二種情況是對因溫度引起的頻率漂移進行補償。x1226內部設有數字微調寄存器(dtr)和模擬微調寄存器(atr),兩個寄存器均為非易失性寄存器。數字微調寄存器具有3位數字微調位,調節范圍為-30~+30



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 南投市| 平江县| 屏边| 团风县| 唐河县| 东海县| 堆龙德庆县| 通化县| 淮滨县| 黔西县| 富裕县| 延寿县| 信丰县| 榆林市| 织金县| 岳阳市| 天柱县| 淅川县| 林甸县| 木里| 东方市| 鹿邑县| 浙江省| 怀远县| 昌都县| 宜丰县| 金昌市| 佛坪县| 咸阳市| 安远县| 奇台县| 肥城市| 新营市| 依安县| 宾阳县| 乌拉特前旗| 汶川县| 琼结县| 丰台区| 新建县| 汝南县|