DS1302結構與工作原理
DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘,有計時的作用,和日常接觸的電子表,萬年歷差不多,可以對年月日、時分秒、星期計時。可以用單片機往DS1302里面寫入時間進行時間設置,也可以用單片機從DS1302中讀取時間,讀出來的時間也可以放在液晶上顯示。這樣就可以實現一塊電子表的功能了。
DS1302引腳及功能:

X1,X2: 振蕩源管腳,外接32.768KHz晶振
GND: 地
RST: 復位/片選線(通過置高電平來啟動所有的數據傳送。)
IO: 數據輸入輸出
SCLK: 串行時鐘
VCC1: 電池引腳
VCC2: 主電源引腳 (雙電源供電,在主電源關閉的情況下,有VCC1的電池供電,也能保持時鐘的連續運行)
DS1302的工作原理很簡單,它外接32768Hz的晶振提供震蕩時鐘。芯片內部的電路對晶振頻率32768分頻后獲得周期為1S的秒信號,然后對秒信號計數,獲得分鐘、小時、天、星期、月、年等的數值。
實現方法:
DS1302的時間信息以寄存器的形式存儲在芯片內部。DS1302的通訊接口由3根線組成,即RST,SCLK,I/O。單片機與DS1302通訊,采用的是SPI通訊接口,只不過是半雙工了,只能分時進行收發。通過SPI接口,對相應的寄存器進行讀操作,可以獲得當前時間數值;寫操作,可以設定當前時間。
下面介紹怎么對DS1302發號施令。
DS1302的命令字節格式:
一個完整的通訊幀由由2字節組成。第一字節是控制字節,第二字節為數據位。控制字格式如下:

1.bit0:讀寫標志。高電平為讀,第二字節(藍色圈內)會由DS1302輸出數據;低電平為寫,第二字節由單片機輸出數據, DS1302接收;
2.bit1~5: 5位操作元地址,就是要對哪個寄存器進行操作。寄存器地址列表如圖2.1。(紅色圈內)
3.bit6:選擇RAM區或寄存器區。如果為0,則表示存取日歷時鐘數據,為1表示存取RAM數據;
4. bit7:必須是邏輯1,如果它為0,則不能把數據寫入DS1302中。

圖2.1
(CH:時鐘停止位;為0時振蕩器工作;為1時振蕩器停止;AP=1時為下午模式,為0時上午模式。圖2.1內還應該有第八個寄存器,地址為8E。它的bit7是需要重視的。bit7是一個保護位,如果這一位是1,那么是禁止給任何其他的寄存器或者那31個字節的RAM寫數據的。因此在寫數據之前,這一位必須先寫成0。)
因為是SPI接口,單片機與DS1302通訊也是上升沿發送(寫入1302數據),下降沿接收(讀取1302數據)。控制字總是從最低位開始輸出。在控制字指令輸入后的下一個SCLK時鐘的上升沿時,數據被寫入DS1302,數據輸入從最低位(0位)開始。同樣,在緊跟8位的控制字指令后的下一個SCLK脈沖的下降沿,讀出DS1302的數據。讀出的數據也是從最低位到最高位。數據讀寫時序如下圖:

單片機往DS1302寫入數據,先寫地址,后寫命令/數據。單片機讀取DS1302某地址的數據,先寫地址,后讀命令/數據。
知道了需要控制的指令寄存器,讀寫的數據寄存器,通訊方式為SPI。所謂欲破曹公,只欠東風。咱是欲破DS1302,只欠實踐了。
原理圖如下:

以上所有信息僅作為學習交流使用,不作為任何學習和商業標準。若您對文中任何信息有異議,歡迎隨時提出,謝謝!
-
DS1302
+關注
關注
8文章
451瀏覽量
53603
發布評論請先 登錄
單片機電子時鐘程序的設計
位移計工作原理解析:如何測量結構物位移?
芯伯樂XBLW DS1302:支持涓流充電時鐘芯片的理想選擇
STM32F405驅動DS1302時鐘模塊,輸出時間錯亂該怎么排查?
stm32f405rgt6驅動DS1302ZN出現時間錯亂問題
直流電機的基本工作原理與結構
電磁流量計的工作原理及結構
BNC 是什么接口?結構特點、工作原理與核心作用
GPIO配置的工作原理是什么?
磁性編碼器工作原理/特點/結構等,一起看看吧
DS1302結構與工作原理
評論