單片機(jī)原理及應(yīng)用項(xiàng)目化教程課件項(xiàng)目十 實(shí)時(shí)時(shí)鐘DS1302_第1頁(yè)
單片機(jī)原理及應(yīng)用項(xiàng)目化教程課件項(xiàng)目十 實(shí)時(shí)時(shí)鐘DS1302_第2頁(yè)
單片機(jī)原理及應(yīng)用項(xiàng)目化教程課件項(xiàng)目十 實(shí)時(shí)時(shí)鐘DS1302_第3頁(yè)
單片機(jī)原理及應(yīng)用項(xiàng)目化教程課件項(xiàng)目十 實(shí)時(shí)時(shí)鐘DS1302_第4頁(yè)
單片機(jī)原理及應(yīng)用項(xiàng)目化教程課件項(xiàng)目十 實(shí)時(shí)時(shí)鐘DS1302_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

項(xiàng)目十

實(shí)時(shí)時(shí)鐘DS130210.1DS1302的特點(diǎn)1、DS1302是一個(gè)實(shí)時(shí)時(shí)鐘芯片,可以提供秒、分、小時(shí)、

日期、月、年等信息,并且還有軟件自動(dòng)調(diào)整的能力。2、擁有31字節(jié)數(shù)據(jù)存儲(chǔ)RAM。這31字節(jié)的RAM相當(dāng)于一個(gè)

存儲(chǔ)器一樣,我們編寫單片機(jī)程序的時(shí)候,可以把我們

想存儲(chǔ)的數(shù)據(jù)存儲(chǔ)在DS1302里邊,需要的時(shí)候讀出來(lái)。3、串行I/O通信方式。4、DS1302的工作電壓比較寬,在2.0~5.5V的范圍內(nèi)都可以

正常工作。5、DS1302這種時(shí)鐘芯片功耗一般都很低,它在工作電壓2.0V的時(shí)候,工作電流小于300nA。6、DS1302共有8個(gè)引腳,有兩種封裝形式,一種是DIP-8封

裝,一種是SOP-8封裝。7、當(dāng)供電電壓是5V的時(shí)候,兼容標(biāo)準(zhǔn)的TTL電平標(biāo)準(zhǔn),可

以完美的和單片機(jī)進(jìn)行通信。8、DS1302有兩個(gè)電源輸入,一個(gè)是主電源,另外一個(gè)是備

用電源,比如可以用電池或者大電容,這樣做是為了在

系統(tǒng)掉電的情況下,我們的時(shí)鐘還會(huì)繼續(xù)走。10.2DS1302的硬件電路

我們平時(shí)所用的不管是單片機(jī),還是其它一些電子器件,根據(jù)使用條件的約束,可以分為商業(yè)級(jí)和工業(yè)級(jí),主要是工作溫度范圍的不同。DS1302引腳結(jié)構(gòu)1腳VCC2是主電源正極的引腳,2腳X1和3腳X2是晶振輸入和輸出引腳,4腳GND是負(fù)極,5腳CE是使能引腳,接單片機(jī)的IO口,6腳I/O是數(shù)據(jù)傳輸引腳,接單片機(jī)的IO口,7腳SCLK是通信時(shí)鐘引腳,接單片機(jī)的IO口,8腳VCC1是備用電源引腳。引腳編號(hào)引腳名稱引腳功能

1

VCC2主電源引腳,當(dāng)Vcc2比Vcc1高0.2V以上時(shí),DS1302由Vcc2供電,當(dāng)Vcc2低于Vcc1時(shí),由Vcc1供電。2X1這兩個(gè)引腳需要接一個(gè)32.768K的晶振,給DS1302提供一個(gè)基準(zhǔn)。特別注意,要求這個(gè)晶振的引腳負(fù)載電容必須是6pF,而不是要加6pF的電容。如果使用有源晶振的話,接到X1上即可,X2懸空。

3

X24GND接地

5

CEDS1302的使能輸入引腳。當(dāng)讀寫DS1302的時(shí)候,這個(gè)引腳必須是高電平,DS1302這個(gè)引腳內(nèi)部有一個(gè)40k的下拉電阻。

6

I/O這個(gè)引腳是一個(gè)雙向通信引腳,讀寫數(shù)據(jù)都是通過(guò)這個(gè)引腳完成。DS1302這個(gè)引腳的內(nèi)部含有一個(gè)40k的下拉電阻。

7

SCLK輸入引腳。SCLK是用來(lái)作為通信的時(shí)鐘信號(hào)。DS1302這個(gè)引腳的內(nèi)部含有一個(gè)40k的下拉電阻。8VCC1備用電源引腳。電池作為備用電源時(shí)的應(yīng)用電路10.3DS1302寄存器介紹

DS1302的一條指令一個(gè)字節(jié)共8位,其中第7位(即最高位)固定為1,這一位如果是0的話,那寫進(jìn)去也是無(wú)效的。第6位是選擇RAM還是CLOCK的,我們這里主要講CLOCK時(shí)鐘的使用,它的RAM功能我們不用,所以第6位是0,如果要用RAM,那第6位就是1。從第5到第1位,決定了寄存器的5位地址,而第0位是讀寫位,如果要寫,這一位就是0,如果要讀,這一位就是1。DS1302時(shí)鐘的寄存器,其中8個(gè)和時(shí)鐘有關(guān)的,5位地址分別是0b00000~0b00111,還有一個(gè)寄存器的地址是01000,這是涓流充電所用的寄存器

寄存器0:最高位CH是一個(gè)時(shí)鐘停止標(biāo)志位。如果時(shí)鐘電路有備用電源,上電后,我們要先檢測(cè)一下這一位,如果這一位是0,那說(shuō)明時(shí)鐘芯片在系統(tǒng)掉電后,由于備用電源的供給,時(shí)鐘是持續(xù)正常運(yùn)行的;如果這一位是1,那么說(shuō)明時(shí)鐘芯片在系統(tǒng)掉電后,時(shí)鐘部分不工作了。如果Vcc1懸空或者是電池沒(méi)電了,當(dāng)我們下次重新上電時(shí),讀取這一位,那這一位就是1,我們可以通過(guò)這一位判斷時(shí)鐘在單片機(jī)系統(tǒng)掉電后是否還正常運(yùn)行。剩下的7位高3位是秒的十位,低4位是秒的個(gè)位,這里再提請(qǐng)注意一次,DS1302內(nèi)部是BCD碼,而秒的十位最大是5,所以3個(gè)二進(jìn)制位就夠了。

寄存器1:最高位未使用,剩下的7位中高3位是分鐘的十位,低4位是分鐘的個(gè)位。

寄存器2:bit7是1的話代表是12小時(shí)制,0代表是24小時(shí)制;bit6固定是0,bit5在12小時(shí)制下0代表的是上午,1代表的是下午,在24小時(shí)制下和bit4一起代表了小時(shí)的十位,低4位代表的是小時(shí)的個(gè)位。

寄存器3:高2位固定是0,bit5和bit4是日期的十位,低4位是日期的個(gè)位。

寄存器4:高3位固定是0,bit4是月的十位,低4位是月的個(gè)位。

寄存器5:高5位固定是0,低3位代表了星期。

寄存器6:高4位代表了年的十位,低4位代表了年的個(gè)位。請(qǐng)?zhí)貏e注意,這里的00~99指的是2000年~2099年。

寄存器7:最高位一個(gè)寫保護(hù)位,如果這一位是1,那么是禁止給任何其它寄存器或者那31個(gè)字節(jié)的RAM寫數(shù)據(jù)的。因此在寫數(shù)據(jù)之前,這一位必須先寫成0。10.4DS1302通信時(shí)序介紹

DS1302是三根線,分別是CE、I/O和SCLK,其中CE是使能線,SCLK是時(shí)鐘線,I/O是數(shù)據(jù)線。下面我們解析DS1302的通信方式。單字節(jié)寫操作時(shí)序voidDS1302SingleWrite(unsignedcharreg,unsignedchardat){ DS1302_CE=1; DS1302ByteWrite((reg<<1)|0x80); DS1302ByteWrite(dat); DS1302_CE=0;}voidDS1302ByteWrite(unsignedchardat){ unsignedcharmask; for(mask=0x01;mask!=0;mask<<=1) { if((mask&dat)!=0) DS1302_IO=1; else DS1302_IO=0; DS1302_CK=1; DS1302_CK=0; }}

使能信號(hào)CE高電平有效,對(duì)于通信寫數(shù)據(jù),在SCK的上升沿,從機(jī)進(jìn)行采樣,下降沿的時(shí)候,主機(jī)發(fā)送數(shù)據(jù)。需要注意的是DS1302的寫操作時(shí)序,單片機(jī)要預(yù)先寫一個(gè)字節(jié)指令,指明要寫入的寄存器的地址以及后續(xù)的操作是寫操作,然后再寫入一個(gè)字節(jié)的數(shù)據(jù)。單字節(jié)讀操作時(shí)序unsignedcharDS1302SingleRead(unsignedcharreg){ unsignedchardat; DS1302_CE=1; DS1302ByteWrite((reg<<1)|0x81); dat=DS1302ByteRead(); DS1302_CE=0; returndat;unsignedcharDS1302ByteRead(){ unsignedchardat=0; unsignedcharmask; for(mask=0x01;mask!=0;mask<<=1) { if(DS1302_IO!=0) { dat|=mask; } DS1302_CK=1; DS1302_CK=0; } returndat;

讀操作有兩處需要特別注意的地方。第一,DS1302的時(shí)序圖上的箭頭都是針對(duì)DS1302來(lái)說(shuō)的,因此讀操作的時(shí)候,先寫第一個(gè)字節(jié)指令,上升沿的時(shí)候DS1302來(lái)鎖存數(shù)據(jù),下降沿我們用單片機(jī)發(fā)送數(shù)據(jù)。到了第二個(gè)字節(jié)是DS1302下降沿輸出數(shù)據(jù),我們的單片機(jī)上升沿來(lái)讀取,因此箭頭從DS1302角度來(lái)說(shuō),出現(xiàn)在了下降沿。

第二個(gè)需要注意的地方就是,通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),如果先讀取IO線上的數(shù)據(jù),再拉高SCLK產(chǎn)生上升沿,那么讀到的數(shù)據(jù)一定是正確的,而顛倒順序后數(shù)據(jù)就有可能出錯(cuò)。因此這里的程序我們按照先讀取IO數(shù)據(jù),再拉高SCLK產(chǎn)生上升沿的順序。10.5

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論