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

下載本文檔

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

文檔簡介

1、物理與電子科學系畢業(yè)論文(設計)數(shù) 字 時 鐘學生姓名羅 群專業(yè)名稱嵌入式系統(tǒng)工程系班 級2 0 1 1 級學 號2 0 1 1 3 0 9 5指導教師晏 勇阿壩師范高等??茖W校物理與電子科學系二O一四年四月摘 要加入世貿組織以后,中國會面臨激烈的競爭。這種競爭將是一場科技實力、管理水平和人才素質的較量,風險和機遇共存,同時電子產品的研發(fā)日新月異,不僅是在通信技術方面數(shù)字化取代于模擬信號,就連我們的日常生活也進于讓數(shù)字化取締,說明數(shù)字時代已經到來,而且滲透于我們生活的方方面面。就拿我們生活的實例來說明一下“數(shù)字”給我們帶來的便捷。下面我們就以數(shù)字鐘為例簡單介紹一下。數(shù)字鐘我們聽到這幾個字,第一

2、反應就是我們所說的數(shù)字,不錯數(shù)字鐘就是以數(shù)字顯示取代模擬表盤的鐘表,在顯示上它用數(shù)字反應出此時的時間,相比模擬鐘能給人一種一目了然的感覺,不僅如此它還能同時顯示時、分、秒。而且能對時、分、秒準確校時,這是普通鐘所不及的。與此同時數(shù)字鐘還能準確定時,在你所規(guī)定的時間里準確無誤的想你發(fā)出報時聲音,提醒你在此時所需要去做的事。與舊式鐘表相比它更適用于現(xiàn)代人的生活。在畢業(yè)之際恰好遇上學校的畢業(yè)課題電子時鐘設計畢業(yè)論文。因而在所學專業(yè)的基礎上做了以下畢業(yè)設計。希望給大家?guī)矸奖愕耐瑫r,使自己對所學專業(yè)有進一步的了解!關鍵詞 數(shù)字時鐘 單片機 DS1302芯片 軟件目錄前言- 1 -1設計方案- 2 -1

3、.1 方案的選擇- 2 -1.2 設計要求:- 2 -2硬件系統(tǒng)設計- 3 -2.1 系統(tǒng)概述- 3 -2.2 硬件設計- 3 -2.2.1 單片機主控電路(AT89C51)- 3 -2.2.2 時鐘計時設計(DS1302)- 6 -2.2.3 液晶顯示器設計(LCD1602)- 9 -2.2.4 晶振電路- 10 -2.2.5鍵盤電路- 10 -2.2.6 鬧鐘電路- 10 -3系統(tǒng)程序設計- 11 -3.1時間程序設計- 11 -3.2 時間調節(jié)程序設計- 11 -3.3鬧鐘程序設計- 13 -4系統(tǒng)測試及結果- 14 -5 結論- 14 -6 參考文獻- 15 -7后記- 15 -附錄1

4、:數(shù)字時鐘設計電路原理圖- 16 -附錄2:主程序- 16 - 42 -前言傳統(tǒng)時鐘主要是機械式轉動,有指針顯示時間,往往存在計時誤差,不能滿足人們對時間計量的精度要求,與現(xiàn)代計數(shù)發(fā)展不相符。隨著科技的進步,以單片機為主要功能模塊,采用LCD輸出顯示時間,用按鈕做開關,軟件及時、調試,輔助必要的電路,實現(xiàn)高效、準確的電子時鐘系統(tǒng)代替的傳統(tǒng)時鐘。單片機自20世紀70年代問世以來,以其極高的性能價格比,受到人們的重視與關注,應用很廣、發(fā)展迅速。單片機具有體積小、重量輕、抗干擾能力強、環(huán)境要求高、價格低廉、可靠性高、靈活性好、開發(fā)較為容易的優(yōu)點。已經廣泛的應用與工業(yè)自動化控制、智能儀器儀表、家用電器

5、、電力電子、機電一體化設備等領域。在單片機領域中應用最多的是51系列。用LCD1602設計的可調式電子時鐘是以AT89C51為核心,輔以必要的電路而設計的。數(shù)字電子時鐘設計與制作可采用數(shù)字電路實現(xiàn),也可以采用單片機實現(xiàn),若用數(shù)字電路完成,所設計的電路相當?shù)膹碗s,需要十幾片數(shù)字集成塊,其功能也主要依賴與數(shù)字電路的各功能模塊的組合來實現(xiàn),焊接的過程也比較復雜,成本也非常高。若用單片機來設計制作完成,由于計數(shù)器功能實現(xiàn)主要通過軟件呢編程來實現(xiàn)。降低了硬件電路的復雜性,而且成本也有所降低,所以在設計與制作數(shù)字時鐘時我們采用單片機AT89C51,它是低功耗。高性能的單片機。片內帶有flash存儲器,且允

6、許在系統(tǒng)內改寫或用編程器編程。液晶顯示器LCD具有低功耗、體積小、重量輕、超薄等許多其他顯示器無法比擬的優(yōu)點,近年來被廣泛用于單片機控制的智能儀器、儀表和低功耗電子產品中。LCD可分為段式LCD、字符式LCD和點陣式LCD。其中,段式LCD和字符式LCD只能用語字符和數(shù)字的簡單顯示,不能滿足圖形曲線和漢字顯示的要求,而點陣式LCD不僅可以顯示字符、數(shù)字,還可以顯示各種圖形、曲線以及漢字、動畫,并且可以實現(xiàn)屏幕滾動、反轉、閃爍等功能,用途十分廣泛。電子時鐘用集成電路計時,譯碼代替機械式轉動,用LCD顯示器代替指針顯示,減小了計時誤差,該數(shù)字時鐘具有時、分、秒、年、月、日顯示時間功能,還可以進行年

7、、月、日、時和分的校對。相對傳統(tǒng)的電子時鐘,數(shù)字電子時鐘克服了電子時鐘計時不精確的缺陷,加上調節(jié)方便,受到廣大消費者的喜愛。1設計方案1.1 方案的選擇由于電子萬年歷的種類比較多,因此方案選擇在設計中是至關重要的。正確地選擇方案可以減小開發(fā)難度,縮短開發(fā)周期,降低成本,更快地將產品推向市場。方案1:基于AT89C51單片機的電子萬年歷設計不使用時鐘芯片,而直接用AT89S52單片機來實現(xiàn)電子萬年歷設計。AT89C51是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS 8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦寫1000余次。由于將多功能8位CPU和閃爍存儲器組

8、合在單個芯片中,ATMEL的AT89S52是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。若采用單片機計時,利用它的一個16位定時器/計數(shù)器每50ms產生一個中斷信號,中斷20次后產生一個秒信號,然后根據(jù)時間進制關系依次向分、時、日、星期、月、年進位。這樣就實現(xiàn)了直接用單片機來實現(xiàn)電子萬年歷設計。用單片機來實現(xiàn)電子萬年歷設計,無須外接其他芯片,充分利用了單片機的資源。但是精度不夠高,誤差較大,掉電后丟失所有數(shù)據(jù),軟件編程較復雜。方案2:基于DS1302的電子萬年歷設計在以單片機為核心構成的裝置中,經常需要一個實時的時鐘和日歷,以便對一些實時發(fā)生事件記錄時給予時標,實時時

9、鐘芯片便可起到這一作用。過去多用并行接口的時鐘芯片,如MC146818,DS12887等。它們已能完全滿足單片機系統(tǒng)對實時時鐘的要求,但是這些芯片與單片機接口復雜、占用地址, 數(shù)據(jù)總線接線多、芯片體積大占用空間多、近年來串行接口的各種芯片在單片機系統(tǒng)中應用愈來愈多,串行接口的實時時鐘芯片也出現(xiàn)了不少,DS1302是一個綜合性能較好且價格便宜的串行接口實時時鐘芯片。利用單片機進行控制,采用DS1302作為實時時鐘芯片,其三線接口SCLK、I/O、/RST與單片機進行同步通信,外加掉電存儲電路、顯示電路、鍵盤電路,即構成一個基本的電子萬年歷系統(tǒng),若還要添加其他功能,在這基礎上外擴電路即可。由于在系

10、統(tǒng)設計時,需要考慮以下幾點因素:功耗低、精確度高、軟件編程較簡單,芯片的體積小、芯片成本低等,而DS1302芯片有上面所述的諸多優(yōu)點,所以本設計采用方案2。1.2 設計要求:(1)LCD1602顯示時,分,秒,年,月,日; (2)設置按鍵調整功能,能夠校準時間和設置鬧鈴時間;(3)設置鬧鐘功能。2硬件系統(tǒng)設計2.1 系統(tǒng)概述按照系統(tǒng)設計功能的要求,初步確定設計系統(tǒng)由主控模塊、時鐘模塊、鍵盤模塊、顯示模塊、鬧鈴模塊、晶振模塊和復位電路共7個模塊組成,電路系統(tǒng)構成框圖如圖1-1所示。主控芯片使用51系列AT89C51單片機,時鐘芯片使用美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時

11、鐘芯片DS1302。 DS1302作為主要計時芯片,可以做到計時準確。更重要的是,DS1302可以在很小電流的后備 (2.55.5V電源,在2.5V時耗電小于300nA)下繼續(xù)計時,并可編程選擇多種充電電流來對后備電源進行慢速充電,可以保證后備電源基本不耗電。主控模塊時鐘模塊鍵盤模塊顯示模塊鬧鈴模塊復位電路晶振模塊圖2.1 系統(tǒng)框圖2.2 硬件設計2.2.1 單片機主控電路(AT89C51)AT89C51是一種低功耗、高性能COMS8位微處理器,內部自帶2K字節(jié)可編程FLASH存儲器,AT89C2051構成的單片機系統(tǒng)是具有結構最簡單、造價最低廉、效率最高的微控制系統(tǒng),省去了外部的RAM、RO

12、M和接口器件,減少了硬件開銷,節(jié)省了成本,提高了系統(tǒng)的性價比。(1)AT89C51具有下列主要性能:·8KB可改編程序Flash存儲器(可經受1000次的寫入/擦除周期) ·全靜態(tài)工作:0Hz24MHz·三級程序存儲器保密·128×8字節(jié)內部RAM·32條可編程I/O線·2個16位定時器/計數(shù)器·6個中斷源·可編程串行通道·片內時鐘振蕩器(2)AT89C51的引腳及功能:AT89S52單片機的管腳說明如圖2.2所示。圖2.2 AT89C51的管腳(2-1) 主要電源引腳 VCC 電源端 GND

13、接地端(2-2)外接晶體引腳XTAL1和XTAL2 XTAL1 接外部晶體的一個引腳。在單片機內部,它是構成片內振蕩器的反相放大器的輸入端。當采用外部振蕩器時,該引腳接收振蕩器的信號,既把此信號直接接到內部時鐘發(fā)生器的輸入端。 XTAL2 接外部晶體的另一個引腳。在單片機內部,它是上述振蕩器的反相放大器的輸出端。采用外部振蕩器時,此引腳應懸浮不連接。(2-3) 控制或與其它電源復用引腳RST、ALE/PROG、/PSEN和/EA/VPP RST 復位輸入端。 當振蕩器運行時,在該引腳上出現(xiàn)兩個機器周期的高電平將使單片機復位。 ALE/PROG 當訪問外部存儲器時,ALE(地址鎖存允許)的輸出用

14、于鎖存地址的低位字節(jié)。即使不訪問外部存儲器,ALE端仍以不變的頻率(此頻率為振蕩器頻率的1/6)周期性地出現(xiàn)正脈沖信號。因此,它可用作對外輸出的時鐘,或用于定時目的。然而要注意的是:每當訪問外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。在對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(/PROG)。/PSEN 程序存儲允許(/PSEN)輸出是外部程序存儲器的讀選通信號。當AT89S52/LV52由外部程序存儲器取指令(或常數(shù))時,每個機器周期兩次/PSEN有效(既輸出2個脈沖)。但在此期間內,每當訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP 外部訪問允許端。要使CP

15、U只訪問外部程序存儲器(地址為0000HFFFFH),則/EA端必須保持低電平(接到GND端)。當/EA端保持高電平(接VSS端)時,CPU則執(zhí)行內部程序存儲器中的程序。(2-4) 輸入/輸出引腳 P0.0 P0.7、P1.0P1.7、P2.0 P2.7 和P3.0P3.7 P0端口(P0.0 P0.7) P0是一個8位漏極開路型雙向I/O端口。作為輸出口用時,每位能以吸收電流的方式驅動8個TTL輸入,對端口寫1時,又可作高阻抗輸入端用。P1端口(P1.0 P1.7) P1是一個帶有內部上拉電阻的8位雙向I/O端口。P1的輸出緩沖器可驅動(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過

16、內部的上拉電阻把端口拉到高電位,這時可用作輸入口。作輸入口時,因為有內部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。 P2端口 (P2.0P2.7) P2是一個帶有內部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可驅動(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內部的上拉電阻把端口拉到高電位,這時可用作輸入口。P2作輸入口使用時,因為有內部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。P3端口(P3.0P3.7) P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉

17、為低電平,P3口將輸出電流,這是由于上拉的緣故。P3口也可作為AT89S52的一些特殊功能,這些特殊功能見表2.1。表2.1 P3端口的特殊功能 端口引腳 兼 用 功 能 P3.0RXD (串行輸入口) P3.1TXD (串行輸出口) P3.2/INT0 (外部中斷0) P3.3/INT1 (外部中斷1) P3.4T0 ( 定時器0的外部輸入) P3.5T1 (定時器1的外部輸入) P3.6/WR (外部數(shù)據(jù)存儲器寫選通) P3.7/RD (外部數(shù)據(jù)存儲器讀選通)2.2.2 時鐘計時設計(DS1302)低功耗時鐘芯片DS1302可以對年、月、日、時、分、秒進行計時,且具有閏年補償?shù)榷喾N功能。D

18、S1302用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點的記錄上,能實現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄。這種記錄對長時間的連續(xù)測控系統(tǒng)結果的分析以及對異常數(shù)據(jù)出現(xiàn)的原因的查找有重要意義。采用DS1302作為記錄測控系統(tǒng)中的數(shù)據(jù)記錄,其軟硬件設計簡單,時間記錄準確,既避免了連續(xù)記錄的大工作量,又避免了定時記錄的盲目性,給連續(xù)長時間的測量、控制系統(tǒng)的正常運行及檢查都來了很大的方便,可廣泛應用于長時間連續(xù)的測控系統(tǒng)中。在測量控制系統(tǒng)中,特別是長時間無人職守的測控系統(tǒng)中,經常需要記錄某些具有特殊意義的數(shù)據(jù)及其出現(xiàn)的時間。記錄及分析這些特殊意義的數(shù)據(jù),對測控系統(tǒng)的性能分析及正常運行具有重要的意義。傳統(tǒng)的

19、數(shù)據(jù)記錄方式是隔時采樣或定時采樣,沒有具體的時間記錄,因此只能記錄數(shù)據(jù)而無法準確記錄其出現(xiàn)的時間;若采用單片機計時,一方面需要采用計數(shù)器,占用硬件資源,另一方面需要設置中斷、查詢等,同樣耗費單片機的資源,而且某些測控系統(tǒng)可能不允許。而在系統(tǒng)中采用DS1302則能很好地解決這個問題。(1) DS1302的性能特性·實時時鐘,可對秒、分、時、日、周、月以及帶閏年補償?shù)哪赀M行計數(shù);·用于高速數(shù)據(jù)暫存的31×8位RAM;·最少引腳的串行I/O;·2.55.5V 電壓工作范圍;·2.5V時耗電小于300nA;·用于時鐘或RAM數(shù)據(jù)讀/

20、寫的單字節(jié)或多字節(jié)(脈沖方式)數(shù)據(jù)傳送方式;·簡單的3線接口;·可選的慢速充電(至VCC1)的能力。DS1302時鐘芯片包括實時時鐘/日歷和31字節(jié)的靜態(tài)RAM。它經過一個簡單的串行接口與微處理器通信。實時時鐘/日歷提供秒、分、時、日、周、月和年等信息。對于小于31天的月和月末的日期自動進行調整,還包括閏年校正的功能。時鐘的運行可以采用24h或帶AM(上午)/PM(下午)的12h格式。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302有主電源/后備電源雙電源引腳:VCC1 在單電源與電池供電的系統(tǒng)中提供低電源,并提供低功率

21、的電池備份;VCC2在雙電源系統(tǒng)中提供主電源,在這種運用方式中,VCC1 連接到備份電源,以便在沒有主電源的情況下能保存時間信息以及數(shù)據(jù)。DS1302由VCC1或VCC2中較大者供電。當VCC2大于VCC1+0.2V時,VCC2給DS1302供電;當VCC2小于VCC1時,DS1302由VCC1供電。(2) DS1302數(shù)據(jù)操作原理DS1302在任何數(shù)據(jù)傳送時必須先初始化,把RST腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)在SCLK的上升沿被輸入。無論是讀周期還是寫周期,開始8位指定40個寄存器中哪個被訪問到。在開始8個時鐘周期,把命令字節(jié)裝入移位寄存器之后,另外的時鐘周期在讀操

22、作時輸出數(shù)據(jù),在寫操作時寫入數(shù)據(jù)。時鐘脈沖的個數(shù)在單字節(jié)方式下為8加8,在多字節(jié)方式下為8加字節(jié)數(shù),最大可達248字節(jié)數(shù)。圖2.3 DS1302管腳圖如果在傳送過程中置RST為低電平,則會終止本次數(shù)據(jù)傳送,并且I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在VCC >=2.5V之前,RST腳必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。DS1302的管腳圖如圖2-3所示。表2.2 DS1302引腳功能表引腳號引腳名稱功能1VCC2主電源2,3X1,X2振蕩源,外接32768HZ晶振4GND地線5RST復位/片選線6I/O串行數(shù)據(jù)輸入/輸出端(雙向)7SCLK串行數(shù)據(jù)輸入端8VCC

23、1后備電源DS1302的控制字如圖2.5所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1;如果它為邏輯0,則不能把數(shù)據(jù)寫入到DS1302中。位6如果為0,則表示存取日歷時鐘數(shù)據(jù);為1表示存取RAM數(shù)據(jù)。位51(A4A0)指示操作單元的地址。最低有效位(位0)如為0,表示要進行寫操作;為1表示進行讀操作??刂谱止?jié)總是從最低位開始輸入/輸出。7 6 5 4 3 2 1 01RAM CKA4A3A2A1A0RAM K圖2.5 控制字節(jié)的含義為了提高對32個地址的尋址能力(地址/命令位15邏輯1),可以把時鐘/日歷或RAM寄存器規(guī)定為多字節(jié)(burst)方式。位6規(guī)定時鐘或RAM,而位0規(guī)定讀或寫。在時

24、鐘/日歷寄存器中的地址931或RAM寄存器中的地址31不能存儲數(shù)據(jù)。在多字節(jié)方式中,讀或寫從地址0的位0開始。必須按數(shù)據(jù)傳送的次序寫最先的8個寄存器。但是,當以多字節(jié)方式寫RAM時,為了傳送數(shù)據(jù)不必寫所有31字節(jié)。不管是否寫了全部31字節(jié),所寫的每一字節(jié)都將傳送至RAM。數(shù)據(jù)讀寫程序如圖2.6所示。SCLKKRSTI/O571357210246046R/CA2A3A0A1R/WA41DATAI/OBYTEDATAI/OBYTE圖2.6 數(shù)據(jù)讀寫程序DS1302共有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表2.3,其中奇數(shù)為讀操作

25、,偶數(shù)為寫操作。表2.3 DS1302的日歷、時鐘寄存器及其控制字寄存器名命令字取值范圍各位內容寫操作讀操作76543210秒寄存器80H81H00-59CH10SECSEC分鐘寄存器82H83H00-59010MINMIN小時寄存器84H85H01- 12或00-2312/24010APHRHR日期寄存器86H87H01-28,29,30,310010DATEDATE月份寄存器88H89H01-12000IOMMONTH周日寄存器8AH8BH01-0700000DAY年份寄存器8CH8DH00-9910YEARYEAR時鐘暫停:秒寄存器的位7定義位時鐘暫停位。當它為1時,DS1302停止振蕩

26、,進入低功耗的備份方式。通常在對DS1302進行寫操作時(如進入時鐘調整程序),停止振蕩。當它為0時,時鐘將開始啟動。AM-PM/12-24小時方式:小時寄存器的位7定義為12或24小時方式選擇位。它為高電平時,選擇12小時方式。在此方式下,位5是AM/PM位,此位是高電平時表示PM,低電平表示AM,在24小時方式下,位5為第二個10小時位(2023h)。2.2.3 液晶顯示器設計(LCD1602)液晶顯示器LCD1602是利用物理特性,通過電壓對器顯示區(qū)域控制,有電就有顯示,這樣既可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅動、易于實現(xiàn)全彩色顯示的特點,目前已經被廣泛應用

27、在便攜式電腦、數(shù)字攝像機、PDA移動通信工具等眾多領域。LCD芯片及引腳如圖2.7所示:圖2.7 LCD芯片VDD:邏輯電源正 GND(VSS): 邏輯電源地 VO(VEE):LCD驅動電源 RESET:復位端,對于68系列MPU:上升沿(L-H)復位,且復位后電平須保持為高電(H); 對于80系列MPU:下降沿(H-L)復位,且復位后電平須保持為低電平(L)。 E1:讀寫使能。對于68系列MPU,連接使能信號引腳,高電平有效; 對于80系列MPU,連接/RD引腳,低電平有效。 E2:同E1引腳。 /RD:讀允許,低電平有效。 /WR:寫允許,低電平有效。 R/W:讀寫選擇,對于68系列MPU

28、,高電平時讀數(shù)據(jù),低電平時寫數(shù)據(jù); 對于80系列MPU,低電平時允許數(shù)據(jù)傳輸,上升沿時鎖定數(shù)據(jù)。 A0:數(shù)據(jù)/指令選擇 高電平:數(shù)據(jù)D0-D7將送入顯示RAM; 低電平:數(shù)據(jù)D0-D7將送入指令執(zhí)行器執(zhí)行。 D0-D7:數(shù)據(jù)輸入輸出引腳。2.2.4 晶振電路單片機XIAL1和XIAL2分別接30pF的電容,中間再接一個12MHZ的晶振,形成單片機的晶振電路如圖2.8所示:圖2.8 晶振電路2.2.5鍵盤電路按鍵電路用來控制LCD12232液晶屏的顯示內容。電路圖如圖2.9所示:圖2.9 控制電路本設計共采用按鍵3個,分別與單片機的P3.0、P3.1、P3.2口相連,分別是模式設置,減少和增加的

29、功能。在模式設置中,可調節(jié)按此按鈕,配合減少、增加功能鍵分別對日期,時間和鬧鐘的進行設置。在設置過程中,顯示器會對應顯示調節(jié)的項目,分別是:“year、month、day、hour、mine、sec、ahour、amin、asec”。其中,“ahour、amin、asec”分別是對鬧鐘的時分秒的設置。2.2.6 鬧鐘電路隨著鬧鈴時間的設定,當實時時間到達鬧鐘的時間時,P3.6會輸出一組方波,如圖3-12,當P3.6輸出一個高電平時,使三極管導通,喇叭會發(fā)出蜂鳴聲,當P3.6輸出為低電平時,三極管不導通喇叭不發(fā)聲。所以,整個鬧鐘輸出為一組滴滴聲。鬧鈴電路如圖2.10所示:圖2.10 鬧鐘電路3系

30、統(tǒng)程序設計3.1時間程序設計因為使用了時鐘芯片DS1302,時間程序只需從DS1302各寄存器中讀出年、周、月、日、小時、分、秒等數(shù)據(jù),再處理即可。在首次對DS1302進行操作之前,必須對它進行初始化,然后從DS1302中讀出數(shù)據(jù),再經過處理后,送給顯示緩沖單元。時間程序流程圖見圖3.1所示。開 始初始化單片機初始化DS13021302開始振蕩從1302中讀出年、周、月、日、小時、分、秒送入LCD顯示圖3.1 時間程序流程圖3.2 時間調節(jié)程序設計調整時間用三個調整按鈕,分別定義為模式選擇,減少,增加按鈕。在調整時間過程中,首先要調節(jié)模式設置按鈕,在顯示屏上會顯示對應的要調試的英文名稱。例如,

31、要調節(jié)月份,先調節(jié)模式設置按鈕,直到屏幕上test行上顯示:month,此時就可以調節(jié)減少和增加按鈕,對其進行調試。時間調整程序流程圖如圖3.2所示??刂奇I有效,進入月調整程序控制鍵有效,進入秒調整程序控制鍵有效,進入分調整程序控制鍵有效,進入年調整程序等待按鍵程序加/減鍵有效年加/減1控制鍵有效,進入日調整程序控制鍵有效,進入時調整程序等待按鍵程序加/減鍵有效月加/減1等待按鍵程序加/減鍵有效日加/減1等待按鍵程序加/減鍵有效秒加/減1等待按鍵程序加/減鍵有效小時加/減1等待按鍵程序加/減鍵有效分加/減1控制鍵有效,跳出時間調整程序,進入主循環(huán)程序圖3.2 時間調整程序時序圖3.3鬧鐘程序設

32、計鬧鐘程序設計是融合在時間調試之中的,在調節(jié)模式設置按鈕的時候,會發(fā)現(xiàn)顯示屏上會出現(xiàn)“ahour、amin、asec”三個字樣,這就是對鬧鐘調試的模式。例如當調節(jié)模式至“ahour”時,只需調節(jié)減少和增加按鈕,就能調節(jié)鬧鐘的小時時間。鬧鐘的調試流程圖為3.3所示??刂奇I有效,進入小時調整程序等待按鍵程序加鍵或減鍵有效有效小時加1或減1控制鍵有效,進入分調整程序控制鍵有效,進入秒調整程序等待按鍵程序加鍵或減鍵有效分加1或減1等待按鍵程序加鍵或減鍵有效秒加1或減1控制鍵有效,跳出時間調整程序,進入主循環(huán)程序圖3.3 鬧鐘調整程序流程圖4系統(tǒng)測試及結果設計完成后,給系統(tǒng)上電,液晶顯示屏顯示結果如圖4

33、.1所示圖4.1液晶顯示屏的顯示結果按控制按鈕,進入設定調整狀態(tài),此時按加或減按鈕,即可改變當前數(shù)字值。當按一次控制按鈕,進入年數(shù)值調節(jié)模式,現(xiàn)在即可按下加或減按鈕來調節(jié)年數(shù)值,調整完成后,可再次按下控制按鈕,調節(jié)內容會改變,調節(jié)順序依次為:年、月、日,時、分、秒,鬧鈴時、分、秒,對應的提示顯示符分別是year、month、day、hour、min、sec、ahour、,amin、asec,如圖4.2所示。當全部參數(shù)調整完畢后,等待鬧鐘的時間到來,等到實時時間等于鬧鐘設定的時間是,系統(tǒng)會發(fā)出滴滴聲,完成鬧鐘效果。 圖4.2 控制調節(jié)流程圖5 結論本設計硬件電路較簡單,所用器件較少,電路中使用了

34、AT89C51單片機、DS1302時鐘芯片、LCD1602液晶顯示器等主要芯片,實現(xiàn)了預計功能。在對芯片的管腳功能和用法有充分的了解后,根據(jù)設計要求設計硬件電路,包括單片機控制電路、時鐘電路、鍵盤掃描電路、顯示電路和鬧鈴電路。然后通過軟件編程,實現(xiàn)了對年、月、日、時、分、秒的自動調整,用按鍵進行控制,用液晶模塊進行顯示,并具有鬧鈴功能。實時日歷電子鐘可以正常顯示時間并進行時間調整,基本完成了預期要實現(xiàn)的目標。6 參考文獻1 孫安青編著. AT89S51單片機實驗及實踐教程M2何立明單片機高級教程應用與設計,北京:北京航天航空大學出版社,2000.4,1491733李廣弟,朱月秀單片機基礎,北京

35、:北京航空航天大學出版社,2001.8,36854樓然苗,李光飛MCS51系列單片機設計實例,北京:北京航天航空大學出版社,2001.3,75835李華單片機原理與接口技術,北京:清華大學出版社,33806王偉高性能、低功耗帶RAM實時時鐘芯片DS1302(上),電子世界:第一期,1995,26357趙海蘭,朱劍,趙祥偉.DS1302實時顯示時間的原理與應用J.電子技術,2002,(1) 68 高性能、低功耗帶RAM實時時鐘芯片DS1302.PS武漢力源電子股份有限公司,1999 3 ZYMCU AT89S51 Datasheets 9黃明強.DS1302在單片機系統(tǒng)中的應用J.保定師范專科學

36、校學報,2004,17(2) 5 10李宏,張家田液晶顯示器件應用技術,北京:機械工業(yè)出版社,2004,1561837后記本論文設計在王維平明老師的悉心指導和嚴格要求下已完成,從課題選擇到具體的寫作過程,無不凝聚著王維平老師的心血和汗水,在我的畢業(yè)論文寫作期間,王維平老師為我提供了種種專業(yè)知識上的指導和一些富于創(chuàng)造性的建議,沒有這樣的幫助和關懷,我不會這么順利的完成畢業(yè)論文。在此向王維平老師表示深深的感謝和崇高的敬意。 在臨近畢業(yè)之際,我還要借此機會向在這三年中給予了我?guī)椭椭笇У乃欣蠋煴硎居芍缘闹x意,感謝他們三年來的辛勤栽培。不積跬步何以至千里,各位任課老師認真負責,在他們的悉心幫助和支持

37、下,我能夠很好的掌握和運用專業(yè)知識,并在設計中得以體現(xiàn),順利完成畢業(yè)論文。 同時,在論文寫作過程中,我還參考了有關的書籍和論文,在這里一并向有關的作者表示謝意。 我還要感謝同組的各位同學,在畢業(yè)設計的這段時間里,你們給了我很多的啟發(fā),提出了很多寶貴的意見,對于你們幫助和支持,在此我表示深深地感謝。 羅群 2014年5月2日附錄1:數(shù)字時鐘設計電路原理圖附錄2:主程序#include<reg51.h> /包含單片機寄存器的頭文件#include<intrins.h> /包含_nop_()函數(shù)定義的頭文件/DS1302相關的變量和引腳定義unsigned char code

38、 digit10="0123456789" /定義字符數(shù)組顯示數(shù)字sbit DATA=P36; /位定義1302芯片的接口,數(shù)據(jù)輸出端定義在P1.1引腳sbit RST=P34; /位定義1302芯片的接口,復位端口定義在P1.1引腳sbit SCLK=P35; /位定義1302芯片的接口,時鐘輸出端口定義在P1.1引腳/液晶引腳定義sbit RS=P20; /寄存器選擇位,將RS位定義為P2.0引腳sbit RW=P21; /讀寫選擇位,將RW位定義為P2.1引腳sbit E=P22; /使能信號位,將E位定義為P2.2引腳sbit BF=P07; /忙碌標志位,將BF位

39、定義為P0.7引腳sbit TIMEADDSET=P30; sbit TIMEDECSET=P31; sbit TIMEMODSET=P32;sbit ALARM=P33; /位定義51單片機的接口,鬧鐘輸出unsigned int TIMEMOD=0;unsigned int i=0;/*日歷結構體:包括年、月、日、小時、分、秒*/ typedef struct SYSTEMTIMEunsigned char Second;unsigned char Minute;unsigned char Hour;unsigned char Day;unsigned char Month;unsigne

40、d char Year; /unsigned char Week;Systemtime;/定義的時間類型 Systemtime Currenttime; unsigned char alarmhour=10,alarmminute=19,alarmsecond=9; /分別儲存苗、分、小時,日,月,年/*函數(shù)功能:延時若干微秒入口參數(shù):n*/ void delaynus(unsigned char n) unsigned char i; for(i=0;i<n;i+);/*函數(shù)功能:向1302寫一個字節(jié)數(shù)據(jù)入口參數(shù):x*/ void Write1302(unsigned char dat

41、) unsigned char i; SCLK=0; /拉低SCLK,為脈沖上升沿寫入數(shù)據(jù)做好準備 delaynus(2); /稍微等待,使硬件做好準備 for(i=0;i<8;i+) /連續(xù)寫8個二進制位數(shù)據(jù) DATA=dat&0x01; /取出dat的第0位數(shù)據(jù)寫入1302 delaynus(2); /稍微等待,使硬件做好準備 SCLK=1; /上升沿寫入數(shù)據(jù) delaynus(2); /稍微等待,使硬件做好準備 SCLK=0; /重新拉低SCLK,形成脈沖 dat>>=1; /將dat的各數(shù)據(jù)位右移1位,準備寫入下一個數(shù)據(jù)位 /*函數(shù)功能:根據(jù)命令字,向1302

42、寫一個字節(jié)數(shù)據(jù)入口參數(shù):Cmd,儲存命令字;dat,儲存待寫的數(shù)據(jù)*/ void WriteSet1302(unsigned char Cmd,unsigned char dat) RST=0; /禁止數(shù)據(jù)傳遞 SCLK=0; /確保寫數(shù)居前SCLK被拉低 RST=1; /啟動數(shù)據(jù)傳輸 delaynus(2); /稍微等待,使硬件做好準備 Write1302(Cmd); /寫入命令字 Write1302(dat); /寫數(shù)據(jù) SCLK=1; /將時鐘電平置于已知狀態(tài) RST=0; /禁止數(shù)據(jù)傳遞 /*函數(shù)功能:從1302讀一個字節(jié)數(shù)據(jù)入口參數(shù):x*/ unsigned char Read130

43、2(void) unsigned char i,dat; delaynus(2); /稍微等待,使硬件做好準備 for(i=0;i<8;i+) /連續(xù)讀8個二進制位數(shù)據(jù) dat>>=1; /將dat的各數(shù)據(jù)位右移1位,因為先讀出的是字節(jié)的最低位 if(DATA=1) /如果讀出的數(shù)據(jù)是1 dat|=0x80; /將1取出,寫在dat的最高位 SCLK=1; /將SCLK置于高電平,為下降沿讀出 delaynus(2); /稍微等待 SCLK=0; /拉低SCLK,形成脈沖下降沿 delaynus(2); /稍微等待 return dat; /將讀出的數(shù)據(jù)返回 /*函數(shù)功能:根

44、據(jù)命令字,從1302讀取一個字節(jié)數(shù)據(jù)入口參數(shù):Cmd*/ unsigned char ReadSet1302(unsigned char Cmd) unsigned char dat; RST=0; /拉低RST SCLK=0; /確保寫數(shù)居前SCLK被拉低 RST=1; /啟動數(shù)據(jù)傳輸 Write1302(Cmd); /寫入命令字 dat=Read1302(); /讀出數(shù)據(jù) SCLK=1; /將時鐘電平置于已知狀態(tài) RST=0; /禁止數(shù)據(jù)傳遞 return dat; /將讀出的數(shù)據(jù)返回/*函數(shù)功能: 1302進行初始化設置*/ void Init_DS1302(void) WriteSet

45、1302(0x8E,0x00); /根據(jù)寫狀態(tài)寄存器命令字,寫入不保護指令 WriteSet1302(0x80,0x00); /根據(jù)寫秒寄存器命令字,寫入秒的初始值 WriteSet1302(0x82,0x18); /根據(jù)寫分寄存器命令字,寫入分的初始值 WriteSet1302(0x84,0x10); /根據(jù)寫小時寄存器命令字,寫入小時的初始值 WriteSet1302(0x86,0x6); /根據(jù)寫日寄存器命令字,寫入日的初始值 WriteSet1302(0x88,0x11); /根據(jù)寫月寄存器命令字,寫入月的初始值 WriteSet1302(0x8c,0x13); /根據(jù)寫小時寄存器命令

46、字,寫入小時的初始值/*函數(shù)功能:延時1ms(3j+2)*i=(3×33+2)×10=1010(微秒),可以認為是1毫秒*/void delay1ms() unsigned char i,j; for(i=0;i<10;i+) for(j=0;j<33;j+) ; /*函數(shù)功能:延時若干毫秒入口參數(shù):n*/ void delaynms(unsigned char n) unsigned char i; for(i=0;i<n;i+) delay1ms(); /*函數(shù)功能:判斷液晶模塊的忙碌狀態(tài)返回值:result。result=1,忙碌;result=0,不忙*/bit BusyTest(void) bit result; RS=0; /根據(jù)規(guī)定,RS為低電平,RW為高電平時,可以讀狀態(tài) RW=1; E=1; /E=1,才允許讀寫 _nop_(); /空操作 _nop_(); _nop_(); _nop_(); /空操作四個機器周期

溫馨提示

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

評論

0/150

提交評論