多功能智能時鐘系統(tǒng)設(shè)計參考模板_第1頁
多功能智能時鐘系統(tǒng)設(shè)計參考模板_第2頁
多功能智能時鐘系統(tǒng)設(shè)計參考模板_第3頁
多功能智能時鐘系統(tǒng)設(shè)計參考模板_第4頁
多功能智能時鐘系統(tǒng)設(shè)計參考模板_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 多功能智能時鐘系統(tǒng)設(shè)計作者姓名:XXX專業(yè)名稱:XXXX指導(dǎo)教師:XX講師 / 56摘要隨著對時間的要求越來越精確,人們創(chuàng)造了時鐘?,F(xiàn)在,電子時鐘更是人類最基本,最必不可少的一個工具。在上個世紀(jì),電子時鐘大多數(shù)采用的是分離元件。而這樣制造出來的電子時鐘體積龐大,使用起來也很麻煩。隨著科技和電子行業(yè)的飛速發(fā)展,現(xiàn)在的電路都是高度集成的。不僅節(jié)約空間資源,成本也很低。然電子產(chǎn)品給我們的生活帶來了更多的便利。本設(shè)計的主控系統(tǒng)采用的是單片機(jī),利用它自帶的定時器來進(jìn)行設(shè)計。單片機(jī)具有成本低廉、體積小、操作簡便等優(yōu)點(diǎn)。它能夠形成各式各樣的自動控制系統(tǒng)。設(shè)計中將采用單片機(jī)中最為典型也是我們在課堂上學(xué)習(xí)過的

2、51系列的單片機(jī),本次設(shè)計以STC89C51單片機(jī)為核心,以時鐘芯片DS1302為依托,借助外圍少量的按鍵電路實時校準(zhǔn),通過LCD1602液晶顯示器來顯示日期和時間。在程序的部分,我采用的是C語言來進(jìn)行編寫。使用C語言更有利于我的理解,編寫以及修改。本論文主要從系統(tǒng)設(shè)計方案的選擇,硬件、軟件部分的介紹說明以及實物的演示上來詳細(xì)的描述了整個設(shè)計的大致內(nèi)容。設(shè)計主要研究的是智能時鐘以及日歷顯示功能。我們利用了單片機(jī)的控制能力和時鐘芯片的及時通信的特點(diǎn),按鍵來控制時間和日歷在液晶顯示屏上的顯示。最后,在整點(diǎn)的時候通過蜂鳴器進(jìn)行報時。關(guān)鍵詞:單片機(jī) 電子時鐘 C語言AbstractWith the d

3、emand for more precise, people create a clock. Now, the electronic clock is human the most basic, most essential as a tool. In the last century, most electronic clock use is separation of components. And this produced electronic clock bulky, use is also very troublesome. Along with the rapid develop

4、ment of science and technology and electronic industry, now circuit are height integrated. Not only save space resource, cost is also very low. Although electronic products to our life brought more convenience. Procedures will be used in the design of the main control system is a single chip, using

5、its own timer design. SCM has low cost, the volume is small, easy to operate, etc. It can form a variety of automatic control system. The design uses a microcontroller is the most typical and I were in the classroom study of 51 series microcontroller, the design STC89C51 microcontroller as the core

6、to the clock chip DS1302 as the basis, by means of a peripheral small amounts of key circuit real-time calibration through LCD1602 LCD display to display the date and time. In part, I use C language to write. The use of C language is more conducive to my understanding, writing and revision. This pap

7、er mainly from the selection of the design scheme of the system, hardware, software part of the description and physical demonstration up detailed describes the general content of the whole design. Design is the main research is intelligent clock and calendar display function. We use the MCU control

8、 can timely communication of power and clock chip keys to control the time and calendar on the LCD screen display. Finally, when the whole point of the buzzer timekeeping.Keywords: single chip microcomputer, electronic clock, C language目錄摘要IAbstractII目錄III前言11 論文設(shè)計概述21.1 設(shè)計任務(wù)21.2 設(shè)計要求21.3 系統(tǒng)整體框圖22 系

9、統(tǒng)方案選擇42.1 總體方案設(shè)計42.2 主要模塊的方案設(shè)計42.2.1 主控芯片方案42.2.2 顯示模塊方案53 系統(tǒng)模塊電路介紹及設(shè)計63.1 單片機(jī)模塊63.1.1 單片機(jī)基礎(chǔ)知識介紹63.1.2 STC89C51介紹73.1.3 單片機(jī)最小系統(tǒng)電路93.2 時鐘模塊113.2.1 DS1302介紹113.2.2 DS1302電路原理133.3 液晶顯示模塊133.3.1 LCD1602引腳及說明133.3.2 LCD1602電路原理153.4 蜂鳴器報警模塊153.5 矩形按鍵電路模塊164 系統(tǒng)軟件設(shè)計184.1 軟件設(shè)計流程184.2 系統(tǒng)設(shè)計程序214.2.1 主程序224.2

10、.2 LCD1602驅(qū)動程序224.2.3 DS1302驅(qū)動程序225 系統(tǒng)仿真結(jié)果及說明235.1 仿真軟件介紹235.1.1 Protues軟件介紹235.1.2 Keil軟件介紹245.2 時鐘系統(tǒng)的仿真256 系統(tǒng)實物調(diào)試及結(jié)果276.1 系統(tǒng)實物276.1 系統(tǒng)實物調(diào)試結(jié)果及說明27總結(jié)30參考文獻(xiàn)31致謝32附件1 主程序33附件2 LCD1602驅(qū)動程序36附件3 DS1302驅(qū)動程序39前言現(xiàn)在,電子產(chǎn)業(yè)隨著科學(xué)技術(shù)的發(fā)展而變得日益強(qiáng)大。單片機(jī)的集成度也越來越高,體積也越來越小。技術(shù)的進(jìn)步促使人們對智能鬧鐘的研究和應(yīng)用的重視度極度提高,這樣人們對時鐘設(shè)備的要求也越來越高,又加上

11、微處理器ARM、FPGA、DSP的廣泛應(yīng)用,電子技術(shù)更是得到了極大地提高。單片機(jī)的使用是十分靈活的,可以用于很多方面,論文中用到STC89C51的優(yōu)勢是:功耗十分的低、成本便宜、硬件設(shè)計簡單,工業(yè)控制、傳感器技術(shù),數(shù)據(jù)采集、智能控制、儀器儀表等領(lǐng)域中。集成電路是電子工業(yè)時代的重要發(fā)明,其中以單片機(jī)的出現(xiàn)最為明顯,它的出現(xiàn)使自動控制和智能控制各方飛速的發(fā)展。單片機(jī)智能時鐘的優(yōu)點(diǎn)是體積小、價格低、可靠性高、功能全。我們廣泛的用它在各種智能控制儀器定時與時間測量中,使這些儀器到達(dá)高度的自動化,鍵盤取代了傳統(tǒng)的智能儀器中那些開關(guān)和旋鈕,測試人員通過選擇相應(yīng)的按鍵來測試,這樣就會省掉很多麻煩的人工調(diào)試過

12、程。智能儀器能夠完成自我自動校準(zhǔn),自動選擇合適的測量范圍,大部分能自動調(diào)整測試點(diǎn),這樣就給我們帶來了極大方便,同時精度也相應(yīng)的提高了幾百倍。另外,在電子科技領(lǐng)域,時間作為重要的參數(shù)之一,許多電參數(shù)的測量方案、結(jié)果都與他的測量有著不可分割的密切關(guān)系,所以他被廣泛的應(yīng)用在科研、工業(yè)控制、教學(xué)、測量儀器中。1 論文設(shè)計概述1.1 設(shè)計任務(wù)利用Proteus格式的單片機(jī)硬件編程平臺上的時鐘芯片DS1302和液晶顯示器LCD1602實現(xiàn)一個“多功能智能時鐘系統(tǒng)”。1.2 設(shè)計要求1. 設(shè)置“啟動”、“停止”、時鐘顯示功能設(shè)置”、“日歷顯示功能設(shè)置”等按鍵,要求上電初始蜂鳴器鳴叫、繼電器、電動機(jī)、數(shù)碼管都

13、不工作,按下啟動鍵后開始進(jìn)入“起始狀態(tài)”,此時LED燈按500ms間隔全亮全滅,硬件其余部件均不工作,只有在按下啟動鍵后,再按下“時鐘顯示功能設(shè)置”和“日歷顯示功能設(shè)置”才進(jìn)入“時鐘顯示”和“日歷顯示”狀態(tài),此時在LCD1602屏幕上顯示相應(yīng)的時鐘和日期。2. 要求顯示數(shù)字的格式為:比如2012年5月2日的顯示格式為02-05-12;12點(diǎn)25分30秒的顯示格式為12-25-30。3. 擴(kuò)展該智能時鐘系統(tǒng)的功能,實現(xiàn)每到59分57秒開始進(jìn)行整點(diǎn)報時,蜂鳴器鳴響3秒鐘。1.3 系統(tǒng)整體框圖整個系統(tǒng)主要由六部分組成:主控模塊,時鐘模塊,矩陣按鍵模塊,LED模塊,蜂鳴器報警模塊,液晶顯示模塊。系統(tǒng)整

14、體框圖如圖1.1所示。LED電路STC89C51時鐘芯片DS1302液晶LCD1602矩陣電路蜂鳴器電路圖1.1 系統(tǒng)整體框圖2 系統(tǒng)方案選擇2.1 總體方案設(shè)計拿到此次設(shè)計題目之后,我通過翻看以前的教材,借閱書籍收集了大量的資料,并在反復(fù)的論證以及老師的建議下,確定了最終的系統(tǒng)設(shè)計方案。我采用的是STC系列的89C51做主控芯片,時鐘芯片采用的是DS1302,通過矩陣鍵盤來對系統(tǒng)進(jìn)行操作,最后再以LCD1602來做為液晶顯示輸出結(jié)果。2.2 主要模塊的方案設(shè)計介紹主控芯片模塊以及顯示模塊的方案設(shè)計。2.2.1 主控芯片方案方案一:如果選用我們熟悉的STC89C51單片機(jī)當(dāng)作主控芯片。這款芯片

15、的價錢低,使用起來較為方便。它的功能能夠滿足本次設(shè)計的需求。這款芯片適合此次設(shè)計。方案二:如果選用市面上的MSP430F149系列單片機(jī)當(dāng)作我們的主控芯片。這類單片機(jī)的運(yùn)算速度很快,是一款內(nèi)置12位ADC的高性能且能耗低的16位單片機(jī)。但是因為它的成本高,并且它是用TPFQ來進(jìn)行封裝的,所以得利用PCB版圖來制版,不適合我們手工焊接。這些種種原因極大的提高了我們此次設(shè)計的難度和成本。通常,這類單片機(jī)適用于手持等設(shè)備,不適合我們開發(fā)項目。方案三:如果選用ARM公司的STM32系列當(dāng)作主控的芯片。此系統(tǒng)中沒有必用到這么高級的主控。因為我們這次畢業(yè)設(shè)計所要用到的系統(tǒng)主控芯片必須要滿足我們設(shè)計要求的運(yùn)

16、算能力,還要有成本低廉,功耗低,體積小,使用起來方便等特點(diǎn)。所以我們不管是從價格還是我們芯片的各項性能指標(biāo)上,討論得出第一種方案是最適合我們此次的設(shè)計方案。2.2.2 顯示模塊方案方案一:選用LCD1602字符液晶作為顯示模塊,它不僅成本相對低廉之外,它還有利于用戶控制。因為它可以在液晶上面顯示數(shù)字與字符的信息。同時,它在后期驅(qū)動程序的編寫上也較為容易,滿足本次設(shè)計要求。 方案二:選用LCD128x64液晶作為顯示的模塊。它可以實現(xiàn)字符的顯示,也可以顯示出圖片,但是圖片色彩只能是黑白,且精度不高,而且成本也很高。此次設(shè)計中不用對圖片進(jìn)行顯示,所以對整個顯示的設(shè)計效果不適合。方案三:選擇主控為T

17、FT的帶字庫的320x240的彩色液晶作為顯示模塊 ,可以顯示出我們經(jīng)常使用的的漢字、ASCII碼、并且他的液晶屏的分辨率高、同時也可以描繪出彩色的圖片。但在此系統(tǒng)中我們只需要簡單的字符顯示,且考慮到價格的因素,所以不考慮用此芯片作為顯示。方案四:采用數(shù)碼管顯示。數(shù)碼管的設(shè)計復(fù)雜且后期驅(qū)動程序難寫,還有連接時需要很多的I/O口。不適合開發(fā)此項目。綜合以上方案,我們選擇了方案一作為顯示器。3 系統(tǒng)模塊電路介紹及設(shè)計本設(shè)計的系統(tǒng)模塊電路大致分為以下幾部分,下面為大家分別來介紹這幾個模塊電路的主要信息。3.1 單片機(jī)模塊單片機(jī)是一個微型的計算機(jī)系統(tǒng)。它是一種高度集成的芯片。它將CPU,RAM,ROM

18、,定時器、中斷系統(tǒng)、計數(shù)器等功能集成起來。由于單片機(jī)的高度集成,體積小,實用性強(qiáng),運(yùn)算效率高,價格便宜以及使用起來較為方便。所以本次設(shè)計中,系統(tǒng)采用STC89C51單片機(jī)作為主控芯片。3.1.1 單片機(jī)基礎(chǔ)知識介紹1. 單片機(jī)的定義單片機(jī)是一個高度集成了CPU,RAM,ROM,內(nèi)部和外部總線的微型且完整的計算機(jī)系統(tǒng)。單片機(jī)是通過導(dǎo)入程序來實現(xiàn)指定的功能。所以單片機(jī)也是十分的智能化。雖然單片機(jī)只是一塊小小的芯片,但是它卻擁有價格便宜,運(yùn)算效率高,實用性強(qiáng),性能好,集成度高,體積小,使用方便,質(zhì)量輕等優(yōu)點(diǎn)。所以,在學(xué)習(xí)和生產(chǎn)中,單片機(jī)受到了大量的使用者的青睞。單片機(jī)在工業(yè)發(fā)展中被使用的相當(dāng)廣泛。單

19、片機(jī)從早期的8位或4位發(fā)展到16位。隨著科技的飛速發(fā)展,在90年代,16位的單片機(jī)迅速的取代了16位的單片機(jī),并且延用至今。到現(xiàn)在為止,32位單片機(jī)晶振的頻率已經(jīng)超過了300兆赫茲,價格也越來越便宜,得到了廣泛的應(yīng)用。單片機(jī)也因為難度不大,易于理解,使用簡單等原因作為我們電子專業(yè)的一個非常重要的學(xué)習(xí)和實踐的內(nèi)容。在本次的設(shè)計中,采用STC89C51單片機(jī)做出的一個多功能智能時鐘系統(tǒng),使用C語言編程,將程序?qū)氲较到y(tǒng)內(nèi),再反復(fù)進(jìn)行調(diào)試。最終實現(xiàn)所要求的功能。2. 單片機(jī)的運(yùn)用單片機(jī)不僅應(yīng)用于我們的教學(xué)當(dāng)中,在我們生活生產(chǎn)的各種電子產(chǎn)品中,都能看到單片機(jī)的影子。應(yīng)用領(lǐng)域大致有以下幾點(diǎn):一、由于單片

20、機(jī)的功耗小,體積小,效率高,使用起來也十分的方便,所以在各類的儀器儀表和精密的測量設(shè)備中,比如說示波器等,都有單片機(jī)的存在。二、同時,單片機(jī)的用途在醫(yī)療領(lǐng)域中的使用情況也是十分的常見。比如說是血糖儀,超聲儀,血液細(xì)胞分析儀,血壓計等等。三、單片機(jī)在我們家電里面的應(yīng)用更可謂是無所不在。大到電視機(jī),空調(diào),冰箱,洗衣機(jī),小到照相機(jī),手機(jī),電子秤,計算器都集成有單片機(jī)。隨著我們的家電越來越智能化。而單片機(jī)因為集成度高,可靠性高,功能好,體積小,功耗低等優(yōu)點(diǎn),更加受到各個生產(chǎn)廠家的青睞。四、各個商場的智能報警系統(tǒng),電梯的智能控制以及便民的自助繳費(fèi)系統(tǒng)等等都是利用單片機(jī)可以形成多鐘多樣的控制系統(tǒng)的特點(diǎn)。所

21、以,在工業(yè)領(lǐng)域中,它能夠得到廣泛的應(yīng)用和使用者的認(rèn)可。五、單片機(jī)為計算機(jī)通信,提供了一個良好的物質(zhì)條件。比如說在地鐵站里,工作人員使用的無線對講機(jī),各個學(xué)校寢室里面使用的交換機(jī)還有單元樓下面的呼叫系統(tǒng)等等。可見,單片機(jī)對于我們生活生產(chǎn)來說是多么的重要。為我們提供了很大的便利。當(dāng)然在這次設(shè)計的多功能智能時鐘系統(tǒng)中,單片機(jī)也起到了至關(guān)重要的作用,隨著科技的發(fā)展,單片機(jī)的性能也越來越好。不管是在設(shè)計還是操作中,都為我?guī)砹撕芏嗟谋憷?.1.2 STC89C51介紹1. STC89C51的主要特性單片機(jī)的主要特性如表3.1所示。表3.1 STC89C51主要特性表2. STC89C51芯片介紹許多硬

22、件設(shè)計中都有單片機(jī)的存在,因為它編程簡單靈活的特點(diǎn),得到大量用戶的認(rèn)可。STC89C51引腳圖如圖3.1所示。圖3.1 STC89C51引腳圖下面介紹一下其中一些引腳功能:Vcc和Vss: Vcc接5V電壓,Vss:P20接地。3.1.3 單片機(jī)最小系統(tǒng)電路單片機(jī)的最小系統(tǒng)電路主要是由晶振電路和復(fù)位電路構(gòu)成。接下來,分別來介紹這兩部分電路。1. 晶體振蕩電路如果想要單片機(jī)能夠正常工作的話,我們就得保證晶振能夠起振并且使用恰當(dāng)?shù)木д耠娙?。在本次設(shè)計中,我采用的是11.0592MHz的晶振,和兩個大小為33pF的電容。其中,一個的作用是通過XTAL1接口提供諧振頻率。另一個則是為了能在XTAL2口

23、輸出波形為正弦波的高頻信號。晶振電路如圖3.2所示。圖3.2 STC89C51晶振電路圖2. 復(fù)位電路除了要保證晶振電路的正確以外,我們還應(yīng)該關(guān)注復(fù)位電路的設(shè)計是否得當(dāng)。復(fù)位操作就相當(dāng)于是初始化。在許多的意外情況導(dǎo)致系統(tǒng)出錯時,復(fù)位操作通常都能夠幫我們解決問題。外部復(fù)位電路的復(fù)位方式分為兩種,一種是手動復(fù)位,另一種是上電復(fù)位。在本次的設(shè)計中,我采用的是手動復(fù)位的方式。手動復(fù)位電路的設(shè)計原理和思路比較簡單易懂,我們只需要通過按下在VCC和復(fù)位端之間的按鍵來將VCC的正5伏的高電平傳入到復(fù)位端。只要兩邊電路保持連通的時間超過10ms,那么單片機(jī)就會進(jìn)入到復(fù)位狀態(tài)。復(fù)位電路如圖3.3所示。圖3.3

24、STC89C51復(fù)位電路復(fù)位后,PC=0000H。所以,程序一般會從0000H開始執(zhí)行。單片機(jī)復(fù)位時各寄存器的狀態(tài)如表3.2所示。表3.2 單片機(jī)復(fù)位時的狀態(tài)表3.2 時鐘模塊本次設(shè)計中采用的是由美國DALLAS推出的DS1302時鐘芯片。3.2.1 DS1302介紹DS1302是由美國一家公司推出的一款能夠?qū)r間進(jìn)行設(shè)計的軟件,它存儲著時間、年月日、閏年讀取等功能。和我們?nèi)粘I钪兴褂玫碾娮颖聿畈欢?。在設(shè)計中采用此芯片的主要原因是它的能耗低,且滿足實時性。工作電壓寬為2.5V5.5V。與主控進(jìn)行通信時采用三線同步式,數(shù)據(jù)傳送方式獨(dú)特,能夠同時傳送多個數(shù)據(jù)字節(jié)。內(nèi)部存在很多的RAM寄存器,在

25、通信時只需要讀取寄存器就可以知道時間等數(shù)據(jù)信息。因其具有價格便宜,使用簡單的特點(diǎn),所以DS1302是現(xiàn)在在教學(xué)中的使用較為流行。在本次設(shè)計中,我們使用STC89C51往DS1302里面寫入時間來進(jìn)行時間設(shè)置,也從DS1302里面讀取出時間,所讀取出的時間通過LCD1602顯示出來。實現(xiàn)了時鐘系統(tǒng)的一個基本功能,我們所使用到的DS1302的功能包括了對年、月、日以及時、分、秒的計時。接下來,我們對DS1302的各個引腳進(jìn)行具體的說明。引腳如圖3.4所示。圖3.4 DS1302引腳DS1302的各個引腳的具體功能如表3.3所示。表3.3 DS1302各個引腳的功能3.2.2 DS1302電路原理時

26、鐘模塊的電路如圖3.5所示。圖3.5 DS1302電路原理圖3.3 液晶顯示模塊設(shè)計中通過液晶顯示屏將時鐘的年月日及時間顯示出來。3.3.1 LCD1602引腳及說明LCD1602的使用方法較為簡單方便。我們在畫PCB的時候,只需要留一排插針就好了,在焊接實物的時候,只需要將液晶顯示器插上去就行了。這一部分,需要我們做的最重要的事就是將驅(qū)動程序編寫好,能夠在顯示屏上顯示我們想要的內(nèi)容。由于LCD1602液晶顯示器的開發(fā)應(yīng)用簡單,所以在本次設(shè)計中選擇它來作為顯示屏是最為合適不過了的。而我們具體采用的是字符型的兩行16字的液晶顯示器。LCD1602液晶顯示器采用了標(biāo)準(zhǔn)的16腳接口。其中引腳如圖3.

27、6所示。引腳功能如表3.4所示: 圖3.6 LCD1602引腳表3.4 LCD引腳功能 3.3.2 LCD1602電路原理LCD 1602與微處理器的連接電路如圖3.7所示。圖3.7 LCD1602與微處理器的連接電路其中,在這部分電路設(shè)計的時候,我設(shè)計了一個滑動變阻器和一個電阻。滑動變阻器的作用是調(diào)整LCD1602背光的亮度。電阻則是起到保護(hù)整個電路的作用,防止電流過大,造成元器件的損壞。3.4 蜂鳴器報警模塊多功能智能時鐘系統(tǒng)設(shè)計中,添加了整點(diǎn)報時的功能,采用蜂鳴器作聲音報警。報警電路如圖3.8所示:圖3.8 蜂鳴器報警電路3.5 矩形按鍵電路模塊人機(jī)界面是智能化設(shè)計中必不可少的部分,本設(shè)

28、計有兩部分的人機(jī)界面。LCD1602液晶顯示界面,另一部分則是鍵盤輸入采集。本設(shè)計中采用矩陣鍵盤按鍵對時間值和日期值進(jìn)行設(shè)置。在設(shè)計中我們采用單片機(jī)來對矩陣按鍵進(jìn)行掃描,然后得到相應(yīng)的值,來加減時間值和日期值。液晶上同時可以看到時間值和日期值的改變。設(shè)計中采用一個矩陣鍵盤,相對來說是十分的簡單的,且價格十分的便宜,主控芯片的處理壓力不大,滿足設(shè)計的同時又能合理的利用資源。設(shè)計電路圖如圖3.9所示。圖3.9 按鍵電路4 系統(tǒng)軟件設(shè)計4.1 軟件設(shè)計流程本次設(shè)計的內(nèi)容是一個多功能的智能系統(tǒng)。這是一個基于單片機(jī)的設(shè)計。在編寫程序的時候,我們采用的是總分結(jié)構(gòu)。先將主程序編寫出來。再根據(jù)不同的功能模塊進(jìn)

29、行程序的編寫。這樣的方式有利于我們后期調(diào)試的時候,能夠更加快速準(zhǔn)確的定位到問題的所在。編寫程序之前,應(yīng)該先畫出流程圖。理清楚每個功能是怎樣通過程序一步一步來實現(xiàn)的。所以流程圖對于編程來說是至關(guān)重要的。有了流程圖,我們的程序該怎么去寫都已經(jīng)一目了然了,大大的提高了我們編程的效率。下面一一來介紹時鐘系統(tǒng)中主要模塊的程序流程圖。圖4.1 主程序流程圖圖4.2 DS1302實時控制芯片流程圖圖4.3 LCD1602液晶顯示控制流程圖4.2 系統(tǒng)設(shè)計程序本次的時鐘系統(tǒng)設(shè)計中,編程語言我采用的是C語言。由于之前在課堂上我們專門學(xué)習(xí)過C語言,對C語言也有一定的了解。再加上C語言相比匯編語言可讀性更高,更加利

30、于我們理解。所以,我最終選擇C語言作為此次程序的編程語言。在程序設(shè)計的時候,因為之前已經(jīng)將主程序和各個模塊的流程圖畫出來了。所以我們在編寫程序的時候為我們帶來了很大的便利。有了流程圖,加上老師給我的程序模塊,再根據(jù)需要實現(xiàn)的功能,自己再對程序進(jìn)行編寫。通過Keil軟件將我編寫的代碼編譯為機(jī)器能夠識別的機(jī)器碼,再利用Protues軟件將程序?qū)氲椒抡骐娐穲D,根據(jù)得到的結(jié)果來對電路和程序進(jìn)行修改調(diào)整,經(jīng)過反反復(fù)復(fù)的修改,最終實現(xiàn)其功能。我們在進(jìn)行設(shè)計的時候也有一定的技巧,比如說,我們先將單片機(jī)配置好,再把編寫好的LCD驅(qū)動程序?qū)нM(jìn)去,看功能是否能夠?qū)崿F(xiàn)。然后再將時鐘模塊以及其他模塊的程序分別導(dǎo)入進(jìn)

31、去,一一來檢驗,程序是否能夠準(zhǔn)確的運(yùn)行。4.2.1 主程序具體程序參見附錄1。4.2.2 LCD1602驅(qū)動程序具體程序參見附錄2。4.2.3 DS1302驅(qū)動程序具體程序參見附錄3。 5 系統(tǒng)仿真結(jié)果及說明5.1 仿真軟件介紹在本次設(shè)計中,主要采用的是Protues以及Keil這兩款軟件,下面會分別來介紹這兩款軟件。5.1.1 Protues軟件介紹Protues是一款由一家英國電子公司開發(fā)的,在Windows操作系統(tǒng)上運(yùn)行的可以對電路進(jìn)行分析以及對實物進(jìn)行仿真的軟件。這款軟件優(yōu)于其他EDA工具,還有一個更加重要的原因,就是Protues還能夠仿真單片機(jī)和外圍的器件。所以不管是在單片機(jī)的開發(fā)

32、應(yīng)用中,還是單片機(jī)的教學(xué)中,Protues已經(jīng)成為了仿真的首選軟件。Protues除了具有簡單且實用性強(qiáng)的ISIS原理布圖,ARES PCB布線和SPICE仿真的基本功能外,還能夠通過鍵盤,LED燈等外設(shè)讓使用者進(jìn)行與電路的實時交互仿真,以及通過仿真單片機(jī),直接在原理圖上導(dǎo)入程序,并且能夠得到輸出的結(jié)果。Protues也為我們提供了大量的使用資源。其中仿真的元件就包含數(shù)字,模擬,直流,交流等等,且其數(shù)量就上千種。除了豐富的仿真元器件資源,而且還蘊(yùn)藏了豐富的仿真儀表資源。其中就包括了電壓表,電流表,示波器,信號發(fā)生器等等。不僅僅是存在了這么多的仿真儀器,而且還具有一個圖像顯示功能,可以讓我們更加

33、直觀的看到線路上的信號的變化情況。甚至比實際的示波器具有更多的功能。同時,這些儀器還能提供參數(shù)的一個理想狀態(tài)下的指標(biāo),這樣我們在使用這款軟件時,會更加的便捷。Protues也可以在電路上使用模擬信號和數(shù)字信號進(jìn)行測試。Protues除了強(qiáng)大的功能外,還因其能直觀的看見模擬的實物運(yùn)行的過程和結(jié)果,所以不管是在生產(chǎn)應(yīng)用還是在教學(xué)工作中,Protues這款軟件使用的情況相當(dāng)?shù)膹V泛。并且,這款軟件也為使用者們提供了一個十分便利的平臺。這讓我們在學(xué)習(xí)的過程中,能夠更好地去實踐,去創(chuàng)造。在本次設(shè)計中,我們便采用了Protues軟件對時鐘系統(tǒng)進(jìn)行了仿真。在使用過程中,操作簡單易學(xué)。而且電路中所需要的元器件在

34、軟件的元件庫中都能順利找到。這款軟件對我們的原理圖的正確性,合理性都進(jìn)行了檢驗。導(dǎo)入之前通過Keil編譯后的程序,再利用仿真的實驗儀器對時間和日歷顯示,LED閃爍,以及蜂鳴器的整點(diǎn)報時進(jìn)行了測試。有了這款軟件,對元器件的采購又有了新的選擇。5.1.2 Keil軟件介紹Keil是由美國一家公司研發(fā)的MCU軟件開發(fā)系統(tǒng)。Keil現(xiàn)在是一款主流的集成開發(fā)調(diào)試工具,它的庫函數(shù)十分的豐富,功能也很強(qiáng)大。它主要的功能還是我們輸入的源程序代碼變成機(jī)器能夠識別的機(jī)器碼。Keil利用uVision將C編譯器,庫管理,宏匯編和仿真調(diào)試器組合的一個完整的開發(fā)方案。我們此次設(shè)計使用Keil軟件是在Windows XP

35、的環(huán)境下運(yùn)行的。在設(shè)計中,我選擇的是C語言來進(jìn)行編寫程序。因為在大一的時候?qū)iT學(xué)習(xí)過C語言的課程,所以自己有一定的基礎(chǔ)。再加上C語言相較匯編語言,更加簡單易懂,便于我們編寫。以下是Keil軟件具體的操作步驟:(一)新建工程:打開Keil軟件,在屏幕上面的菜單選項中點(diǎn)擊“工程”,然后在下拉菜單中點(diǎn)擊“新建工程”選項。在彈出的文本框內(nèi),先選擇保存的路徑并輸入工程文件的名字,點(diǎn)擊“保存”。(二)選擇單片機(jī)型號:在彈出的頁面內(nèi)選擇我們本次所采用的型號為“STC89C51”的單片機(jī)。然后點(diǎn)擊“確定”。(三)新建文件:在屏幕上方的菜單欄點(diǎn)擊“新建”,在下拉菜單中點(diǎn)擊“新建項目”。再點(diǎn)擊“保存”按鈕,選擇文

36、件名右側(cè)的文本輸入框內(nèi)輸入文件并填寫正確的擴(kuò)展名。點(diǎn)擊“保存”。(四)將文件添加進(jìn)工程:在屏幕左側(cè)的文本框內(nèi),右鍵點(diǎn)擊工程下的文件夾,在彈出的下拉菜單選項中選擇添加文件到*,然后在彈出的文本框內(nèi)選擇之前新建的文件。(五)運(yùn)行:輸入我們之前編好的C語言程序,在屏幕上面的菜單選項中點(diǎn)擊“工程”,然后在下拉菜單中點(diǎn)擊“建造目標(biāo)選項”,編譯成功后,再點(diǎn)擊“調(diào)試菜單”,在下拉菜單中點(diǎn)擊“開始/停止調(diào)試”。(六)調(diào)試:點(diǎn)擊“調(diào)試”按鈕,在下拉菜單中點(diǎn)擊“運(yùn)行”,然后再次點(diǎn)擊“調(diào)試”按鈕,在下拉菜單中點(diǎn)擊“停止運(yùn)行”選項,通過寄存器窗口、存儲器窗口以及外圍設(shè)備窗口等就可以看到程序運(yùn)行后的結(jié)果。5.2 時鐘系

37、統(tǒng)的仿真首先,使用Altium Designer軟件,完成了時鐘系統(tǒng)的完整電路圖。在老師的指導(dǎo)和幫助下,把電路圖修改好。然后在使用Protues軟件重新將電路原理圖畫出來。由于之前已經(jīng)畫過電路圖,所以再次畫的時候,效率也很高,并且正確性也達(dá)到要求。完整電路圖如圖5.1所示。圖5.1 時鐘系統(tǒng)電路原理圖在完成了電路原理圖后,就開始著手準(zhǔn)備程序。由于考慮到易用,我們選擇的是Keil軟件來進(jìn)行編程。因為這個系統(tǒng)分為幾大模塊。所以我們的程序也是按照所劃分的這些模塊來一一進(jìn)行編寫。我們的思路是首先編寫主程序,然后再編寫LCD程序,時鐘程序,報警程序等。將LCD程序編好后,在主程序中調(diào)用LCD程序。再將主

38、程序加載到Protues里面的仿真電路里面。觀察LCD液晶顯示器是否開始工作,再根據(jù)實際遇到的一些問題,修改程序,并進(jìn)行調(diào)試。最終,將其功能實現(xiàn)。接下來的時鐘程序,報警程序等等也采用同樣的方法對其進(jìn)行仿真和修改。在調(diào)試的過程中,我們采用的是一部分一部分的去實現(xiàn)功能。這樣做有一個最明顯的好處,就是便于我們發(fā)現(xiàn)問題。如果我們一開始就將所有程序都寫在一起,那么出現(xiàn)問題后,我們很難定位到出現(xiàn)問題的程序具體在哪一部分。程序分開來寫也便于我們學(xué)習(xí)和理解,畢竟在之前的學(xué)習(xí)中,我們接觸的代碼量少,對代碼理解起來也較為困難。所以我們在編寫程序的時候,采用這種方法,能大大的提高我們的效率。在設(shè)計中我們遇到了許多的

39、問題。其中有幾點(diǎn)很值得我們的注意,就是不要遺漏單片機(jī)的復(fù)位電路和晶振電路。不然單片機(jī)無法正常的工作。還有就是,注意其他模塊電路的正負(fù)極不能接反了。在proteus軟件中進(jìn)行智能時鐘電路原理圖的繪制,繪制結(jié)果如圖5.2所示。圖中采用的主控芯片是STC公司出品的STC89C51,加上LCD1602液晶顯示電路和一個矩陣鍵盤組成,加上一些外圍的蜂鳴器和LED提示電路,圖中的左下部的那個芯片為時鐘芯片DS1302,時鐘芯片右部為蜂鳴器,原理圖中還有單片機(jī)的晶振電路和單片機(jī)的復(fù)位電路。在此次設(shè)計中,主要實現(xiàn)的功能有:上電后,蜂鳴器鳴叫,LED燈亮,再進(jìn)入到初始化頁面后,LED燈以500ms的頻率閃爍,通

40、過按鍵的操作在液晶屏上顯示時間和日期。顯示數(shù)字的格式為比如2012年5月2日的顯示格式為02-05-12;12點(diǎn)25分30秒的顯示格式為12-25-30。最后擴(kuò)展了一個整點(diǎn)報時的功能。在59分57秒時,蜂鳴器開始報警,報警時間持續(xù)3秒,報警在00分00秒停止。6 系統(tǒng)實物調(diào)試及結(jié)果6.1 系統(tǒng)實物系統(tǒng)實物如圖6.1所示:圖6.1 智能時鐘實物6.1 系統(tǒng)實物調(diào)試結(jié)果及說明1. 插上電源,進(jìn)入初始界面。在液晶顯示屏上顯示:WelcomeRTC,LED燈亮,如圖6.2所示。圖6.2 進(jìn)入系統(tǒng)初始界面2. LCD液晶顯示器顯示時間和日期。如圖6.3所示。圖6.3 時間和日歷顯示3. LED燈按照50

41、0ms的頻率閃爍。如圖6.4所示。圖6.4 LED閃爍總結(jié)本次設(shè)計我做的是一個基于LCD的多功能智能時鐘系統(tǒng)。雖然在以前的課程中學(xué)習(xí)過怎么畫電路圖,PCB,仿真,也學(xué)習(xí)過編程,焊過板子。但是我卻沒有將這些事情聯(lián)系起來完完整整的做過一個項目。通過這次自己獨(dú)立的完成設(shè)計,我收獲到了很多。不僅對以前學(xué)習(xí)的知識有了一個鞏固,而且也更加了解做一個單片機(jī)系統(tǒng)的實物應(yīng)該注意哪些問題。在這個時鐘系統(tǒng)設(shè)計中,采用什么型號的單片機(jī),顯示器和時鐘芯片。經(jīng)過幾番思考,在考慮了價格,效率,實用性等因素后,最終決定。在選擇方案時,通過在網(wǎng)上查找資料,咨詢黃老師后,我對這幾款芯片又有了更深入的了解。在系統(tǒng)模塊電路和軟件的設(shè)

42、計中,通過查找書本上的資料以及黃老師的指導(dǎo)下,還算進(jìn)行的順利。對各個模塊電路的功能,程序?qū)崿F(xiàn)的功能都有了一定的了解。雖然在之前的課程中使用過Keil和Protues這兩款軟件,但是對這兩款軟件的使用也很不熟悉。所以在后面仿真的時候,自己也下了很大的功夫,查閱資料,咨詢老師。然后在電腦上實際操作軟件,慢慢的,對這兩款軟件的使用熟練起來。最終也順利完成仿真。在本次設(shè)計中,我得到了很多收獲。不僅僅是對單片機(jī),電路,程序這些知識的掌握,更多的是讓我懂得了遇到問題后,不逃避,積極解決的道理。雖然在這次的設(shè)計中,不是一帆風(fēng)順,遇到了很多問題,但是最后在我的不懈努力下這些問題也被一一的解決了。參考文獻(xiàn)1 王

43、昌平. 電子時鐘設(shè)計M. 電大理工學(xué)報, 2008.2 李軍. 單片機(jī)技術(shù)基礎(chǔ)M. 電子科技大學(xué)出版社, 2004.3 王同洲,郭云華. 基于單片機(jī)的電子時鐘系統(tǒng)M. 中國傳媒大學(xué)學(xué)報,2007.4 李宇忠, 徐宏飛. 電子時鐘系統(tǒng)M. 西安電子科技大學(xué)出版社, 2003. 5 彭小軍,周功海. C語言編程技巧M. 浙江電工高專學(xué)報, 2009.6 翟小文, 劉儒南. 多功能時鐘M. 西安理工電子學(xué)院學(xué)報, 2008.7 徐林波, 李云英. 基于單片機(jī)的多功能智能時鐘M. 自然與科學(xué), 2005.8 戴勇凌. 時鐘的設(shè)計M. 國外電子元器件, 2007.9 何萍萍. 可調(diào)控的時鐘系統(tǒng)M. 中國

44、電子現(xiàn)代化, 2009. 致謝畢業(yè)設(shè)計已經(jīng)完成了,這意味著我的大學(xué)四年的學(xué)習(xí)生活即將畫上一個圓滿的句號。不管是在學(xué)習(xí)還是生活中,感謝這四年來,所有幫助過的老師和同學(xué)。正是因為你們的幫助,我才能快速的成長起來。從一個剛進(jìn)大學(xué)懵懵懂懂,稚氣未脫的小孩變成了知道自己要主動學(xué)習(xí),做事也不再莽撞,為人也應(yīng)該謙虛低調(diào)的大人。雖然即將離開學(xué)校,但是這并不意味著不用再學(xué)習(xí)了。反而,在以后的工作中,還有更多的東西需要我們?nèi)フJ(rèn)真學(xué)習(xí),更應(yīng)該努力的去奮斗。通過實際的工作來累積自己的經(jīng)驗,通過大量的學(xué)習(xí)來提升自己的能力。并且,還要去學(xué)習(xí)新的東西,跟上社會發(fā)展的腳步。這樣才不會被社會淘汰。感謝這四年來,班里的每一位同學(xué)

45、。是你們讓我在學(xué)校感受到了家的溫暖,感受到了同學(xué)和同學(xué)之間的深厚的友誼。更要感謝每一位教過我的老師。你們不僅教授了我們知識,更多的是教會了我們做人的道理。在這里,我要鄭重的感謝一個人,就是我的指導(dǎo)老師XX老師。不僅教會了我學(xué)習(xí)的方法,還教會了我遇到困難的時候,如何去解決問題,而不是去逃避困難。感謝黃宇老師,正是因為他一絲不茍的教學(xué)態(tài)度,豐富的教學(xué)經(jīng)驗,全面悉心的指導(dǎo)下,我才能順利的完成本次的設(shè)計。附件1 主程序/* 文件名: main.c* Copyright 成都理工大學(xué)工程技術(shù)學(xué)院電計系* 創(chuàng)建人: xx* 日期: 2015.02.01* 修改人: xx* 日期: 2015.05.01 *

46、 描述: 系統(tǒng)主函數(shù)* 全局變量:待顯示十進(jìn)制數(shù)組*/#include "common.h"#include "uart.h"#include "timer.h"#include "lcd1602.h"#include "ds18b20.h"#include "button.h"#include "display.h"#include "warning.h"#include "ds1302.h"uchar Disp_

47、Dec12=0;/電壓電流緩沖器uchar Disp_Num12=0;sbit Buzzer=P33;sbit Led=P34;/*函數(shù)名稱: SysInit功 能: 系統(tǒng)程序初始化函數(shù),串口初始化和定時器初始化參 數(shù): 無參數(shù)返回值 : 無*/void SysInit(void) P1=0XFF; Init_DS1302(); /*定時器初始化*/ Timer_Init();/*函數(shù)名稱: main功 能: 主程序中包括adc0809的啟動,AD數(shù)據(jù)采集和數(shù)據(jù)處理過程 再有串口發(fā)送給PC機(jī)打印。參 數(shù): 無參數(shù)返回值 : 無*/void main(void) static uchar Key

48、Temp=0; static bit KeyStart=0;/啟動鍵標(biāo)志 static uchar KeyFunc=0,KeyFunc1=0; /功能選擇鍵:1控制LED燈全亮全滅/*系統(tǒng)初始化*/ SysInit();/*關(guān)蜂鳴器*/ Led=1; Buzzer=0;/*LCD1602初始化*/ write_LCD_Command(0x38); /顯示模式設(shè)置 write_LCD_Command(0x01); /清屏 write_LCD_Command(0x06); /字符進(jìn)入模式:屏幕不動,字符后移 write_LCD_Command(0x0c); /顯示開,關(guān)光標(biāo) ShowString(

49、2,1,12,"Welcome-RTC"); while(1) KeyTemp=KeyScan();/*注釋:按鍵分成兩級:第一級是啟停鍵,第二級是功能鍵*/ if(KeyTemp=1) KeyStart=1;KeyFunc=0;Led=!Led; write_LCD_Command(0x01); if(KeyTemp=2) KeyFunc=1; if(KeyTemp=3) KeyFunc1=1; if(KeyTemp=4) KeyStart=0;KeyFunc=0;KeyFunc1=0;write_LCD_Command(0x01);ShowString(2,1,12,&

50、quot;Welcome-RTC"); if (KeyStart=1) if (ReadFlag1) Led=!Led;ReadFlag1=0; if(KeyStart&&KeyFunc) if(ReadFlag)ReadFlag=0;DatClkProc(); Disp_Dec0=84; Disp_Dec1=105; Disp_Dec2=58; Disp_Dec3=hou/16; Disp_Dec4=hou&0x0f; Disp_Dec5=45; Disp_Dec6=min/16; Disp_Dec7=min&0x0f; Disp_Dec8=45; Disp_Dec9=sec/16; Disp_Dec10=sec&0x0f; ShowTem(2,1,11,Disp_Dec);if(KeyStart&&KeyFunc1) if(ReadFlag)ReadFlag=0;DatCalProc(); Disp_Num0=67; Disp_Num1=97; Disp_Num2=58; Disp_Num3=day/16; Disp_Num4=day&0x0f; Disp_Num5=45; Disp_Num6=mon/16; Disp_Num7=mon&

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論