DS1302時鐘芯片的使用詳解
DS1302 是 DALLAS 公司推出的涓流充電時鐘芯片
內含有一個實時時鐘/日歷和 31 位元組靜態 RAM可通過簡單的串行介面與單片機進行通信
可提供:
–秒分時日日期月年的資訊
–每月的天數和閏年的天數可自動調整
–可通過 AM/PM 指示決定采用 24 或 12 小時格式
–保持資料和時鐘資訊時功率小于 1mW

引腳功能
Vcc1:主電源;
Vcc2:備份電源,
當Vcc2>Vcc1+0.2V時,由Vcc2向DS1302供電
當Vcc2< Vcc1時,由Vcc1向DS1302供電,
SCLK:串行時鐘,輸入,控制資料的輸入與輸出;
I/O:三線介面時的雙向資料線;
CE:輸入信號,在讀、寫資料期間,必須為高,
該引腳有兩個功能:
第一,CE開始控制字訪問移位暫存器的控制邏輯;
其次,CE 提供結束單位元組或多位元組資料傳輸的方法,
X1 X2 32.768KHz 晶振管腳
DS1302地址位元組
控制位元組邏輯有效位必須是邏輯1,若為0,則資料就寫不進去1302中,
位6如果是0,則表示存取日歷時鐘資料
位6如果是0,則表示存取RAM資料,
一到五位則為操作地址,最低為為0表示寫操作,1表示讀操作,

控制字總是從最低位開始輸出,在控制字指令輸入后的下一個 SCLK 時鐘的上升沿時,資料被寫入DS1302,資料輸入從最低位(0 位)開始,同樣,在緊跟 8 位的控制字指令后的下一個 SCLK 脈沖的下降沿,讀出 DS1302 的資料,讀出的資料也是從最低位到最高位
注意 控制位元組總是從最低位開始輸出
SINGLE-BYTE WRITE(單位元組寫入)

寫一個位元組相當于寫兩個,第一個寫資料位元組,第二個寫地址位元組,
資料寫入時候CE必須拉高,否則輸入資料無效
注意sclk信號線的變化
SINGLE-BYTE READ (單位元組讀取)

讀取位元組的程序中,也是先讀取資料位元組,之后再讀取地址位元組,信號線CE必須拉高,
注意:
在讀取位元組的程序中寫位元組程序上升沿有效,讀取位元組程序中是下降沿有效,
位元組的寫程序和讀程序都是從低位到高位
DS1302暫存器
每個暫存器根據讀寫操作都分為讀操作和寫操作,同時還有對應的讀地址寫地址,
存放資料為BCD碼形式

秒暫存器(81h,80h) 位7 定義為時間暫停位,
當 BIT1 為 1 時,時鐘振蕩器停止作業,DS1302 進入低功耗模式,電源消耗小于 100 微安,
當 BIT1 為 0 時,時鐘振蕩器啟動,DS1302 正常作業,
小時暫存器(85h,84h) 位7 定義為 12 或 24 小時作業模式選擇位,
當 BIT7 為高時,為 12 小時作業模式,此時 BIT5 為 AM/PM 位,
低電平標示 AM,高電平標示PM
在 24 小時模式下,位5 為第二個 10 小時位標示(20~23 時),
寫保護暫存器(8Fh,8Eh) 位7 WP 是寫保護位
作業時,出 WP 外的其他位都置為 0,
對時鐘/日歷暫存器或 RAM 進行寫操作之前,WP 必須為 0,
當 WP 為高電平的時候,不能對任何時鐘/日歷暫存器或 RAM 進行寫操作,
如果要進行寫操作,先讓WP=0,才能對暫存器進行操作,
小總結
ds1302主要操作就是:
去掉寫保護,對時間進行初始值設定,加上寫保護,不斷讀取時間和日期,通過lcd或者數碼管進行顯示
- 通過8eH去掉寫保護
- 對80H 82H 84H 86H 88H 8AH 8CH進行初值寫入,同時通過秒暫存器將位7設定使CH=0,ds1302開始走時,
- 把寫保護暫存器改為80H,防止時間出錯
- 不斷讀取各個暫存器里面的值,將BCD碼轉換成十進制,用lcd或者數碼管進行顯示,
下一篇,直接上代碼,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/280551.html
標籤:其他
上一篇:第七周結
