畢業(yè)設(shè)計基于ds1302數(shù)字時鐘電路的設(shè)計_第1頁
畢業(yè)設(shè)計基于ds1302數(shù)字時鐘電路的設(shè)計_第2頁
畢業(yè)設(shè)計基于ds1302數(shù)字時鐘電路的設(shè)計_第3頁
畢業(yè)設(shè)計基于ds1302數(shù)字時鐘電路的設(shè)計_第4頁
畢業(yè)設(shè)計基于ds1302數(shù)字時鐘電路的設(shè)計_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 引 言從古代的滴漏更鼓到近代的機械鐘,從電子表到目前的數(shù)字時鐘,為了準確的測量和記錄時間,人們一直在努力改進著計時工具。鐘表的數(shù)字化,大力推動了計時的精確性和可靠性。在單片機構(gòu)成的裝置中,實時時鐘是必不可少的部件。目前常用的實時時鐘,很多采用單片機的中斷服務(wù)來實現(xiàn),這種方式一方面需要采用計數(shù)器,占用硬件資源,另一方面需要設(shè)置中斷、查詢等,同樣耗費單片機的資源,而且某些測控系統(tǒng)可能不允許;有的則使用并行接口的時鐘芯片,如MC146818、DS12887等,它們雖然能滿足單片機系統(tǒng)對實時時鐘的要求,但是這些芯片與單片機接口復雜,占用地址、數(shù)據(jù)總線多,芯片體積大,占用空間多,給其它設(shè)計帶來諸多不

2、便。本設(shè)計選取串行接口時鐘芯片DS1302與單片機同步通信構(gòu)成數(shù)字時鐘電路。其簡單的三線接口能為單片機節(jié)省大量資源,DS1302的后背電源及對后背電源進行涓細電流充電的能力保證電路斷電后仍能保存時間和數(shù)據(jù)信息等。這些優(yōu)點解決了目前常用的實時時鐘所無法解決的問題。該時鐘電路強大的功能和優(yōu)越的性能,在很多領(lǐng)域的應(yīng)用中,尤其是某些自動化控制、長時間無人看守的測控系統(tǒng)等對時鐘精確性和可靠性有較高要求的場合,具有很高的使用價值。2 核心芯片簡介2.1 DS1302簡介DS13021是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘芯片,它可以對年、月、日、周日、時、分、秒進行計時,且具有

3、閏年補償功能,工作電壓寬達2.55.5V。時鐘可工作在24小時格式或12小時(AM/PM)格式。 DS1302與單片機的接口使用同步串行通信,僅用3條線與之相連接??刹捎靡淮蝹魉鸵粋€字節(jié)或突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個318的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。2.1.1 DS1302引腳功能與內(nèi)部結(jié)構(gòu)DS1302的引腳功能如表1所示,外形及內(nèi)部結(jié)構(gòu)如圖1所示2:引腳號引腳名稱功能1VCC2主電源2、3X1、X2振蕩源,外

4、接32768Hz晶振4GND地線5RST復位/片選線6I/O串行數(shù)據(jù)輸入/輸出端(雙向)7SCLK串行時鐘輸入端8VCC1后備電源表1 DS1302引腳功能表圖1 DS1302管腳圖及內(nèi)部結(jié)構(gòu)圖2.1.2 DS1302的控制字DS1302的控制字節(jié)如圖2所示: 7 6 5 4 3 2 1 01RAMA4A3A2A1A0RAM 圖2 DS1302控制字節(jié)的含義控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作

5、,控制字節(jié)總是從最低位開始輸出。2.1.3 DS1302的復位引腳通過把輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。 輸入有兩種功能:首先,接通控制邏輯,允許地址命令序列送入移位寄存器;其次,提供了終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果在傳送過程中置為低電平,則會終止此次數(shù)據(jù)傳送,并且I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc2.5V之前,必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。2.1.4 DS1302的數(shù)據(jù)輸入輸出在控制指令字輸入后的下一個SCLK時鐘的上升沿時數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開

6、始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位至高位7,數(shù)據(jù)讀寫時序如圖3所示:圖3 數(shù)據(jù)讀寫時序2.1.5 DS1302的寄存器DS1302共有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式。其日歷、時間寄存器及其控制字見表2。此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器的內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類,一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為

7、C0H-FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。寄存器名命令字取值范圍各位內(nèi)容寫操作讀操作76543210秒寄存器 80H81H00-59CH10SECSEC分寄存器82H83H00-59010MINMIN時寄存器84H85H01-12或00-2312/24010HRHR日寄存器86H87H01-28,29,30,310010DATEDATE月寄存器88H89H01-1200010MMONTH周寄存器8AH8BH01-0700000DAY年寄存器8CH8DH00-9910YE

8、ARYEAR表2 DS1302的日歷、時鐘寄存器及其控制字2.2 AT89S51簡介AT89S513美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS 8位單片機,片內(nèi)含4K Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標準MCS-51指令系統(tǒng)及AT89C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元。單片機AT89S51強大的功能可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。2.2.1 AT89S51芯片的引腳及特點 圖4 AT89S51

9、引腳圖AT89S51芯片的引腳結(jié)構(gòu)如圖4所示:(1)功能特性概括:AT89S51提供以下標準功能:40個引腳、4K Bytes Flash片內(nèi)程序存儲器、128 Bytes的隨機存取數(shù)據(jù)存儲器(RAM)、32個外部雙向輸入/輸出(I/O)口、5個中斷優(yōu)先級2層中斷嵌套中斷、2個數(shù)據(jù)指針、2個16位可編程定時/計數(shù)器、2個全雙工串行通信口、看門狗(WDT)電路、片內(nèi)振蕩器及時鐘電路。此外,AT89S51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑模式下,CPU暫停工作,而RAM、定時/計數(shù)器、串行通信口、外中斷系統(tǒng)可繼續(xù)工作。掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其

10、它功能直至外中斷激活或硬件復位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。(2)管腳說明:VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,也即地址/數(shù)據(jù)總線復用口。作為輸出口用時,能驅(qū)動8個TTL邏輯門電路。對端口寫“1”時,被定義為高阻輸入。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復用,在訪問期間激活內(nèi)部上拉電阻。在Flash編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。P1口:P1口是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1口的輸出緩沖級可驅(qū)動(

11、吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(I)。在Flash編程和程序校驗期間,P1接收低8位地址。部分端口還有第二功能,如表3所示:端口引腳第二功能MOSI(用于ISP編程)MISO(用于ISP編程)SCK (用于ISP編程)表3 P1口部分引腳第二功能P2口:P2口是一個帶有內(nèi)部上拉電阻的8位雙向I/O口, P2口的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用

12、時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(I)。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVXDPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)寄存器(例如執(zhí)行MOVXRi指令)時,P2口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中P2寄存器的內(nèi)容),在整個訪問期間不改變。在Flash編程或校驗時,P2亦接收高位地址和其它控制信號。P3口: P3口是一個帶有內(nèi)部上拉電阻的雙向8位I/O口, P3口的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫“1”時,它們被內(nèi)部的上拉電阻拉高并可作為輸入端口。作輸入口使用時,被

13、外部信號拉低的P3口將用上拉電阻輸出電流(I)。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,如表4所示:P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號。端口引腳第二功能RXD (串行輸入口)TXD (串行輸出口) (外中斷0) (外中斷1) T0 (定時/計數(shù)器0) T1 (定時/計數(shù)器1) (外部數(shù)據(jù)存儲器寫選通) (外部數(shù)據(jù)存儲器讀選通)表4 P3口引腳第二功能RST:復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上的高電平時間將使單片機復位。WDT溢出將使該引腳輸出高電平,設(shè)置SFR AUXR的DISRTO位(地址8EH)可打開或關(guān)閉該功能。

14、DISRTO位缺省為RESET輸出高電平打開狀態(tài)。 ALE/:當訪問外部存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部寄存器,ALE仍以時鐘振蕩頻率的1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。值得注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對Flash存儲器編程期間,該引腳還用于輸入編程脈沖()。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只要一條MOVX和MOVC指令才會激活A(yù)LE。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE無效。:程序存

15、儲允許()輸出是外部程序存儲器的讀選通信號,當AT89S51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次有效,即輸出兩個脈沖。當訪問外部數(shù)據(jù)存儲器時,沒有兩次有效的信號。EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需要注意的是:如果加密位LB1被編程,復位時內(nèi)部會鎖存EA端狀態(tài)。如EA端保持高電平(接VCC端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。Flash存儲器編程期間,該引腳用于施加+12V編程電壓(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入端。XTAL2:反向振蕩放大器器的輸出端

16、。(3)晶體振蕩器特性: AT89S51中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別為該反向放大器的輸入端和輸出端。這個反向放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器。 外接石英晶體(或陶瓷諧振器)及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容C1、C2雖然沒有十分嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及溫度穩(wěn)定性。如果使用石英晶體,電容應(yīng)該使用30pF10pF。 還可以使用外部時鐘。這種情況下,外部時鐘脈沖接XTAL1端,即內(nèi)部時鐘發(fā)生器的輸入端, XTAL2應(yīng)懸空。

17、由于外部時鐘信號是通過一個2分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大低電平持續(xù)時間應(yīng)符合產(chǎn)品技術(shù)條件的要求。2.2.2 AT89S51的主要性能參數(shù):(1)與MCS-51產(chǎn)品指令系統(tǒng)完全兼容。(2)4K字節(jié)在系統(tǒng)可編程(ISP)Flash閃速存儲器。(3)1000次擦寫周期。5.5V的工作電壓范圍。(5)全靜態(tài)工作模式:0Hz-33Hz。(6)三級程序加密。(7)128x8字節(jié)的內(nèi)部RAM。(8)32個雙向可編程I/O口線。(9)2個16位可編程定時/計數(shù)器。(10)6個中斷源。(11)全雙工UART串行通道。(12)低功耗空閑和掉電模式

18、。(13)中斷可從空閑模式喚醒系統(tǒng)。(14)看門狗(WDT)及雙數(shù)據(jù)指針。(15)掉電標識和快速編程特性。(16)靈活的在系統(tǒng)編程(ISP-字節(jié)或頁寫模式)。2.2.3 AT89S51的新功能:AT89S51兼容標準MCS-51指令系統(tǒng)及AT89C51引腳結(jié)構(gòu),它相對于AT89C51增加的新功能包括:(1)ISP在線編程功能,這個功能的優(yōu)勢在于改寫單片機存儲器內(nèi)的程序不需要把芯片從工作環(huán)境中剝離。是一個強大易用的功能。(2) 最高工作頻率為33MHz,AT89C51的極限工作頻率是24M,所以AT89S51具有更高工作頻率,從而具有了更快的計算速度。(3)具有雙工UART串行通道。(4)內(nèi)部集

19、成看門狗計時器,不再需要像AT89C51那樣外接看門狗計時器單元電路。(5)雙數(shù)據(jù)指示器。(6)電源關(guān)閉標識。(7)全新的加密算法,這使得對于AT89S51的解密變?yōu)椴豢赡?,程序的保密性大大加強,這樣就可以有效的保護知識產(chǎn)權(quán)不被侵犯。(8) 兼容性方面:向下完全兼容51全部字系列產(chǎn)品。比如8051、AT89C51等早期MCS-51產(chǎn)品。3 方案設(shè)計與論證方案一:使用并行接口時鐘芯片DS12887設(shè)計時鐘電路。該設(shè)計方案用AT89S51主控,利用并行時鐘芯片DS12887為核心計時芯片,組成數(shù)字時鐘電路。該電路能夠準確計時,還附加許多其它功能,在掉電時能保存用戶設(shè)置參數(shù)和故障狀態(tài)參數(shù)等重要參數(shù)。

20、設(shè)計電路圖5如下: 圖5 DS12887與CPU接口電路 該設(shè)計雖然能完成所要求的任務(wù),綜合性能也較好,但其并行接口方式占用大量接口資源,給其它設(shè)計帶來諸多不便。方案二:使用串行接口時鐘芯片DS1302設(shè)計時鐘電路。該設(shè)計方案以單片機AT89S51為主控芯片,以串行時鐘芯片DS1302為核心計時芯片,組成數(shù)字時鐘電路。該電路不但能準確地計時、附加其它功能,而且,其三線接口可以節(jié)省接口資源,在斷電后不丟失時間和數(shù)據(jù)信息。該設(shè)計方案的接口電路如圖6所示: 圖6 DS1302與CPU接口通過以上兩種設(shè)計方案的比較,我們可以看到,設(shè)計方案二接口簡單,計時可靠,綜合性能良好。所以選用第二種設(shè)計方案。4

21、軟硬件設(shè)計4.1 硬件電路設(shè)計該設(shè)計的硬件電路由主控部分(單片機AT89S51)、計時部分(實時時鐘芯片DS1302)、顯示部分(八段數(shù)碼管)、電源部分(三端穩(wěn)壓器7805)4個部分組成。各部分之間相互協(xié)作,構(gòu)成一個統(tǒng)一的有機整體,實現(xiàn)數(shù)字時鐘的功能。各部分的硬件電路設(shè)計如下。設(shè)計總電路圖見附錄一。4.1.1 單片機AT89S51外圍電路設(shè)計單片機AT89S51作為主控芯片,控制整個電路的運行。單片機外圍需要一個復位電路,復位電路的功能是:系統(tǒng)上電時提供復位信號,直至系統(tǒng)電源穩(wěn)定后,撤消復位信號。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時才撤銷復位信號,以防電源開關(guān)或電源插頭分-合過程中引起的抖動

22、而影響復位。該設(shè)計采用含有二極管的復位電路,復位電路可以有效的解決電源毛刺和電源緩慢下降(電池電壓不足)等引起的問題,在電源電壓瞬間下降時可以使電容迅速放電,一定寬度的電源毛刺也可令系統(tǒng)可靠復位。復位電路的設(shè)計圖如圖7示: 圖7 單片機復位電路圖AT89S51具有在系統(tǒng)可編程功能,可以很方便的改寫單片機存儲器內(nèi)的程序不需要把芯片中從工作環(huán)境中剝離,把AT89S ISP下載口接入電路,可使電路實現(xiàn)該功能。AT89S51需要接入一個普通12MHz晶振,為其提供穩(wěn)定的時鐘脈沖。該設(shè)計中有6個八段數(shù)碼顯示管LED,所以,在單片機AT89S51外圍需要接入6個三極管來驅(qū)動數(shù)碼顯示管。此外,單片機外圍需要

23、接入3個開關(guān),用來調(diào)整時鐘。單片機外圍電路的設(shè)計圖如圖8示:圖8 AT89S51外圍電路圖4.1.2 DS1302與單片機的接口設(shè)計時鐘芯片DS1302與單片機AT89S51的接口是由3條線來完成的,單片機AT89S51的P1.0與時鐘芯片的數(shù)據(jù)傳輸端相連,P1.1用來作為DS1302輸入時鐘SCLK控制端,P1.2控制DS1302的復位輸入端。DS1302接標準32.768KHz石英晶振。DS1302與單片機的接口電路如圖9所示: 圖9 DS1302與AT89S51連接圖 顯示設(shè)計八段數(shù)碼顯示管有兩種,一種是共陽數(shù)碼管,其內(nèi)部是由八個陽極相連接的發(fā)光二極管組成;另一種是共陰數(shù)碼管,其內(nèi)部是由

24、八個陰極相連接的發(fā)光二極管組成。二者原理不同但功能相同。本設(shè)計的時間顯示選用6個共陰八段數(shù)碼管LED,其外形和內(nèi)部結(jié)構(gòu)如圖10所示: 圖10 八段共陰數(shù)碼管LED4.1.4 電源設(shè)計 時鐘芯片DS1302有很寬的工作電壓范圍,其工作電壓為2.55.5V。單片機AT89S51的工作電壓范圍相對較窄,為5.5V,所以本設(shè)計中,給電路接入三端穩(wěn)壓器7805,利用它的穩(wěn)壓功能給電路提供穩(wěn)定的+5V電壓,使電路的工作保持很高的可靠性。在電路中接入一個發(fā)光二極管作為指示燈,可以很方便地指示電源與電路是否接通。該設(shè)計的電源部分如圖11所示:圖11 電源電路圖4.2 軟件實現(xiàn)單片機AT89S51對時鐘芯片DS

25、1302的控制需要通過程序驅(qū)動來實現(xiàn),程序主要完成兩個方面的任務(wù):利用單片機實現(xiàn)對DS1302寄存器的地址定義和控制字的寫入,實現(xiàn)對DS1302的數(shù)據(jù)讀取。初始化DS1302要求為低電平,SCLK為低電平。 被設(shè)置為高電平就啟動了一個數(shù)據(jù)傳送的過程。SCLK的16個方波完成一次數(shù)據(jù)傳送,前8個方波用于輸入命令字節(jié),后8個方波用于數(shù)據(jù)的輸出(讀DS1302)或數(shù)據(jù)的輸入(寫DS1302)。在SCLK的上升沿,I/O線上的數(shù)據(jù)被送入DS1302;在SCLK的下降沿,DS1302輸出數(shù)據(jù)在I/O線上。寫和讀各需要一個程序,寫DS1302程序流程圖如圖12所示,讀DS1302程序流程圖4如圖12所示。

26、兩個子程序及總程序見附錄二、三、四。啟動寫數(shù)據(jù)字節(jié)一位復位端變高啟動一次數(shù)據(jù)傳送工作結(jié)束SCLK發(fā)脈沖復位端變低SCLK發(fā)脈沖寫命令字節(jié)一位夠8次嗎?夠8次嗎?NYYN啟動讀數(shù)據(jù)字節(jié)一位復位端變高啟動一次數(shù)據(jù)傳送工作結(jié)束SCLK發(fā)脈沖復位端變低SCLK發(fā)脈沖寫命令字節(jié)一位夠8次嗎?夠8次嗎?NYYN 寫DS1302流程圖 讀DS1302流程圖圖12 DS1302時間流程圖5 結(jié) 論 本設(shè)計利用單片機AT89S51控制串行實時時鐘芯片DS1302構(gòu)成數(shù)字時鐘電路,實現(xiàn)計時功能。該電路使用簡單的三線接口,為單片機節(jié)省大量的接口資源,時鐘芯片DS1302帶有后備電池,具備對后背電源進行涓細電流充電的

27、能力,保證電路斷電后仍保存時間和數(shù)據(jù)信息,這些優(yōu)點解決了目前常用實時時鐘占用單片機資源多以及計時不可靠等缺點。該時鐘功能強大,性能優(yōu)越,能為很多領(lǐng)域,特別是對時鐘工作的精確性和可靠性有較高要求的場合,提供較好的實時時鐘。但是,由于DS1302易受環(huán)境影響,會使該電路出現(xiàn)時鐘精度不高、時鐘混亂5等問題,還有待繼續(xù)研究和改進。6 致 謝本設(shè)計是在指導老師暢福善的悉心指導下完成的。從設(shè)計的選題,相關(guān)資料的查尋,到論文的撰寫這一整個過程中,暢老師以其廣博的知識、豐富的經(jīng)驗 、清晰的思路,自始至終給我以指導,使我能夠順利完成設(shè)計,他嚴謹?shù)闹螌W態(tài)度,精益求精的工作作風和孜孜不倦的求學精神令我受益匪淺。在此

28、設(shè)計完成之際,對暢老師表示衷心的感謝!7 參 考 文 獻1 王明順,趙德平.可涓流充電的串行實時時鐘芯片DS1302及應(yīng)用設(shè)計J.國外電子元器件,1997,(2)2 高性能、低功耗帶RAM實時時鐘芯片DS1302.PS武漢力源電子股份,19993 ZYMCU AT89S51 Datasheets4 黃明強.DS1302在單片機系統(tǒng)中的應(yīng)用J.保定師范專科學校學報,2004,17(2)5 趙海蘭,朱劍,趙祥偉.DS1302實時顯示時間的原理與應(yīng)用J.電子技術(shù),2002,(1)6 鄧紅,張越編著.單片機實驗與應(yīng)用設(shè)計教程M.冶金工業(yè)出版社,2004,57 孫雪梅,范久臣.實時時鐘芯片在單片機系統(tǒng)中

29、的應(yīng)用J.沈陽教育學院學報,2005,7(2)8 孫安青編著. AT89S51單片機實驗及實踐教程M9 DALLAS SEMICONDUCTOR.DS1302 Trickle Charge Timekeeping Chip10 ATMEL AT89S51.Atmel Corporation 20018 附 錄附錄一:設(shè)計總電路圖:附錄二:寫DS1302子程序: void writeDS1302(uchar dsRamAdr,uchar ds1302data) uchar i; TIMERCLK=0; delay(2); TIMERRST=1; delay(2); DS1302adr=dsRam

30、Adr; DS1302dat=ds1302data; for(i=0;i1; for(i=0;i1; TIMERRST=0; delay(2); TIMERRST=0; 附錄三:讀DS1302子程序:uchar readDS1302(uchar DS1302Adr) uchar i; TIMERCLK=0; delay(2); TIMERRST=1; delay(2); DS1302adr=DS1302Adr; for(i=0;i1; TIMERIO=1; for(i=0;i1; TIMERCLK=0; ds1302datHbit=TIMERIO; TIMERRST=0; delay(2);

31、TIMERCLK=0; return DS1302dat; 附錄四:軟件設(shè)計總程序:#include #include #define uchar unsigned char/引腳定義 sbit TIMERCLK=P10; /DS1302同步串行時鐘引腳 sbit TIMERIO=P11; /DS1302數(shù)據(jù)輸入輸出引腳 sbit TIMERRST=P12; /DS1302RST引腳 sbit P2_0=P20; sbit P2_1=P21; sbit P2_2=P22; sbit P2_3=P23; sbit P2_4=P24; sbit P2_5=P25; sbit P2_6=P26; s

32、bit P2_7=P27; sbit P3_5=P35; sbit P3_6=P36; sbit P3_7=P37; /sbit SEC_7=SEC7; /sbit WDT=P13; /看門狗喂狗引腳 uchar code TABLE=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f; /#define DIGPORT /全局變量聲明 uchar bdata DS1302dat; /DS1302讀寫過程中的命令或數(shù)據(jù) sbit ds1302datHbit=DS1302dat7; /位定義,用于數(shù)據(jù)寫入 sbit ds1302

33、datBit=DS1302dat0; /位定義,用于數(shù)據(jù)讀出 uchar bdata DS1302adr; /DS1302讀寫過程中所訪問的單元地址 sbit ds1302adrBit=DS1302adr0; / uchar idata SEC; uchar MIN; uchar HR; uchar DATE; uchar MONTH; uchar DAY; uchar YEAR; uchar disp1; uchar disp2; uchar disp3; uchar disp4; uchar disp5; uchar disp6; uchar disp7; uchar disp8; uch

34、ar tiao; uchar tt; uchar flag; / sbit SEC_7=SEC7; void delay(uchar time) uchar i,j; for(i=0;itime;i+) for(j=0;jtime;j+) / WDT=WDT; void writeDS1302(uchar dsRamAdr,uchar ds1302data) uchar i; TIMERCLK=0; delay(2); TIMERRST=1; delay(2); DS1302adr=dsRamAdr; DS1302dat=ds1302data; for(i=0;i1; for(i=0;i1;

35、TIMERRST=0; delay(2); TIMERRST=0; uchar readDS1302(uchar DS1302Adr) uchar i; TIMERCLK=0; delay(2); TIMERRST=1; delay(2); DS1302adr=DS1302Adr; for(i=0;i1; TIMERIO=1; for(i=0;i1; TIMERCLK=0; ds1302datHbit=TIMERIO; TIMERRST=0; delay(2); TIMERCLK=0; return DS1302dat; void DS1302Inital(void) uchar ds1302

36、st; TIMERCLK=0; TIMERRST=0; ds1302st=readDS1302(0 x0c1); if(ds1302st!=0 x55) / WDT=WDT; ; writeDS1302(0 x8e,0 x00); /writeDS1302(0 x80,0 x00); writeDS1302(0 x82,0 x00); writeDS1302(0 x84,0 x16); writeDS1302(0 x86,0 x19); / WDT=WDT; ; writeDS1302(0 x88,0 x09); writeDS1302(0 x8a,0 x02); writeDS1302(0

37、x8c,0 x00); / WDT=WDT; ; writeDS1302(0 x90,0 xa6); writeDS1302(0 x0c0,0 x55); writeDS1302(0 x80,0 x00); void readRTC(void) MONTH=readDS1302(0 x89); DATE=readDS1302(0 x87); HR=readDS1302(0 x85); MIN=readDS1302(0 x83); SEC=readDS1302(0 x81); void disp(void) if(MIN=10)writeDS1302(0 x82,0 x10); if(MIN=2

38、6)writeDS1302(0 x82,0 x20);if(MIN=42)writeDS1302(0 x82,0 x30);if(MIN=58)writeDS1302(0 x82,0 x40);if(MIN=74)writeDS1302(0 x82,0 x50);if(MIN=90)writeDS1302(0 x82,0 x00);if(HR=10)writeDS1302(0 x84,0 x10);if(HR=26)writeDS1302(0 x84,0 x20);if(HR=36)writeDS1302(0 x84,0 x00);/if(HR=58)writeDS1302(0 x82,0 x

39、40);/if(HR=74)writeDS1302(0 x82,0 x50);/if(HR=90)writeDS1302(0 x82,0 x00);if(DATE=10)writeDS1302(0 x86,0 x10);if(DATE=26)writeDS1302(0 x86,0 x20);if(DATE=42)writeDS1302(0 x86,0 x30);if(DATE=50)writeDS1302(0 x86,0 x01);/if(DATE=74)writeDS1302(0 x82,0 x50);/if(DATE=90)writeDS1302(0 x82,0 x00); disp2=S

40、EC/16; disp1=SEC%16;/if(flag1=0)/if(MIN=10|MIN=26|MIN=42|MIN=58|MIN=74)MIN=MIN+6;disp4=MIN/16;disp3=MIN%16;/flag1=0;disp6=HR/16;disp5=HR%16;disp8=DATE/16;disp7=DATE%16;P2_0=0;P0=TABLEdisp1;delay(12); P2_0=1; P2_1=0;P0=TABLEdisp2;delay(12); P2_1=1;P2_2=0;P0=TABLEdisp3;delay(12);P2_2=1;P2_3=0;P0=TABLE

41、disp4;delay(12);P2_3=1; P2_4=0;P0=TABLEdisp5;delay(12);P2_4=1;P2_5=0;P0=TABLEdisp6;delay(12);P2_5=1;P2_6=0;P0=TABLEdisp7;delay(12);P2_6=1;P2_7=0;P0=TABLEdisp8;delay(12);P2_7=1; void dispA(void) if(SEC=10|SEC=26|SEC=42|SEC=58|SEC=74)SEC=SEC+6; /if(SEC=74|SEC=58|SEC=42|SEC=26|SEC=10)SEC=SEC+6; disp2=S

42、EC/16; disp1=SEC%16;/disp4=MIN/16;/disp3=MIN%16;/disp6=HR/16;/disp5=HR%16;/disp8=DATE/16;/disp7=DATE%16;if(SEC=90)SEC=0;P2_0=0;P0=TABLEdisp1;delay(12); P2_0=1; P2_1=0;P0=TABLEdisp2;delay(12); P2_1=1;P2_2=0;P0=TABLEdisp3;delay(5);P2_2=1;P2_3=0;P0=TABLEdisp4;delay(5);P2_3=1; P2_4=0;P0=TABLEdisp5;delay

43、(5);P2_4=1;P2_5=0;P0=TABLEdisp6;delay(5);P2_5=1;P2_6=0;P0=TABLEdisp7;delay(5);P2_6=1;P2_7=0;P0=TABLEdisp8;delay(5);P2_7=1; void dispB(void) if(MIN=10|MIN=26|MIN=42|MIN=58|MIN=74)MIN=MIN+6;/if(MIN=74|MIN=58|MIN=42|MIN=26|MIN=10)MIN=MIN+6; /disp2=SEC/16; /disp1=SEC%16;disp4=MIN/16;disp3=MIN%16;/disp6=

44、HR/16;/disp5=HR%16;/disp8=DATE/16;/disp7=DATE%16;if(MIN=90)MIN=0;P2_0=0;P0=TABLEdisp1;delay(5); P2_0=1; P2_1=0;P0=TABLEdisp2;delay(5); P2_1=1;P2_2=0;P0=TABLEdisp3;delay(12);P2_2=1;P2_3=0;P0=TABLEdisp4;delay(12);P2_3=1; P2_4=0;P0=TABLEdisp5;delay(5);P2_4=1;P2_5=0;P0=TABLEdisp6;delay(5);P2_5=1;P2_6=0;

45、P0=TABLEdisp7;delay(5);P2_6=1;P2_7=0;P0=TABLEdisp8;delay(5);P2_7=1; void dispC(void) if(HR=10|HR=26|HR=42|HR=58|HR=74)HR=HR+6;/if(HR=74|HR=58|HR=42|HR=26|HR=10)HR=HR+6; /disp2=SEC/16; /disp1=SEC%16;/disp4=MIN/16;/disp3=MIN%16;disp6=HR/16;disp5=HR%16;if(HR=36)HR=0;/disp8=DATE/16;/disp7=DATE%16;P2_0=0;P0=TABLEdisp1;delay(5); P2_0=1; P2_1=0;P0=TABLEdisp2;delay(5); P2_1=1;P2_2=0;P0=TABLEdisp3;delay(5);P2_2=1;P2_3=0;P0=TABLEdisp4;delay(5);P2_3=1; P2_4=0;P0=TABLEdisp5;delay(12);P2_4=1;P2_5=0;P0

溫馨提示

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

評論

0/150

提交評論