摘要 本文概括介紹了 DS1302 時鐘芯片的特點和基本組成 通過實例詳細說明了有關功能的應用 軟件 關于 DS1302 各寄存器的詳細位控功能請參考 DALLAS 達拉斯 公司的相應產品資料
概述
DS1302 是 DALLAS 公司推出的涓流充電時鐘芯片 內含有一個實時時鐘/日歷和 31 字節靜態 RAM 通過簡 單的串行接口與單片機進行通信 實時時鐘/日歷電路提供秒 分 時 日 日期 月 年的信息 每月的天 數和閏年的天數可自動調整 時鐘操作可通過 AM/PM 指示決定采用 24 或 12 小時格式 DS1302 與單片機之 間能簡單地采用同步串行的方式進行通信 僅需用到三個口線 1 RE 復位 2 數據線 3 SCLK 串行時鐘 時鐘/RAM 的讀/寫數據以一個字節或多達 31 個字節的字符組方式通信 DS1302 工作時功耗很
低 保持數據和時鐘信息時功率小于 1mW
DS1302 是由 DS1202 改進而來 增加了以下的特性 雙電源管腳用于主電源和備份電源供應 Vcc1 為可 編程涓流充電電源 附加七個字節存儲器 它廣泛應用于電話 傳真 便攜式儀器以及電池供電的儀器儀表等 產品領域 下面將主要的性能指標作一綜合
實時時鐘具有能計算 2100 年之前的秒 分 時 日 日期 星期 月 年的能力 還有閏年調整的能力
31 8 位暫存數據存儲 RAM
串行 I/O 口方式使得管腳數量最少
寬范圍工作電壓 2.0 5.5V
工作電流 2.0V 時,小于 300nA
讀/寫時鐘或 RAM 數據時 有兩種傳送方式 單字節傳送和多字節傳送 字符組方式
8 腳 DIP 封裝或可選的 8 腳 SOIC 封裝 根據表面裝配
簡單 3 線接口
與 TTL 兼容 Vcc=5V
可選工業級溫度范圍 -40 +85
與 DS1202 兼容
在 DS1202 基礎上增加的特性
對 Vcc1 有可選的涓流充電能力 雙電源管用于主電源和備份電源供應 備份電源管腳可由電池或大容量電容輸入 附加的 7 字節暫存存儲器
1 DS1302 的基本組成和工作原理
DS1302 的管腳排列及描述如下圖及表所示
DS1302 與微控制器的接口軟件及功能應用舉例
下面首先給出基本的接口軟件 然后舉例說明各種功能的應用
1 寫保護寄存器操作
當寫保護寄存器的最高位為 0 時 允許數據寫入寄存器 寫保護寄存器可以通過命令字節 8E 8F 來 規定禁止寫入/讀出 寫保護位不能在多字節傳送模式下寫入
Write_Enable:
MOV Command,#8Eh ;命令字節為 8E
MOV ByteCnt,#1 ;單字節傳送模式
MOV R0,#XmtDat 數據地址覆給 R0
MOV XmtDat,#00h 數據內容為 0 寫入允許
ACALL Send_Byte 調用寫入數據子程序
RET 返回調用本子程序處
當寫保護寄存器的最高位為 1 時 禁止數據寫入寄存器
Write_Disable:
MOV Command,#8Eh ;命令字節為 8E
MOV ByteCnt,#1 ;單字節傳送模式
MOV R0,#XmtDat 數據地址覆給 R0
MOV XmtDat,#80h 數據內容為 80h 禁止寫入
ACALL Send_Byte 調用寫入數據子程序
RET 返回調用本子程序處
以上程序調用了基本數據發送(Send_Byte)模塊及一些內存單元定義, 其源程序清單在附錄中給出 下面
的程序亦使用了這個模塊
2 時鐘停止位操作
當把秒寄存器的第 7 位 時鐘停止位 設置為 0 時 起動時鐘開始
Osc_Enable:
MOV Command,#80h ; 命令字節為 80
MOV ByteCnt,#1 ; 單字節傳送模式
MOV R0,#XmtDat 數據地址覆給 R0
MOV XmtDat,#00h 數據內容為 0 振蕩器工作允許
ACALL Send_Byte 調用寫入數據子程序
RET 返回調用本子程序處
當把秒寄存器的第 7 位 時鐘停止位 設置為 1 時 時鐘振蕩器停止 HT1380 進入低功耗方式
Osc_Disable:
MOV Command,#80h ;命令字節為 80
MOV ByteCnt,#1 ;單字節傳送模式
MOV R0,#XmtDat 數據地址覆給 R0
MOV XmtDat,#80h 數據內容為 80h 振蕩器停止
ACALL Send_Byte 調用寫入數據子程序
RET 返回調用本子程序處
3. 多字節傳送方式
當命令字節為 BE 或 BF 時 DS1302 工作在多字節傳送模式 8 個時鐘/日歷寄存器從寄存器 0 地址開 始連續讀寫從 0 位開始的數據 當命令字節為 FE 或 FF 時 DS1302 工作在多字節 RAM 傳送模式 31 個 RAM 寄存器從 0 地址開始連續讀寫從 0 位開始的數據
例如 寫入 00 年 6 月 21日 星期三 13 時 59 分 59 秒 程序設置如下
Write_Multiplebyte:
MOV Command,#0BEh ;命令字節為 BEh
MOV ByteCnt,#8 ;多字節寫入模式 此模塊為 8 個
MOV R0,#XmtDat 數據地址覆給 R0
MOV XmtDat,#59h 秒單元內容為 59h
MOV XmtDat+1,#59h 分單元內容為 59h
MOV XmtDat+2,#13h 時單元內容為 13h
MOV XmtDat+3,#21h 日期單元內容為 21h
MOV XmtDat+4,#06h 月單元內容為 06h
MOV XmtDat+5,#03h 星期單元內容為 03h
MOV XmtDat+6,#0 年單元內容為 00h
MOV XmtDat+7,#0 寫保護單元內容為 00h
ACALL Send_Byte 調用寫入數據子程序
RET 返回調用本子程序處
讀出寄存器 0-7 的內容 程序設置如下
Read_Multiplebyte:
MOV Command,#0BFh ;命令字節為 BFh
MOV ByteCnt,#8 ;多字節讀出模式 此模塊為 8 個
MOV R1,#RcvDat 數據地址覆給 R1
ACALL Receive_Byte 調用讀出數據子程序
RET 返回調用本子程序處
以上程序調用了基本數據接收(Receive_Byte)模塊及一些內存單元定義, 其源程序清單在附錄中給
出 下面的程 序亦使用了這個模塊
4. 單字節傳送方式
例如 寫入 8 時 12 小時模式 程序設置如下
Write_Singlebyte:
MOV Command,#84h ; 命令字節為 84h
MOV ByteCnt,#1 ; 單字節傳送模式
MOV R0,#XmtDat
數據地址覆給 R0
MOV XmtDat,#88h
數據內容為 88h
ACALL Send_Byte
調用寫入數據子程序
RET
返回調用本子程序處
上面所列出的程序模塊 Write_Enable Write_Disable Osc_Enable Osc_Disable
與單字節寫入模塊 Write_Singlebyte 的程序架構完全相同 僅只是幾個入口參數不同 本文是為了強調功 能使用的不同才將其分為不同模塊 另外,與涓流充電相關的設定也是單字節操作方式,這里就不再單獨列出, 用戶在使用中可靈活簡略
下面模塊舉例說明如何單字節讀出 小時 單元的內容. Read_Singlebyte:
完整的pdf格式文檔51黑下載地址:
DS1302中文數據手冊.pdf
(205.99 KB, 下載次數: 18)
2018-9-11 21:47 上傳
點擊文件名下載附件
1302中文數據手冊 下載積分: 黑幣 -5
|