DS1302時鐘芯片資料Word版_第1頁
DS1302時鐘芯片資料Word版_第2頁
DS1302時鐘芯片資料Word版_第3頁
DS1302時鐘芯片資料Word版_第4頁
DS1302時鐘芯片資料Word版_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、傳播優(yōu)秀word版文檔 ,希望對您有幫助,可雙擊去除!ds1302ds1302是美國dallas公司推出的一種高性能、低功耗的實時時鐘芯片,附加31字節(jié)靜態(tài)ram,采用spi三線接口與cpu進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號和ram數(shù)據(jù)。實時時鐘可提供秒、分、時、日、星期、月和年,一個月小與31天時可以自動調(diào)整,且具有閏年補償功能。工作電壓寬達2.55.5v。采用雙電源供電(主電源和備用電源),可設置備用電源充電方式,提供了對后背電源進行涓細電流充電的能力。下面是標準的接線電路圖:引腳功能:引腳號  12、345678名稱  

2、60; vcc2x1、x2gndrsti/osclkvcc1功能主電源接32.768hz晶振接地復位數(shù)據(jù)庫串行時鐘備用電源傳播優(yōu)秀word版文檔 ,希望對您有幫助,可雙擊去除!ds1302有關日歷、時間的寄存器共有12個,其中有7個寄存器(讀時81h8dh,寫時80h8ch)是存放秒、分,小時、日、月、年、周數(shù)據(jù)的,存放的數(shù)據(jù)格式為bcd碼形式它的內(nèi)部時間寄存器如下:將初始設置的時間、日期數(shù)據(jù)寫入這幾個寄存器,然后再不斷地讀取這幾個寄存器來獲取實時時間和日期。這幾個寄存器的說明如下:1、秒寄存器(81h、80h)的位7定義為時鐘暫停標志(ch)。當初始上電時該位置為1,時鐘振蕩器停止

3、,ds1302處于低功耗狀態(tài);只有將秒寄存器的該位置改寫為0時,時鐘才能開始運行。2、控制寄存器(8fh、8eh)的位7是寫保護位(wp),其它7位均置為0。在任何的對時鐘和ram的寫操作之前,wp位必須為0。當wp位為1時,寫保護位防止對任一寄存器的寫操作。也就是說在電路上電的初始態(tài)wp是1,這時是不能改寫上面任何一個時間寄存器的,只有首先將wp改寫為0,才能進行其它寄存器的寫操作。3、控制寄存器(8fh、8eh)的位7是寫保護位(wp),其它7位均置為0。在任何的對時鐘和ram的寫操作之前,wp位必須為0。當wp位為1時,寫保護位防止對任一寄存器的寫操作。也就是說在電路上電的初始態(tài)wp是1

4、,這時是不能改寫上面任何一個時間寄存器的,只有首先將wp改寫為0,才能進行其它寄存器的寫操作。下面來說說如果對ds1302進行讀寫:上面的電路圖可以看出,除了電源和接地,ds1302只有三根線和單片機連接,sclk、i/o和rst(有的也寫成ce),先看時序圖: 傳播優(yōu)秀word版文檔 ,希望對您有幫助,可雙擊去除!ds1302的數(shù)據(jù)讀寫是通過i/o串行進行的。當進行一次讀寫操作時最少得讀寫兩個字節(jié),第一個字節(jié)是控制字節(jié),就是一個命令,告訴ds1302是讀還是寫操作,是對ram還是對clok寄存器操作,以及操作的地址。第二個字節(jié)就是要讀或?qū)懙臄?shù)據(jù)了。我們先看單字節(jié)寫:在進行操作之前先得將ce(

5、也可說是rst)置高電平,然后單片機將控制字的位0放到i/o上,當i/o的數(shù)據(jù)穩(wěn)定后,將sclk置高電平,ds1302檢測到sclk的上升沿后就將i/o上的數(shù)據(jù)讀取,然后單片機將sclk置為低電平,再將控制字的位1放到i/o上,如此反復,將一個字節(jié)控制字的8個位傳給ds1302。接下來就是傳一個字節(jié)的數(shù)據(jù)給ds1302,當傳完數(shù)據(jù)后,單片機將ce置為低電平,操作結(jié)束。單字節(jié)讀操作的一開始寫控制字的過程和上面的單字節(jié)寫操作是一樣,但是單字節(jié)讀操作在寫控制字的最后一個位,sclk還在高電平時,ds1302就將數(shù)據(jù)放到i/o上,單片機將sclk置為低電平后數(shù)據(jù)鎖存,單機機就可以讀取i/o上的數(shù)據(jù)。如

6、此反復,將一個字節(jié)的數(shù)據(jù)讀入單片機。讀與寫操作的不同就在于,寫操作是在sclk低電平時單片機將數(shù)據(jù)放到io上,當sclk上升沿時,ds1302讀取。而讀操作是在sclk高電平時ds1302放數(shù)據(jù)到io上,將sclk置為低電平后,單片機就可從io上讀取數(shù)據(jù)?,F(xiàn)在我們來看看控制字的內(nèi)容:位0就是讀寫位,當位0為1時,就是告訴ds1302,下面是進行讀出操作,而當位0為0時就是寫入操作。位0位5是要進行操作的ds1302寄存器地址。位6就是告訴ds1302,是要對ram進行操作還是對clk寄存器進行操作,0就是對時間寄存器操作,一般我們都是對時間寄存器進行操作。位7就是固定的1。為什么是1呢。還記得

7、上面說的單字節(jié)讀操作嗎?在寫控制字的最后一個位也就是位7時,ds1302已將它的寄存器數(shù)據(jù)位0放到io上了,要是控制字的位7是0的話,ds1302就無法將它的隨后的數(shù)據(jù)放到io上了。這樣你現(xiàn)在就知道為什么控制字80h是寫秒寄存器,而80h是讀秒寄存器了吧!80h換成二進制就是10000000。而81h的二進制就是10000001,一個是寫操作,另一個是讀操作嘛!傳播優(yōu)秀word版文檔 ,希望對您有幫助,可雙擊去除!好!我們現(xiàn)在來總結(jié)一下,如何對ds1302進行操作。首先要通過8eh將寫保護去掉,這樣我們才能將日期,時間的初值寫時各個寄存器。然后就可以對80h、82h、84h、86h、88h、8

8、ah、8ch進行初值的寫入。同時也通過秒寄存器將位7的ch值改成0,這樣ds1302就開始走時運行了。將寫保護寄存器再寫為80h,防止誤改寫寄存器的值。不斷讀取80h8ch的值,將它們格式化后顯示到lcd或數(shù)碼管上。c語言程序案例/*ds1302有關子函數(shù)*/void write_byte(uchar dat)/寫一個字節(jié)acc=dat;/acc為累加器寄存器rst=1;for(a=8;a>0;a-)/從低位把數(shù)據(jù)dat一位一位的送到i/o傳送 io=acc0; /io是ds1302的一個接口,用和單片機交互數(shù)據(jù)sclk=0;sclk=1;acc=acc>>1;uchar read_byte() /讀一個字節(jié)rst=1;for(a=8;a>0;a-)acc7=io;sclk=1;sclk=0;acc=acc>>1;return (acc);傳播優(yōu)秀word版文檔 ,希望對您有幫助,可雙擊去除!void write_1302(uchar add,uchar dat) /向1302芯片寫函數(shù),指定寫入地址,數(shù)據(jù)rst=0;sclk=0;rst=1;write_byte(add);/先寫控制字,選擇寄存器write_byte(dat);/給寄存器賦值sclk=1;rst=0

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論