新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 時鐘芯片DS1302及其在數據記錄中的應用

        時鐘芯片DS1302及其在數據記錄中的應用

        作者: 時間:2006-05-07 來源:網絡 收藏

        摘 要: 介紹了美國DALLAS公司推出的低功耗時鐘芯片DS1302的結構和工作原理及其在測量系統中的應用。它可以對年、月、日、周日、時、分、秒進行計時,且具有閏年補償等多種功能。DS1302用于數據記錄,特別是對某些具有特殊意義的數據點的記錄上,能實現數據與出現該數據的時間同時記錄。這種記錄對長時間的連續測控系統結果的分析以及對異常數據出現的原因的查找有重要意義。

        本文引用地址:http://www.104case.com/article/226459.htm

        關鍵詞: 數據記錄 時鐘芯片DS1302 硬件電路 軟件設計

        在測量控制系統中,特別是長時間無人職守的測控系統中,經常需要記錄某些具有特殊意義的數據及其出現的時間。記錄及分析這些特殊意義的數據,對測控系統的性能分析及正常運行具有重要的意義。傳統的數據記錄方式是隔時采樣或定時采樣,沒有具體的時間記錄,因此只能記錄數據而無法準確記錄其出現的時間;若采用單片機計時,一方面需要采用計數器,占用硬件資源,另一方面需要設置中斷、查詢等,同樣耗費單片機的資源,而且某些測控系統可能不允許。而在系統中采用DS1302則能很好地解決這個問題。

        1 DS1302的結構及工作原理

        DS1302[1]是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘芯片,它可以對年、月、日、周日、時、分、秒進行計時,且具有閏年補償功能,工作電壓寬達2.5~5.5V。采用三線接口與CPU進行同步通信,并可采用突發方式一次傳送多個字節的時鐘信號或RAM數據。DS1302內部有一個31×8的用于臨時性存放數據的RAM寄存器。DS1302是DS1202的升級產品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。

        1.1 引腳功能表及內部結構圖

        DS1302的引腳及內部結構如圖1所示,引腳功能如表1所示。

        1.2 DS1302的控制字節說明

        DS1302的控制字如圖2所示。

        控制字節的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數據寫入到DS1302中位6如果為0,則表示存取日歷時鐘數據,為1表示存取RAM數據;位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節總是從最低位開始輸出。

        1.3 復位

        通過把 輸入驅動置高電平來啟動所有的數據傳送。 輸入有兩種功能:首先, 接通控制邏輯,允許地址/命令序列送入移位寄存器;其次, 提供了終止單字節或多字節數據的傳送手段。當 為高電平時,所有的數據傳送被初始化,允許對DS1302進行操作。如果在傳送過程中置 為低電平,則會終止此次數據傳送,并且I/O引腳變為高阻態。上電運行時,在Vcc≥2.5V之前, 必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。

        1.4 數據輸入輸出

        在控制指令字輸入后的下一個SCLK時鐘的上升沿時數據被寫入DS1302,數據輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數據,讀出數據時從低位0位至高位7,數據讀寫時序見圖3。

        1.5 DS1302的寄存器

        DS1302共有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數據位為BCD碼形式。其日歷、時間寄存器及其控制字見表2。

        此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時鐘突發寄存器及與RAM相關的寄存器等。時鐘突發寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內容。DS1302與RAM相關的寄存器分為兩類,一類是單個RAM單元,共31個,每個單元組態為一個8位的字節,其命令控制字為COH~FDH,其中奇數為讀操作,偶數為寫操作;再一類為突發方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節,命令控制字為FEH(寫)、FFH(讀)。

        2 DS1302在測量系統中的硬件電路

        DS1302與CPU的連接僅需要三條線,即SCLK(7)、I/O(6)、RST(5)。DS1302與CPU連接的電路原理圖如圖4所示。 在單電源與電池供電的系統中提供低電源并提供低功率的電池備份。 在雙電源系統中提供主電源,在這種運用方式下 連接到備份電源,以便在沒有主電源的情況下能保存時間信息以及數據。DS1302由 兩者中的較大者供電。當 大于Vcc1+0.2V時,Vcc2給DS1302供電。當 小于 時,DS1302由 供電。

        下面給出讀DS1302時的MCS51匯編語言程序及主程序運行的框圖(如圖5所示)。

        ;DS1302初始化

        ST02: CLR P1.0

        CLR P1.2

        NOP

        SETB P1.2

         寫入一個字節

        WR02: MOV R7,#8

        MOV A,#0BFH

        LP02: CLR P1.0

        RRC A

        MOV P1.1,C

        NOP

        SETB P1.0

        NOP

        DJNZ R7,LP02

        RET

         讀出一個字節

        RD02: MOV R7,#8

        LP021:CLR O1.0

        NOP

        MOP C,P1.1

        RRC A

        SETB:P1.0

        NOP

        DJNZ R7,LP021

        RET

        ;調用部分

        STOP:CLR P1.2

        NOP

        RET

        LCALL ST02

        MOV A,#0BFH

        LCALL WR02

        MOV R6,#7

        MOV R0,#49H

        LP: LCALL RD02

        MOV @R0,A

        INC R0

        DJNZ R6,LP

        LCALL STOP

        RET

        采用DS1302作為記錄測控系統中的數據記錄,其軟硬件設計簡單,時間記錄準確,既避免了連續記錄的大工作量,又避免了定時記錄的盲目性,給連續長時間的測量、控制系統的正常運行及檢查都來了很大的方便,可廣泛應用于長時間連續的測控系統中。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 秭归县| 太原市| 鹤山市| 郎溪县| 锦屏县| 镇沅| 崇明县| 象山县| 柳林县| 博客| 白银市| 锡林浩特市| 佛坪县| 衡山县| 株洲市| 公主岭市| 邯郸市| 乡城县| 含山县| 南涧| 武义县| 阆中市| 古浪县| 哈尔滨市| 兴海县| 临猗县| 吉水县| 光山县| 达孜县| 台南县| 东辽县| 永定县| 灌云县| 永修县| 横峰县| 黑河市| 安国市| 陇南市| 新乡县| 全南县| 赤峰市|