設(shè)計并制作一種基于STC89C52單片機(jī)的數(shù)碼管顯示電子時鐘,由8位數(shù)碼管顯示時、分、秒;自動計時,具有校準(zhǔn)功能,可設(shè)置當(dāng)前時間,具備定時啟鬧功能,可以設(shè)置啟鬧時間,啟鬧一定時間后自動關(guān)閉鬧鈴,主要內(nèi)容如下: 1.對MCU的內(nèi)部定時器、I/0口、鍵盤和顯示接口等知識能融匯貫通,初步形成獨(dú)立設(shè)計、制作和調(diào)試較簡單的單片機(jī)應(yīng)用系統(tǒng)的能力; 2.熟悉MCU應(yīng)用系統(tǒng)的硬件設(shè)計、模塊化程序設(shè)計及軟件調(diào)試方法,掌握單片機(jī)應(yīng)用系統(tǒng)的開發(fā)過程; 3.設(shè)計并制作出8位數(shù)碼管顯示電子鐘系統(tǒng),具有設(shè)置、校準(zhǔn)、鬧鈴等功能; 4.系統(tǒng)硬件設(shè)計與制作; 5.系統(tǒng)軟件設(shè)計; 6.系統(tǒng)軟、硬件聯(lián)合調(diào)試; 7.系統(tǒng)性能測試。
2 設(shè)計方案及系統(tǒng)原理
2.1 設(shè)計方案圖2.1 8位數(shù)碼管電子鐘電路設(shè)計框圖 此次設(shè)計方案如圖2.1所示的設(shè)計框圖,以單片機(jī)為核心,由晶振電路模塊、復(fù)位電路模塊、按鍵電路模塊、蜂鳴器電路模塊(起整點(diǎn)報時的功能)、以及顯示模塊組成。在這次設(shè)計中采用LED數(shù)碼管顯示時、分、秒,以24小時計時方式,根據(jù)數(shù)碼管動態(tài)顯示原理來進(jìn)行顯示,用12MHz的晶振產(chǎn)生振蕩脈沖,定時器計數(shù)。 2.2 系統(tǒng)原理 圖2.2 8位數(shù)碼管電子鐘原理圖 電子鐘是一個將“ 時”,“分”,“秒”顯示于人的視覺器官的計時裝置。它的計時周期為24小時,顯示滿刻度為23時59分59秒,具有校時功能和定時功能。如圖2.2所示,一個基本的電子鐘電路主要由顯示電路、復(fù)位電路、時鐘電路以及蜂鳴器報警電路等部分組成。
2.2.2 復(fù)位電路圖2.4 復(fù)位電路圖 復(fù)位電路的作用是使單片機(jī)的狀態(tài)處于初始化狀態(tài),讓單片機(jī)的程序從頭開始執(zhí)行。如圖2.4復(fù)位電路圖所示,C3和R1構(gòu)成單片機(jī)的上電自動復(fù)位電路。STC89C52單片機(jī)屬于高電平復(fù)位,RST管腳上需要持續(xù)兩個機(jī)器周期(24個時鐘周期)以上的高電平,單片機(jī)才能復(fù)位。復(fù)位原理:上電的瞬間,電源給C3充電,在R1產(chǎn)生壓降,R1上端為高電平,RST管腳檢測到高電平,單片機(jī)的各個寄存器清零或恢復(fù)初始狀態(tài),特別是PC計數(shù)器清零,程序便從頭開始執(zhí)行。如果C3、R1取值過大或過小都會引起單片機(jī)復(fù)位時間過長或過短,不利于單片機(jī)啟動。如果需要加手動復(fù)位,那就在C3兩端并聯(lián)一個按鈕即可。 2.2.3 時鐘電路圖2.5 時鐘電路圖 時鐘電路作用是來配合晶振實現(xiàn)振蕩的電路,這樣可以為單片機(jī)提供運(yùn)行時鐘。如圖2.5時鐘電路圖所示,C1、C2和X1構(gòu)成單片機(jī)的時鐘源電路。C1和C2是晶振X1的負(fù)載電容,過大或過小都會影響晶振的頻率和幅度。STC89C52單片機(jī)對晶振負(fù)載電容的取值有明確的要求:在20pf到40pf之間,最佳值為30pf。X1的取值可從1MHz到24MHZ選擇,常用的是12MHz。因為51單片機(jī)12個時鐘周期為一個機(jī)器周期,用12MHz晶振,一個機(jī)器周期剛好是1us,編程時計時很方便。 2.2.4 顯示電路圖2.6 顯示電路圖 顯示電路的作用是對控制電路的信號進(jìn)行放大。本次設(shè)計采用動態(tài)顯示法實現(xiàn)LED顯示,通過對每位數(shù)碼管的依次掃描,使對應(yīng)數(shù)碼管亮,能夠點(diǎn)亮數(shù)碼管后,就可以通過單片機(jī)控制數(shù)碼管顯示數(shù)字或字母。如圖2.6顯示電路圖所示,為了控制方便,我們將數(shù)碼管的a~dp引腳依次連接單片機(jī)的P0.0-P0.7引腳。因為是共陰極數(shù)碼管,所以位選應(yīng)接低電平,段選接高電平時,數(shù)碼管正常顯示。 2.2.5 按鍵控制電路圖2.7 按鍵控制電路圖 按鍵模塊的作用是調(diào)節(jié)時間及設(shè)置鬧鐘時間。實際的電子鐘電路由于秒信號的精確性和不可能做到完全準(zhǔn)確無誤,加之電路中其它原因,電子鐘總會產(chǎn)生走時誤差的現(xiàn)象,因此,電路中就應(yīng)該有校準(zhǔn)時間的功能的電路。如圖2.7按鍵控制電路圖所示,此次設(shè)計中,K1控制復(fù)位功能;K2為暫停;K3為啟動;K4為調(diào)整,可切換時、分、秒的調(diào)整,從而進(jìn)行鬧鐘的設(shè)置;K5、K6分別為加一、減一。 2.2.6 蜂鳴器報警電路圖2.8 蜂鳴器報警電路圖 圖2.8為蜂鳴器報警電路圖。它的作用是實現(xiàn)整點(diǎn)。蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電。由于蜂鳴器的工作電流一般比較大,以致于單片機(jī)的I/O口是無法直接驅(qū)動的,所以要利用放大電路來驅(qū)動,這里使用三極管Q1來放大電流。當(dāng)單片機(jī)檢測到整點(diǎn)的時候,例如00-01-00時,單片機(jī)系統(tǒng)應(yīng)能發(fā)出信號使蜂鳴器發(fā)出“嘀、嘀、嘀”的聲音。 2.2.7 軟件程序設(shè)計本設(shè)計中主程序主要實現(xiàn)顯示的初始化和調(diào)用各子程序工作的功能,讀取時間的子程序主要實現(xiàn)初始化,時間信息的采集和顯示段碼的碼的存取。設(shè)計中計時主要以定時器T0中斷完成,定點(diǎn)鬧鈴使用蜂鳴器來完成。當(dāng)端口有開關(guān)按下時,轉(zhuǎn)入相應(yīng)的功能程序,其主程序執(zhí)行流程圖如圖2.9所示: 圖2.9 主程序執(zhí)行流程圖 在時鐘狀態(tài)下,觸發(fā)外中斷1時,進(jìn)入鬧鐘時間設(shè)定模式,且不影響T0計時器的功能狀態(tài),在鍵盤上輸入對應(yīng)的數(shù)字進(jìn)行時間設(shè)定。鬧鐘時間設(shè)定流程圖如圖2.10所示: 圖2.10 鬧鐘時間設(shè)定流程圖
3 設(shè)計步驟和結(jié)果3.1 設(shè)計步驟(1)先在Proteus上繪制硬件電路; (2)使用Keil uVisio4進(jìn)行程序軟件編譯,生成.Hex文件; (3)在以上兩步完成后,雙擊Proteus中的單片機(jī),把用Keil uVisio4編譯生成的.Hex文件指定為下載文件,點(diǎn)擊PLAY鍵即可進(jìn)行仿真; (4)當(dāng)電路出現(xiàn)錯誤時,列表中說明了具體的錯誤,必須要先排錯才可以繼續(xù)進(jìn)行; (5)仿真過程中,LED數(shù)碼管要能正常顯示時間;在LED數(shù)碼管顯示時間達(dá)到設(shè)定的鬧鐘時間時,蜂鳴器要響才算成功; (6)根據(jù)Proteus繪制的硬件電路圖,首先在萬能板上進(jìn)行布局,方便接線; (7)布局好后按照器件焊接原則進(jìn)行焊接,要求安裝正確。元器件無缺焊、錯焊,連結(jié)無誤,印制板焊點(diǎn)無虛焊、橋接等; (8)注意三極管接線時需要仔細(xì)對照原理圖,不要接反接錯; (9)焊接過程中,電烙鐵在焊接處停留的時間不宜過長,以免燙壞元件;烙鐵離開焊接處后,被焊接的零件不能立即移動,否則因焊錫尚未凝固而使零件容易脫焊; (10)接通電源后,若電子鐘正常工作,即可;若不能正常工作,則對接線進(jìn)行檢查,看是否有虛接、錯接等情況,直至其功能得到實現(xiàn)。 3.2 實驗結(jié)果3.2.1 原理圖仿真結(jié)果設(shè)置鬧鐘為:“00-01-00”,響鈴一分鐘。如圖3.1所示: 圖3.1 原理圖仿真結(jié)果 3.2.2 實物焊接結(jié)果接通電源后,LED數(shù)碼管顯示從“00-00-00”開始運(yùn)行,此時按下調(diào)整鍵,將時間調(diào)至“00-01-00”。當(dāng)其再次運(yùn)行時,LED數(shù)碼管顯示時間已到達(dá)設(shè)定的鬧鐘時間,此時蜂鳴器響。實物焊接結(jié)果圖如圖3.2所示: 圖3.2 實物焊接結(jié)果圖
設(shè)計總結(jié)此次設(shè)計整體論述了設(shè)計電子鐘的大致思路,然后再采用劃分模塊的方法將系統(tǒng)分為復(fù)位模塊、時鐘模塊、顯示模塊、按鍵模塊等部分。最后將各模塊集成為一個整體,合成一個多功能的電子鐘。在程序編寫的過程中,通過查閱不少的書籍以及參考一下網(wǎng)上一些可用的程序,我更加加深了對單片機(jī)的工作原理以及使用方法。同時,通過對實際的單片機(jī)最小系統(tǒng)的搭建與焊接,我更加掌握了單片機(jī)最小系統(tǒng)的硬件要求和焊接技術(shù)。
在這次設(shè)計中我深深地體會到了理論跟實踐的不同,理論學(xué)的再好不會動手那也只能是紙上談兵。了解了集成電路芯片的型號命名規(guī)律,懂得了沒有某種芯片時的替代方法,以及在網(wǎng)上查找電子電路資料的方法,掌握了各芯片的邏輯功能及使用方法,進(jìn)一步熟悉了集成電路的引腳安排,掌握了數(shù)字鐘的設(shè)計方法,明白了數(shù)字鐘的組成原理以及工作原理。掌握了計數(shù)器的工作原理,以及計數(shù)器進(jìn)制的組成方法和級聯(lián)方法,實現(xiàn)了一次理論指導(dǎo)實踐、理論向?qū)嵺`過渡的跨越,雖然期間遇到一些困難,但這些困難卻增強(qiáng)了我分析問題、解決問題的能力,使我以后不僅只學(xué)習(xí)書本中的理論知識,而且知道學(xué)以致用,動過動手實踐是我對書本中的理論知識掌握地跟牢固、理解地跟深刻,這對我今后的工作及學(xué)習(xí)有積極的影響。 這次設(shè)計不僅再次復(fù)習(xí)了數(shù)字電子和模擬電子,而且讓我對于芯片的使用更加了解。增加了我的動手操作能力,加深了對軟件使用的了解。這就是這次設(shè)計的成果,相信這些實際的操作經(jīng)驗會是我以后的寶貴財富。
以上圖文的Word格式文檔下載(內(nèi)容和本網(wǎng)頁上的一模一樣,方便大家保存): |