版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、DS1302 時鐘芯片的原理與應用1 寫保護寄存器操作當寫保護寄存器的最高位為0 時,允許數(shù)據(jù)寫入寄存器,寫保護寄存器可以通過命令字節(jié)8E 8F 來規(guī)定禁止寫入/讀出。寫保護位不能在多字節(jié)傳送模式下寫入Write_Enable:MOV Command,#8Eh ;命令字節(jié)為8EMOV ByteCnt,#1 ;單字節(jié)傳送模式MOV R0,#XmtDat 數(shù)據(jù)地址覆給R0MOV XmtDat,#00h 數(shù)據(jù)內(nèi)容為0 寫入允許ACALL Send_Byte 調(diào)用寫入數(shù)據(jù)子程序RET 返回調(diào)用本子程序處當寫保護寄存器的最高位為1 時禁止數(shù)據(jù)寫入寄存器Write_Disable:MOV Command,
2、#8Eh ;命令字節(jié)為8EMOV ByteCnt,#1 ;單字節(jié)傳送模式MOV R0,#XmtDat 數(shù)據(jù)地址覆給R0MOV XmtDat,#80h 數(shù)據(jù)內(nèi)容為80h 禁止寫入ACALL Send_Byte 調(diào)用寫入數(shù)據(jù)子程序RET 返回調(diào)用本子程序處以上程序調(diào)用了基本數(shù)據(jù)發(fā)送(Send_Byte)模塊及一些內(nèi)存單元定義, 其源程序清單在附錄中給出下面的程序亦使用了這個模塊2 時鐘停止位操作當把秒寄存器的第7 位時鐘停止位設置為0 時起動時鐘開始Osc_Enable:MOV Command,#80h ; 命令字節(jié)為80MOV ByteCnt,#1 ; 單字節(jié)傳送模式MOV R0,#XmtDat
3、 數(shù)據(jù)地址覆給R0MOV XmtDat,#00h 數(shù)據(jù)內(nèi)容為0 振蕩器工作允許ACALL Send_Byte 調(diào)用寫入數(shù)據(jù)子程序RET 返回調(diào)用本子程序處當把秒寄存器的第7 位時鐘停止位設置為1 時,時鐘振蕩器停止DS1320 進入低功耗方式Osc_Disable:MOV Command,#80h ;命令字節(jié)為80MOV ByteCnt,#1 ;單字節(jié)傳送模式MOV R0,#XmtDat 數(shù)據(jù)地址覆給R0MOV XmtDat,#80h 數(shù)據(jù)內(nèi)容為80h 振蕩器停止ACALL Send_Byte 調(diào)用寫入數(shù)據(jù)子程序RET 返回調(diào)用本子程序處3. 多字節(jié)傳送方式當命令字節(jié)為BE 或BF 時DS13
4、02 工作在多字節(jié)傳送模式,8個時鐘/日歷寄存器從寄存器0 地址開始連續(xù)讀寫從0 位開始的數(shù)據(jù),當命令字節(jié)為FE 或FF 時DS1302 工作在多字節(jié)RAM 傳送模式31 個RAM 寄存器從0 地址開始連續(xù)讀寫從0 位開始的數(shù)據(jù)例如寫入00 年6 月21 日星期三13 時59 分59 秒程序設置如下Write_Multiplebyte:MOV Command,#0BEh ;命令字節(jié)為BEhMOV ByteCnt,#8 ;多字節(jié)寫入模式此模塊為8 個MOV R0,#XmtDat 數(shù)據(jù)地址覆給R0MOV XmtDat,#59h 秒單元內(nèi)容為59hMOV XmtDat+1,#59h 分單元內(nèi)容為59
5、hMOV XmtDat+2,#13h 時單元內(nèi)容為13hMOV XmtDat+3,#21h 日期單元內(nèi)容為21hMOV XmtDat+4,#06h 月單元內(nèi)容為06hMOV XmtDat+5,#03h 星期單元內(nèi)容為03hMOV XmtDat+6,#0 年單元內(nèi)容為00hMOV XmtDat+7,#0 寫保護單元內(nèi)容為00hACALL Send_Byte 調(diào)用寫入數(shù)據(jù)子程序RET 返回調(diào)用本子程序處讀出寄存器0-7 的內(nèi)容程序設置如下Read_Multiplebyte:MOV Command,#0BFh ;命令字節(jié)為BFhMOV ByteCnt,#8 ;多字節(jié)讀出模式此模塊為8 個MOV R1
6、,#RcvDat 數(shù)據(jù)地址覆給R1ACALL Receive_Byte 調(diào)用讀出數(shù)據(jù)子程序RET 返回調(diào)用本子程序處以上程序調(diào)用了基本數(shù)據(jù)接收(Receive_Byte)模塊及一些內(nèi)存單元定義, 其源程序清單在附錄中給出下面的程序亦使用了這個模塊4. 單字節(jié)傳送方式例如寫入8 時12 小時模式程序設置如下Write_Singlebyte:MOV Command,#84h ; 命令字節(jié)為84hMOV ByteCnt,#1 ; 單字節(jié)傳送模式MOV R0,#XmtDat 數(shù)據(jù)地址覆給R0MOV XmtDat,#88h 數(shù)據(jù)內(nèi)容為88hACALL Send_Byte 調(diào)用寫入數(shù)據(jù)子程序RET 返回調(diào)
7、用本子程序處上面所列出的程序模塊Write_Enable Write_Disable Osc_Enable Osc_Disable與單字節(jié)寫入模塊Write_Singlebyte 的程序架構完全相同,僅只是幾個入口參數(shù)不同本文是為了強調(diào)功能使用的不同才將其分為不同模塊另外,與涓流充電相關的設定也是單字節(jié)操作方式,這里就不再單獨列出,用戶在使用中可靈活簡略下面模塊舉例說明如何單字節(jié)讀出小時單元的內(nèi)容.Read_Singlebyte:MOV Command,#85h ; 命令字節(jié)為85hMOV ByteCnt,#1 ; 單字節(jié)傳送模式MOV R1,#RcvDat 數(shù)據(jù)地址覆給R1ACALL Rec
8、eive_Byte 調(diào)用讀出數(shù)據(jù)子程序RET 返回調(diào)用本子程序處 DS1302 應用電路原理圖P87LPC764 單片機選取內(nèi)部振蕩及內(nèi)部復位電路附錄數(shù)據(jù)發(fā)送與接收模塊源程序清單; CPU 工作頻率最大不超過20MHz;*; P87LPC762/4 主控器發(fā)送接受數(shù)據(jù)程序; 說明本程序是利用Philips 公司的P87LPC764 單片機任何具有51 內(nèi)核或其它合適的單片機都可在此作為主控器的普通I/O 口(如P1.2/P1.3/P1.4)實現(xiàn)總線的功能對總線上的器件本程序采用DS1302進行讀寫操作命令字節(jié)在Command 傳送字節(jié)數(shù)在ByteCnt 中所發(fā)送的數(shù)據(jù)在XmtDat 中所接收的
9、數(shù)據(jù)在RcvDat 中;*;P87LPC762/4 主控器總線發(fā)送接受數(shù)據(jù)程序頭文件;內(nèi)存數(shù)據(jù)定義BitCnt data 30h ; 數(shù)據(jù)位計數(shù)器ByteCnt data 31h ; 數(shù)據(jù)字節(jié)計數(shù)器Command data 32h ; 命令字節(jié)地址RcvDat DATA 40H ; 接收數(shù)據(jù)緩沖區(qū)XmtDat DATA 50H ; 發(fā)送數(shù)據(jù)緩沖區(qū);端口位定義IO_DATA bit P1.3 ; 數(shù)據(jù)傳送總線SCLK bit P1.4 ; 時鐘控制總線RST bit P1.2 ; 復位總線;*;發(fā)送數(shù)據(jù)程序;名稱:Send_Byte;描述:發(fā)送ByteCnt 個字節(jié)給被控器DS1302;命令字節(jié)
10、地址在Command 中;所發(fā)送數(shù)據(jù)的字節(jié)數(shù)在ByteCnt 中發(fā)送的數(shù)據(jù)在XmtDat 緩沖區(qū)中;*Send_Byte:CLR RST 復位引腳為低電平所有數(shù)據(jù)傳送終止NOPCLR SCLK 清時鐘總線NOPSETB RST 復位引腳為高電平邏輯控制有效NOPMOV A,Command 準備發(fā)送命令字節(jié)MOV BitCnt,#08h 傳送位數(shù)為8S_Byte0:RRC A 將最低位傳送給進位位CMOV IO_DATA,C 位傳送至數(shù)據(jù)總線NOPSETB SCLK 時鐘上升沿發(fā)送數(shù)據(jù)有效NOPCLR SCLK 清時鐘總線DJNZ BitCnt,S_Byte0 位傳送未完畢則繼續(xù)NOPS_Byt
11、e1: 準備發(fā)送數(shù)據(jù)MOV A,R0 傳送數(shù)據(jù)過程與傳送命令相同MOV BitCnt,#08hS_Byte2:RRC AMOV IO_DATA,CNOPSETB SCLKNOPCLR SCLKDJNZ BitCnt,S_Byte2INC R0 發(fā)送數(shù)據(jù)的內(nèi)存地址加1DJNZ ByteCnt,S_Byte1 字節(jié)傳送未完畢則繼續(xù)NOPCLR RST 邏輯操作完畢清RSTRET;*;接收數(shù)據(jù)程序;名稱:Receive_Byte;描述:從被控器DS1302 接收ByteCnt 個字節(jié)數(shù)據(jù);命令字節(jié)地址在Command 中;所接收數(shù)據(jù)的字節(jié)數(shù)在ByteCnt 中接收的數(shù)據(jù)在RcvDat 緩沖區(qū)中;*R
12、eceive_Byte:CLR RST ;復位引腳為低電平所有數(shù)據(jù)傳送終止NOPCLR SCLK 清時鐘總線NOPSETB RST ;復位引腳為高電平邏輯控制有效MOV A,Command 準備發(fā)送命令字節(jié)MOV BitCnt,#08h 傳送位數(shù)為8R_Byte0:RRC A 將最低位傳送給進位位CMOV IO_DATA,C 位傳送至數(shù)據(jù)總線NOPSETB SCLK 時鐘上升沿發(fā)送數(shù)據(jù)有效NOPCLR SCLK 清時鐘總線DJNZ BitCnt,R_Byte0 位傳送未完畢則繼續(xù)NOPR_Byte1: 準備接收數(shù)據(jù)CLR A 清類加器CLR C 清進位位CMOV BitCnt,#08h 接收位
13、數(shù)為8R_Byte2:NOPMOV C,IO_DATA 數(shù)據(jù)總線上的數(shù)據(jù)傳送給CRRC A 從最低位接收數(shù)據(jù)SETB SCLK 時鐘總線置高NOPCLR SCLK 時鐘下降沿接收數(shù)據(jù)有效DJNZ BitCnt,R_Byte2 位接收未完畢則繼續(xù)MOV R1,A 接收到的完整數(shù)據(jù)字節(jié)放入接收內(nèi)存緩沖區(qū)INC R1 接收數(shù)據(jù)的內(nèi)存地址加1DJNZ ByteCnt,R_Byte1 字節(jié)接收未完畢則繼續(xù)NOPCLR RST 邏輯操作完畢清RSTRETEND實時時鐘電路DS1302的原理及應用2009-04-15 20:06摘 要:介紹美國DALLAS公司推出的具有涓細電流充電能力的低功耗實時時鐘電路D
14、S1302的結構、工作原理及其在實時顯示時間中的應用。它可以對年、月、日、周日、時、分、秒進行計時,且具有閏年補償?shù)榷喾N功能。給出DS1302在讀寫中的C51程序及流程圖,以及在調(diào)試過程中的注意事項。 關鍵詞:時鐘電路;實時時鐘;單片機;應用 1 引言 現(xiàn)在流行的串行時鐘電路很多,如DS1302、 DS1307、PCF8485等。這些電路的接口簡單、價格低廉、使用方便,被廣泛地采用。本文介紹的實時時鐘電路DS1302是DALLAS公司的一種具有涓細電流充電能力的電路,主要特點是采用串行數(shù)據(jù)傳輸,可為掉電保護電源提供可編程的充電功能,并且可以關閉充電功能。采用普通32.768kHz晶振。 2 D
15、S1302的結構及工作原理 DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個318的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。 2.1 引腳功能及結構 圖1示出DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在
16、主電源關閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc10.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引
17、腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細說明。SCLK始終是輸入端。 2.2 DS1302的控制字節(jié) DS1302 的控制字如圖2所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。 2.3 數(shù)據(jù)輸入輸出(I/O) 在控制指令字輸入后的下一個SCLK
18、時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。 2.4 DS1302的寄存器 DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表1。 此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的
19、字節(jié),其命令控制字為C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。 3 DS1302實時顯示時間的軟硬件 DS1302與CPU的連接需要三條線,即SCLK(7)、I/O(6)、RST(5)。圖3示出DS1302與89C2051的連接圖,其中,時鐘的顯示用LCD。 3.1 DS1302與CPU的連接 實際上,在調(diào)試程序時可以不加電容器,只加一個32.768kHz 的晶振即可。只是選擇晶振時,不同的晶振,誤差也較大。另外,還可以在上面的電路中加入DS18B20,同時顯示實時溫度。
20、只要占用CPU一個口線即可。 LCD還可以換成LED,還可以使用北京衛(wèi)信杰科技發(fā)展有限公司生產(chǎn)的10位多功能8段液晶顯示模塊LCM101,內(nèi)含看門狗(WDT)/時鐘發(fā)生器及兩種頻率的蜂鳴器驅(qū)動電路,并有內(nèi)置顯示RAM,可顯示任意字段筆劃,具有34線串行接口,可與任何單片機、IC接口。功耗低,顯示狀態(tài)時電流為2A (典型值),省電模式時小于1A,工作電壓為2.4V3.3V,顯示清晰。 3.2 DS1302實時時間流程 圖4示出DS1302的實時時間流程。根據(jù)此流程框圖,不難采集實時時間。下面結合流程圖對DS1302的基本操作進行編程: 根據(jù)本人在調(diào)試中遇到的問題,特作如下說明: DS1302 與微處理器進行數(shù)據(jù)交換時,首先由微處理器向電路發(fā)送命令字節(jié),命令字節(jié)最高位MSB(D7)必須為邏輯1,如果D7=0,則禁止寫DS1302,即寫保護;D6=0,指定時鐘數(shù)據(jù),D6=1,指定RAM數(shù)據(jù);D5D1指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入), D0=1,指定讀操作(輸出)。 在DS1302的時鐘日歷或RAM進行數(shù)據(jù)傳送時,DS1302必須首先
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北省武漢市2024年中考一模數(shù)學試題含答案
- 遼寧大學《公共政策理論與應用》2023-2024學年第一學期期末試卷
- 黃河交通學院《藝術實踐(2)》2023-2024學年第一學期期末試卷
- 江蘇海事職業(yè)技術學院《建筑工程進度控制》2023-2024學年第一學期期末試卷
- 【物理】第七章 力 章末練習 2024-2025學年八年級下冊人教版物理
- 黑龍江財經(jīng)學院《醫(yī)藥學術推廣綜合實訓》2023-2024學年第一學期期末試卷
- 重慶三峽職業(yè)學院《大數(shù)據(jù)與數(shù)據(jù)分析》2023-2024學年第一學期期末試卷
- 重慶城市管理職業(yè)學院《消防工程綜合》2023-2024學年第一學期期末試卷
- 浙江育英職業(yè)技術學院《裝飾工程制圖及AutoCAD應用》2023-2024學年第一學期期末試卷
- 體現(xiàn)漢字文化的有趣漢字故事
- TSGD7002-2023-壓力管道元件型式試驗規(guī)則
- 建筑工地節(jié)前停工安全檢查表
- QUALITY MANUAL質(zhì)量手冊(英文版)
- 決策的藝術課件
- 國際經(jīng)濟學國際貿(mào)易的標準理論
- 8D報告培訓教材(PPT 47頁)
- -居民死亡醫(yī)學證明(推斷)書
- 糖尿病酮癥酸中毒病例討論-文檔資料
- 液相色譜質(zhì)譜質(zhì)譜儀LCMSMSSYSTEM
- 民辦非企業(yè)單位章程核準表-空白表格
- 派克與永華互換表
評論
0/150
提交評論