基于 stc89c52的定時(shí)器畢業(yè)論文(含外文翻譯)_第1頁(yè)
已閱讀1頁(yè),還剩70頁(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)介

1、<p><b>  摘 要</b></p><p>  當(dāng)今社會(huì),單片機(jī)已經(jīng)普及到我們生活、工作的各個(gè)方面,已經(jīng)發(fā)展成為一門比較成熟的技術(shù)。定時(shí)器在日常生活、工業(yè)控制、交通燈管理、檢測(cè)、報(bào)警等方面的應(yīng)用越來(lái)越廣泛,同時(shí)人們對(duì)定時(shí)器的要求也越來(lái)越高。本課題設(shè)計(jì)一個(gè)基于 STC89C52構(gòu)成的實(shí)用定時(shí)器,這在某些應(yīng)用中具有一定的實(shí)用價(jià)值。</p><p>  本

2、課題設(shè)計(jì)了一個(gè)基于 STC89C52的定時(shí)器,首先介紹了設(shè)計(jì)內(nèi)容及要求,介紹了定時(shí)器的設(shè)計(jì)思路以及功能模塊的劃分,并對(duì)各模塊實(shí)現(xiàn)的具體功能進(jìn)行了說(shuō)明。然后結(jié)合框圖,介紹了定時(shí)器的工作原理,之后詳細(xì)介紹了定時(shí)器具體單元電路的設(shè)計(jì)與分析。</p><p>  該定時(shí)器除具有基本的定時(shí)功能外,還具有定時(shí)時(shí)間連續(xù)可調(diào)、倒計(jì)時(shí)顯示和定時(shí)開關(guān)功能。它造價(jià)低,功能全,整體功能性價(jià)比高,配以LED顯示器,它適應(yīng)各種場(chǎng)合的定時(shí)預(yù)警

3、之用。而且設(shè)計(jì)巧妙,體積小,功能強(qiáng),計(jì)時(shí)范圍大,用途廣泛,操作攜帶方便,是一種較理想的定時(shí)工具。</p><p>  關(guān)鍵詞:定時(shí)器; STC89C52;連續(xù)可調(diào);倒計(jì)時(shí)顯示</p><p><b>  ABSTRACT</b></p><p>  Today, the monolithic integrated circuits has be

4、en popular in our daily life and work ,and has become a relatively mature technology.The timer in our daily lives, industrial control, traffic lights management, detection, alarm and so on, while people on the timer ther

5、e are increasingly high requirements. The design of a subject with a practical STC89C52 timer, which in some applications has some practical values.</p><p>  This paper first introduced the design of the co

6、ntent and requirements on the design of the timer and the delineation of functional modules, each module and the specific functions of the note. Then with diagram, on the principle of the timer, after details of the spec

7、ific unit timer circuit design and analysis. </p><p>  The timer in addition to a basic function of the timing, but also with adjustable timing consecutive time, the countdown display and regularly switching

8、 function. it is low cost, full-featured, cost-effective overall function, together with a LED display, it is adapt to a variety of occasions for use in varieties of warning. And cleverly designed, small, strong function

9、, wide time range, wide range of uses, easy to carry and operate, is an ideal timing tool.</p><p>  Keywords: Timer; STC89C52; continuously adjustable; the countdown show</p><p><b>  目 錄

10、</b></p><p><b>  第一章 緒論1</b></p><p><b>  1.1設(shè)計(jì)背景3</b></p><p>  1.2論文研究?jī)?nèi)容5</p><p>  1.3 論文結(jié)構(gòu)安排5</p><p>  第二章 整體方案設(shè)計(jì)6</

11、p><p>  2.1設(shè)計(jì)任務(wù)及要求6</p><p>  2.2系統(tǒng)設(shè)計(jì)整體方案6</p><p>  2.2.1時(shí)鐘計(jì)時(shí)的方案選擇6</p><p>  2.2.2時(shí)鐘顯示的方案選擇8</p><p>  2.2.3系統(tǒng)硬件的整體設(shè)計(jì)8</p><p>  2.2.4主控制模塊的方案選

12、擇與設(shè)計(jì)9</p><p>  第三章 硬件電路設(shè)計(jì)10</p><p>  3.1 STC單片機(jī)10</p><p>  3.2 STC單片機(jī)模塊介紹12</p><p>  3.2.1 復(fù)位電路12</p><p>  3.2.2 晶振電路14</p><p>  3.2.3 電

13、源電路14</p><p>  3.2.4 下載電路15</p><p>  3.3 LED與單片機(jī)接口電路16</p><p>  3.4發(fā)光二級(jí)管電路設(shè)計(jì)18</p><p>  3.5器件選擇19</p><p>  3.6 接口連接設(shè)計(jì)20</p><p>  3.7 功能簡(jiǎn)

14、介20</p><p>  第四章 軟件設(shè)計(jì)20</p><p><b>  4.1主程序20</b></p><p>  4.2發(fā)光二極管指示程序21</p><p>  4.3鍵掃描程序22</p><p>  4.1定時(shí)器中斷程序24</p><p>  

15、第五章 設(shè)計(jì)調(diào)試25</p><p>  5.1 軟件調(diào)試25</p><p>  5.1.1 Keil軟件及其調(diào)試功能簡(jiǎn)介25</p><p>  5.1.2 C語(yǔ)言簡(jiǎn)介27</p><p>  5.1.3Keil軟件調(diào)試28</p><p>  5.2 硬件調(diào)試32</p><p&g

16、t;  5.2.1 Protel 99 SE 簡(jiǎn)介32</p><p>  5.2.2 Protel 99 SE 繪制原理圖見附錄C34</p><p>  5.2.3 Protel 99 SE 繪制PCB圖見附錄D34</p><p>  5.3 調(diào)試結(jié)果34</p><p><b>  第六章 總結(jié)36</b&g

17、t;</p><p><b>  致謝37</b></p><p><b>  參考文獻(xiàn)38</b></p><p>  附錄A:電路原理圖39</p><p>  附錄B:PCB圖40</p><p>  附錄C:程序清單41</p><p&g

18、t;  附錄E:英文資料52</p><p>  附錄F:英文資料翻譯59</p><p><b>  第一章 緒 論</b></p><p>  目前單片機(jī)已滲透到生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的足跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過(guò)程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智

19、能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說(shuō)全自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的工程師和科學(xué)家??萍荚桨l(fā)達(dá),智能化的東西就越多??磥?lái)學(xué)習(xí)單片機(jī)是社會(huì)發(fā)展的必然需求。 </p><p>  單片微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),是典型的嵌入式微控制器(Microcont

20、roller Unit), 常用英文字母的縮寫MCU表示單片機(jī),單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。單片機(jī)由運(yùn)算器,控制器,存儲(chǔ)器,輸入輸出設(shè)備構(gòu)成,相當(dāng)于一個(gè)微型的計(jì)算機(jī)(最小系統(tǒng)),和計(jì)算機(jī)相比,單片機(jī)缺少了外圍設(shè)備等。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。它最

21、早是被用在工業(yè)控制領(lǐng)域。</p><p>  由于單片機(jī)在工業(yè)控制領(lǐng)域的廣泛應(yīng)用,單片機(jī)由僅有CPU的專用處理器芯片發(fā)展而來(lái)。最早的設(shè)計(jì)理念是通過(guò)將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對(duì)體積要求嚴(yán)格的控制設(shè)備當(dāng)中。</p><p>  單片機(jī)由于將cpu,內(nèi)存和一些必要的接口集成到一個(gè)芯片上,并且針對(duì)面向控制功能將結(jié)構(gòu)做了一定的優(yōu)化,所以它具備通用芯

22、片不具有的特點(diǎn)。目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢(shì)將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。因此,單片機(jī)被廣泛應(yīng)用于測(cè)控系統(tǒng),智能儀表儀器,機(jī)電一體化產(chǎn)品,智能接口以及單片機(jī)的多系統(tǒng)等領(lǐng)域。 它的應(yīng)用主要表現(xiàn)在以下幾個(gè)方面:</p><p>  (1)單片機(jī)在智能儀表中的應(yīng)用 </p><p>  單片機(jī)廣泛地用于各種儀器儀表

23、,使儀器儀表智能化,并可以提高測(cè)量的自動(dòng)化程度和精度,簡(jiǎn)化儀器儀表的硬件結(jié)構(gòu),提高其性能價(jià)格比。 </p><p>  (2)單片機(jī)在機(jī)電一體化中的應(yīng)用 </p><p>  機(jī)電一體化是機(jī)械工業(yè)發(fā)展的方向。機(jī)電一體化產(chǎn)品是指集成機(jī)械技術(shù)、微電子技術(shù)、計(jì)算機(jī)技術(shù)于一體,具有智能化特征的機(jī)電產(chǎn)品,例如微機(jī)控制的車床、鉆床等。單片機(jī)作為產(chǎn)品中的控制器,能充分發(fā)揮它的體積小、可靠性高、功能強(qiáng)等優(yōu)

24、點(diǎn),可大大提高機(jī)器的自動(dòng)化、智能化程度。 </p><p>  (3)單片機(jī)在實(shí)時(shí)控制中的應(yīng)用 </p><p>  單片機(jī)廣泛地用于各種實(shí)時(shí)控制系統(tǒng)中。例如,在工業(yè)測(cè)控、航空航天、尖端武器、機(jī)器人等各種實(shí)時(shí)控制系統(tǒng)中,都可以用單片機(jī)作為控制器。單片機(jī)的實(shí)時(shí)數(shù)據(jù)處理能力和控制功能,可使系統(tǒng)保持在最佳工作狀態(tài),提高系統(tǒng)的工作效率和產(chǎn)品質(zhì)量。 </p><p>  (4

25、)單片機(jī)在分布式多機(jī)系統(tǒng)中的應(yīng)用</p><p>  在比較復(fù)雜的系統(tǒng)中,常采用分布式多機(jī)系統(tǒng)。多機(jī)系統(tǒng)一般由若干臺(tái)功能各異的單片機(jī)組成,各自完成特定的任務(wù),它們通過(guò)串行通信相互聯(lián)系、協(xié)調(diào)工作。單片機(jī)在這種系統(tǒng)中往往作為一個(gè)終端機(jī),安裝在系統(tǒng)的某些節(jié)點(diǎn)上,對(duì)現(xiàn)場(chǎng)信息進(jìn)行實(shí)時(shí)的測(cè)量和控制。單片機(jī)的高可靠性和強(qiáng)抗干擾能力,使它可以置于惡劣環(huán)境的前端工作。 </p><p>  (5)單片機(jī)在人

26、類生活中的應(yīng)用 </p><p>  自從單片機(jī)誕生以后,它就步入了人類生活,如洗衣機(jī)、電冰箱、電子玩具、收錄機(jī)等家用電器配上單片機(jī)后,提高了智能化程度,增加了功能,倍受人們喜愛。單片機(jī)將使人類生活更加方便、舒適、豐富多彩。</p><p>  綜合所述,單片機(jī)已成為計(jì)算機(jī)發(fā)展和應(yīng)用的一個(gè)重要方面。另一方面,單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前

27、必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過(guò)軟件方法來(lái)實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。 </p><p>  本文在對(duì)單片機(jī)研究的基礎(chǔ)上,以 STC89C52為核心,對(duì)定時(shí)器進(jìn)行設(shè)計(jì)與應(yīng)用,通過(guò)對(duì)其原理深入分析,探討以 STC89C52單片機(jī)構(gòu)成定時(shí)器的實(shí)現(xiàn)方法,介紹其設(shè)計(jì)原理及方法,給出定時(shí)器軟件設(shè)計(jì)??紤]到存在的各種干擾對(duì)系統(tǒng)的影響,從軟、

28、硬件設(shè)計(jì)兩個(gè)方面進(jìn)行分析,采取相應(yīng)的措施以增強(qiáng)系統(tǒng)的抗干擾能力。</p><p><b>  1.1 設(shè)計(jì)背景</b></p><p>  近年來(lái)隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)日新月異地更新。定時(shí)、延時(shí)裝置在工業(yè)控制中被廣泛的應(yīng)用。它可以實(shí)現(xiàn)信號(hào)的異步傳送,根據(jù)控制要求設(shè)置接收到和做出相關(guān)反應(yīng)的時(shí)間差。被廣泛的用于儀表、通信、

29、辦公自動(dòng)化、軍工領(lǐng)域及各種控制柜、控制臺(tái),使用極為廣闊。在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個(gè)核心部件來(lái)使用,根據(jù)具體硬件結(jié)構(gòu)及具體應(yīng)用對(duì)象的特點(diǎn),與軟件相結(jié)合,加以完善。單片機(jī)之所以在工業(yè)控制中有大量的應(yīng)用,就在于它有獨(dú)特的定時(shí)、計(jì)數(shù)功能。在工業(yè)檢測(cè)、控制中,許多場(chǎng)合都要用到計(jì)數(shù)或定時(shí)功能。例如,對(duì)外部脈沖進(jìn)行計(jì)數(shù)、產(chǎn)生精確的定時(shí)時(shí)間等。人類最早使用的定時(shí)工具是沙漏或水漏,但在鐘表誕生發(fā)展成熟之后,人們開始嘗試使

30、用這種全新的計(jì)時(shí)工具來(lái)改進(jìn)定時(shí)器,達(dá)到準(zhǔn)確控制時(shí)間的目的。</p><p>  “定時(shí)器”總的來(lái)說(shuō)有兩種類型。一種是基于模擬技術(shù)的傳統(tǒng)產(chǎn)品,這種定時(shí)器功能簡(jiǎn)單,盡管曾被廣泛應(yīng)用過(guò),但已進(jìn)入淘汰之列。另一種是基于數(shù)字技術(shù)的新一代產(chǎn)品,這種產(chǎn)品功能強(qiáng),是前者的換代之物。隨著單片機(jī)性能價(jià)格比的不斷提高,新一代產(chǎn)品的應(yīng)用越來(lái)越廣泛,大可構(gòu)成復(fù)雜的工業(yè)過(guò)程控制系統(tǒng),完成復(fù)雜的控制功能,小則可以用于家電控制,甚至能夠用來(lái)做兒

31、童電子玩具。它功能強(qiáng)大,體積小,重量輕,靈活好用,配以適當(dāng)?shù)慕涌谛酒?,可以?gòu)造各種各樣、功能各異的微電子產(chǎn)品。</p><p>  定時(shí)器按結(jié)構(gòu)可分為機(jī)械式、電動(dòng)式和電子式3類。 </p><p>  機(jī)械式定時(shí)器:以發(fā)條為原動(dòng)力,用擒縱調(diào)速器控制走時(shí)精度,通過(guò)齒輪傳動(dòng)和凸輪,按時(shí)間控制機(jī)構(gòu)預(yù)置的時(shí)段操縱執(zhí)行機(jī)構(gòu)動(dòng)作。計(jì)時(shí)精度要求不高的定時(shí)器(如風(fēng)扇定時(shí)器、洗衣機(jī)定時(shí)器、廚房用定時(shí)器、照相

32、暗房用定時(shí)器、電視機(jī)控制用定時(shí)器、電燈開關(guān)定時(shí)器),一般采用無(wú)固有振動(dòng)周期的調(diào)速器。這些定時(shí)器都是在手動(dòng)上發(fā)條的同時(shí)預(yù)置時(shí)限,定時(shí)精度不高,但結(jié)構(gòu)簡(jiǎn)單,使用方便。計(jì)時(shí)精度要求高、定時(shí)范圍在3~12小時(shí)的定時(shí)器,一般采用擺輪游絲調(diào)速器。</p><p>  電動(dòng)式定時(shí)器:用交流同步電動(dòng)機(jī)或石英步進(jìn)電機(jī)驅(qū)動(dòng),通過(guò)齒輪傳動(dòng)和凸輪簧片觸點(diǎn)機(jī)構(gòu),按預(yù)置的時(shí)段或時(shí)刻控制執(zhí)行機(jī)構(gòu)。其中短時(shí)段控制的電動(dòng)式定時(shí)器可用于程序控制式洗

33、衣機(jī)、洗碗機(jī)、微波爐、烘箱及時(shí)間繼電器等;長(zhǎng)時(shí)段電動(dòng)式定時(shí)器是一種24小時(shí)或7天程序控制的開關(guān)裝置,可預(yù)置開關(guān)動(dòng)作多次,最短時(shí)間控制間隔一般為15分鐘,可用于用戶用電情況監(jiān)控、照明控制、實(shí)驗(yàn)室裝置控制、空調(diào)器控制和自動(dòng)生產(chǎn)線上某些設(shè)備的定時(shí)控制等。</p><p>  電子式定時(shí)器:利用石英振蕩器或民用交流電的標(biāo)準(zhǔn)頻率,經(jīng)過(guò)分頻計(jì)數(shù)組成時(shí)間累加器或數(shù)字鐘,按照預(yù)置的時(shí)間編碼輸出控制信號(hào)。這種定時(shí)器走時(shí)精確,時(shí)間設(shè)

34、定沒有誤差,定時(shí)精度高,控制程序多。其中長(zhǎng)時(shí)段定時(shí)器最小控制時(shí)段一般為1分鐘,配上微處理器后能精確地編制一年的時(shí)間程序,組成多路可編程序的定時(shí)器。電子式定時(shí)器在工業(yè)自動(dòng)化控制系統(tǒng)中應(yīng)用廣泛,它也是節(jié)約能源管理中一種有效的技術(shù)措施。電子定時(shí)器類的電子定時(shí)開關(guān)鐘,可用于按高、平、低峰用電收取不同電費(fèi)制度的場(chǎng)合,它將一天內(nèi)的用電高峰、平峰、低谷時(shí)間在定時(shí)開關(guān)中設(shè)定,并分別接通3種電表進(jìn)行計(jì)費(fèi)。電子式定時(shí)器在科學(xué)實(shí)驗(yàn)中和在微波爐、電飯鍋、洗衣機(jī)

35、等電器中也有使用。</p><p>  本設(shè)計(jì)開發(fā)了一種基于單片機(jī)的多用途定時(shí)器。它造價(jià)低,功能全,整體功能價(jià)格比高,配以小鍵盤和LED顯示器,它適應(yīng)各種場(chǎng)合的定時(shí)預(yù)警之用。而且設(shè)計(jì)巧妙,體積小,功能強(qiáng),計(jì)時(shí)范圍大,用途廣泛,操作攜帶方便,是一種較理想的定時(shí)工具。</p><p>  1.2 論文研究?jī)?nèi)容</p><p>  基于單片機(jī)的定時(shí)器電路包含了如下的功能模

36、塊:1,以STC89C52為核心的主控模塊;2,四位LED顯示模塊;3,電源供電模塊;4,鍵盤掃描模塊;5,下載模塊。</p><p>  該系統(tǒng)利用單片機(jī)的定時(shí)器定時(shí),時(shí)間準(zhǔn)確、穩(wěn)定、可靠,并可以利用單片機(jī)的功能很好地進(jìn)行時(shí)間的顯示、指示,輸出。原理簡(jiǎn)單,使用元器件少。而且成本低。用單片機(jī)完全可以實(shí)現(xiàn)定時(shí)功能。</p><p>  1.3 論文結(jié)構(gòu)安排</p><p&

37、gt;  第一章,前言。介紹了本課題研究的目的背景和本次論文的結(jié)構(gòu)框架。</p><p>  第二章,整體方案設(shè)計(jì)。介紹了本設(shè)計(jì)的任務(wù)要求和整體的方案設(shè)計(jì)。</p><p>  第三章,硬件電路設(shè)計(jì)。介紹了本設(shè)計(jì)所需要的各芯片及接口連接。</p><p>  第四章,軟件設(shè)計(jì)。介紹了所用到的軟件和各模塊的軟件流程圖。</p><p>  第五

38、章,設(shè)計(jì)調(diào)試。介紹軟件仿真調(diào)試與硬件調(diào)試。</p><p>  第六章,總結(jié)。對(duì)本次設(shè)計(jì)過(guò)程中的一些學(xué)習(xí)心得。</p><p>  致謝。感謝指導(dǎo)老師和幫助我的同學(xué)。</p><p>  第二章 整體方案設(shè)計(jì)</p><p>  2.1 設(shè)計(jì)任務(wù)及要求</p><p>  設(shè)計(jì)一個(gè)基于單片機(jī)控制的專用定時(shí)器。要求定時(shí)器

39、可以實(shí)現(xiàn)三個(gè)定時(shí)時(shí)間的顯示,而且每個(gè)時(shí)間的初值都可以改變,獨(dú)立完成系統(tǒng)的分析、設(shè)計(jì)和程序編寫,記錄開發(fā)過(guò)程中的問題及解決方法,要有計(jì)算過(guò)程和原理圖,以及獨(dú)立的穩(wěn)定電源。</p><p><b>  設(shè)計(jì)主要指標(biāo)參數(shù):</b></p><p>  (1) 定時(shí)時(shí)間1。1s-99s,可調(diào)。</p><p>  (2) 定時(shí)時(shí)間2。1s-99s,可調(diào)

40、。</p><p>  (3) 定時(shí)時(shí)間3。1min-99min,可調(diào)。</p><p>  (4) 每個(gè)時(shí)間的初始值、設(shè)定值都可以改變。</p><p>  (5) 所有時(shí)間數(shù)字均可調(diào)。</p><p>  (6) 用LED數(shù)碼管顯示剩余時(shí)間。</p><p>  2.2 系統(tǒng)設(shè)計(jì)整體方案</p>&l

41、t;p>  按照系統(tǒng)設(shè)計(jì)功能的要求,初步確定設(shè)計(jì)系統(tǒng)由主控模塊、顯示模塊、鍵掃描電路模塊、電源供電模塊、下載模塊等組成。設(shè)計(jì)采用STC89系列單片機(jī),以C語(yǔ)言為程序設(shè)計(jì)的基礎(chǔ),設(shè)計(jì)出多功能定時(shí)器。</p><p>  2.2.1時(shí)鐘計(jì)時(shí)的方案選擇</p><p>  單片機(jī)的接口信號(hào)是數(shù)字信號(hào)。要想用單片機(jī)獲取時(shí)間這類非電信號(hào)的信息,必須使用時(shí)間芯片,將時(shí)間信息轉(zhuǎn)換為電流或電壓輸出。

42、如果轉(zhuǎn)換后的電流或電壓輸出是模擬信號(hào),還必須進(jìn)行A/D轉(zhuǎn)換,以滿足單片機(jī)接口的需要。如果是數(shù)字信號(hào)就可以直接送往單片機(jī)進(jìn)行數(shù)據(jù)處理。</p><p>  方案一:比較傳統(tǒng)的基于單片機(jī)的時(shí)鐘設(shè)計(jì)可以采用單片機(jī)內(nèi)部的晶振來(lái)產(chǎn)生脈沖,然后通過(guò)單片機(jī)內(nèi)部的計(jì)時(shí)器經(jīng)過(guò)分頻產(chǎn)生秒脈沖,然后通過(guò)軟件編程來(lái)實(shí)現(xiàn)時(shí)鐘的顯示,這種設(shè)計(jì)方案的優(yōu)點(diǎn)是外圍器件少,電路簡(jiǎn)單清晰,電路焊接容易,出問題的故障幾率小。但是這種方案需由軟件編程來(lái)實(shí)

43、現(xiàn)秒脈沖的產(chǎn)生,編程相對(duì)來(lái)說(shuō)比較復(fù)雜,而且也不利于排故。另外由單片機(jī)內(nèi)部時(shí)鐘產(chǎn)生的秒脈沖由于受到溫漂的影響和程序執(zhí)行時(shí)的延時(shí)的影響,而使的計(jì)時(shí)會(huì)產(chǎn)生不定的誤差,即使設(shè)計(jì)時(shí)間誤差補(bǔ)償程序也很難實(shí)現(xiàn)提供準(zhǔn)確時(shí)間的功能。另外,這種電路設(shè)計(jì)方案的另外一個(gè)設(shè)計(jì)要求就是晶振的選擇要求晶振的振蕩頻率必須通過(guò)分頻得到秒脈沖。這種設(shè)計(jì)還有一個(gè)非常大的缺點(diǎn)就是如果單片機(jī)斷電,時(shí)間計(jì)時(shí)就停止,再次上電時(shí)又從初始設(shè)定重新計(jì)時(shí),這樣就需要在每次上電都調(diào)整時(shí)間,比

44、較麻煩。</p><p>  方案二:在傳統(tǒng)的基于單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)的基礎(chǔ)上經(jīng)過(guò)一些改進(jìn),引入12887時(shí)間芯片,將電路的控制部分和計(jì)時(shí)部分分開,電路的控制部分為單片機(jī),計(jì)時(shí)部分為12887時(shí)間芯片。12887芯片是獨(dú)立計(jì)時(shí),并且具有掉電保護(hù)功能,內(nèi)部自帶鋰電池,能夠在斷電的情況下繼續(xù)計(jì)時(shí),主電路恢復(fù)供電之后能夠不必調(diào)整時(shí)間,為時(shí)鐘的日常操作省去了很大的麻煩,而且這種設(shè)計(jì)更節(jié)能,在需要觀察時(shí)間的時(shí)候比如白天就可

45、以給主電路通電。而在夜晚不需要觀察時(shí)鐘的時(shí)候就可以給主電路斷電,這樣可以節(jié)約大量能量。</p><p>  時(shí)鐘芯片使用美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM和內(nèi)置電池的實(shí)時(shí)時(shí)鐘DS12887。采用DS12887作為主要計(jì)時(shí)芯片,可以做到計(jì)時(shí)準(zhǔn)確。更重要的是,DS12887可以在外部電源斷電的情況下繼續(xù)計(jì)時(shí),在沒有外部供電的情況下,DS12887可以連續(xù)計(jì)時(shí)10年以上。</p>&l

46、t;p>  時(shí)間芯片12887采用了內(nèi)部集成晶振的電路,并且具有內(nèi)部溫漂補(bǔ)償電路設(shè)計(jì)。能夠準(zhǔn)確計(jì)時(shí),提供精確的時(shí)間,這樣就簡(jiǎn)化了電路的器件選擇,另外也使程序的設(shè)計(jì)更加簡(jiǎn)潔。</p><p>  比較上述兩種方案可以看出,第二種方案計(jì)時(shí)更加準(zhǔn)確而且電路硬件設(shè)計(jì)先對(duì)來(lái)說(shuō)并不復(fù)雜,軟件設(shè)計(jì)更加簡(jiǎn)潔。為了減少實(shí)物的制作難度和節(jié)約成本,我決定選擇第一種方案。</p><p>  2.2.2時(shí)鐘

47、顯示的方案選擇</p><p>  方案一:時(shí)鐘的顯示可以用4位LED數(shù)碼管顯示,4位LED數(shù)碼管顯示電路耗能多,而且顯示位數(shù)有限,每增加一位都要在程序設(shè)計(jì)和硬件設(shè)計(jì)方面增加很多的工作量,不利于電路的擴(kuò)展,而且無(wú)法顯示年、月、日、星期這些漢字,使得顯示不夠直觀,靈活。但是這種設(shè)計(jì)方案在顯示位數(shù)比較少時(shí)性價(jià)比比較高,價(jià)格便宜。</p><p>  方案二:采用LCD液晶顯示器顯示。而LCD液

48、晶顯示則耗能少,能夠顯示年、月、日、星期等漢字,在顯示方面更加靈活,而且改變顯示時(shí)只要改變軟件設(shè)計(jì)就可以,不用改變硬件電路的設(shè)計(jì),易于電路的功能擴(kuò)展。電路的軟件設(shè)計(jì)也很簡(jiǎn)單。另外,這種設(shè)計(jì)硬件更加簡(jiǎn)潔。采用LCD液晶顯示方案的缺點(diǎn)是在顯示位數(shù)比較少時(shí),價(jià)格略顯昂貴。</p><p>  比較上述兩種方案可以看出方案二耗能少,顯示靈活,易于電路擴(kuò)展而且不管是軟件設(shè)計(jì)還是硬件設(shè)計(jì)都比較簡(jiǎn)單。為了減少實(shí)物的制作難度和節(jié)

49、約成本,我決定選擇第一種方案。</p><p>  綜上所述,本設(shè)計(jì)采用單片機(jī)內(nèi)部時(shí)鐘計(jì)時(shí)方式,用4位LED顯示時(shí)間。</p><p>  2.2.3系統(tǒng)硬件的整體設(shè)計(jì)</p><p>  主控芯片使用51系列STC89C52單片機(jī),系統(tǒng)由主控制器STC89C52、LED顯示模塊、鍵掃描電路和系統(tǒng)下載模塊電路組成。利用單片機(jī)定時(shí)輸出Y1、Y2、Y3,定時(shí)時(shí)間分別T1

50、、T2、T3,并用發(fā)光二極管表示其時(shí)間長(zhǎng)短,用LED顯示定時(shí)的剩余時(shí)間。時(shí)間長(zhǎng)短通過(guò)按鍵調(diào)節(jié),串口用來(lái)對(duì)單片機(jī)在線編程。如圖2-1所示:</p><p><b>  各模塊功能如下:</b></p><p>  1.主控模塊:以STC89C52單片機(jī)為核心。</p><p>  2.鍵盤接口模塊:本設(shè)計(jì)共采用按鍵7個(gè),分別與單片機(jī)的三個(gè)I/O管

51、 腳相連,分別對(duì)應(yīng)復(fù)位、可以任意時(shí)間的調(diào)整和退出,任意設(shè)定一個(gè)時(shí) 間,到鬧鈴開關(guān)鍵的功能。</p><p>  3.顯示模塊:顯示器部分是4位LED數(shù)碼管顯示電路組成。</p><p>  4.串口模塊:對(duì)單片機(jī)在線編程</p><p><b>  圖2-1系統(tǒng)結(jié)構(gòu)圖</b></p><p>  2.

52、2.4主控制模塊的方案選擇與設(shè)計(jì)</p><p>  系統(tǒng)的設(shè)計(jì)可采用數(shù)字電路實(shí)現(xiàn),也可以采用單片機(jī)來(lái)完成。若用數(shù)字電路完成,所設(shè)計(jì)的電路相當(dāng)復(fù)雜,大概需要十幾片數(shù)字集成塊,其功能也主要依賴數(shù)字電路的各功能模塊的組合來(lái)實(shí)現(xiàn)。若用單片機(jī)來(lái)設(shè)計(jì)完成,由于其功能的實(shí)現(xiàn)主要通過(guò)軟件編程來(lái)實(shí)現(xiàn)的,那么就降低了硬件電路的復(fù)雜性,所以在該設(shè)計(jì)中采用單片機(jī)作為主控模塊。另外這個(gè)課題設(shè)計(jì)的軟件程序比較簡(jiǎn)單,不需要很強(qiáng)大的單片機(jī),只

53、要用簡(jiǎn)單的單片機(jī)就可以滿足要求,因此我選用了性價(jià)比比較高的低端STC89C52單片機(jī)。</p><p>  基于單片機(jī)系統(tǒng)的定時(shí)器電路包含了如下的功能模塊:</p><p><b>  基本的單片機(jī)系統(tǒng)</b></p><p><b>  單片機(jī)的定時(shí)中斷</b></p><p><b>

54、  單片機(jī)的外圍電路</b></p><p><b>  外部按鍵輸入裝置</b></p><p>  數(shù)碼管LED顯示裝置</p><p>  利用單片機(jī)的定時(shí)器定時(shí)的優(yōu)點(diǎn)是時(shí)間準(zhǔn)確、穩(wěn)定、可靠,并可以利用單片機(jī)的功能很好地進(jìn)行時(shí)間的顯示、指示、輸出。原理簡(jiǎn)單,使用元器件少,相對(duì)來(lái)說(shuō)在實(shí)物調(diào)試時(shí)出現(xiàn)的問題就少。該方案還有一個(gè)好處就

55、是成本低。</p><p>  第三章 硬件電路設(shè)計(jì)</p><p>  3.1 STC單片機(jī)</p><p>  MCS-51單片機(jī)是美國(guó)INTE公司于1980年推出的產(chǎn)品,與MCS-48單片機(jī)相比,它的結(jié)構(gòu)更先進(jìn),功能更強(qiáng),在原來(lái)的基礎(chǔ)上增加了更多的電路單元和指令,指令數(shù)達(dá)111條,MCS-51單片機(jī)可以算是相當(dāng)成功的產(chǎn)品。</p><p&g

56、t;  STC89C52使用經(jīng)典的MCS-51內(nèi)核,但做了很多的改進(jìn)使得芯片具有傳統(tǒng)51單片機(jī)不具備的功能。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。</p><p>  STC89C52是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲(chǔ)器。器件采用高密度、非易失性存儲(chǔ)技術(shù)生

57、產(chǎn),與標(biāo)準(zhǔn) MCS-51 指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器(CPU)和 Flash 存儲(chǔ)單元,STC89C52 單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場(chǎng)合。STC89C52單片機(jī)為40引腳雙列直插芯片,有四個(gè)I/O口P0、P1、P2、P3,每一條I/O線都能獨(dú)立地作輸出或輸入。STC89C52 PDIP管腳封裝,如圖3-1所示。</p><p>  圖3-1 STC89C52 PDIP管腳封

58、裝</p><p>  STC89c52包含以下部分,其結(jié)構(gòu)圖如圖3-2所示</p><p> ?。?)一個(gè)8位微處理器CPU</p><p> ?。?)片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM和特殊功能寄存器SFR</p><p>  (3)片內(nèi)程序存儲(chǔ)器ROM</p><p> ?。?)三個(gè)定時(shí)/計(jì)數(shù)器,可用作定時(shí)器,也可用以對(duì)外部脈

59、沖進(jìn)行計(jì)數(shù)</p><p> ?。?)四個(gè)8位可編程的并行I/O端口,每個(gè)端口既可作輸入,也可作輸 出</p><p>  (6)一個(gè)串行端口,用于數(shù)據(jù)的串行通信</p><p><b> ?。?)中斷控制系統(tǒng)</b></p><p><b>  (8)內(nèi)部時(shí)鐘電路</b></p&g

60、t;<p>  圖3-2 STC89c52內(nèi)部結(jié)構(gòu)圖</p><p>  STC89C52 提供以下標(biāo)準(zhǔn)功能:8k字節(jié) Flash 閃速存儲(chǔ)器,512字節(jié)內(nèi)部 RAM,32 個(gè) I/O 口線,3 個(gè) 16 位定時(shí)/計(jì)數(shù)器,一個(gè) 6 向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),STC89C52 可降至 0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止 CPU

61、 的工作,但允許 RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存 RAM 中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。</p><p>  3.2 STC單片機(jī)模塊介紹</p><p>  3.2.1 復(fù)位電路</p><p>  復(fù)位操作有上電自動(dòng)復(fù)位、按鍵電平復(fù)位和外部脈沖復(fù)位三鐘方式,本次實(shí)驗(yàn)用的是按鍵電平復(fù)位,利用電

62、容的充放電公式來(lái)選擇所需的電容、電阻,能保證復(fù)位信號(hào)高電平持續(xù)時(shí)間大于2個(gè)機(jī)器周期。</p><p><b>  復(fù)位電路圖如下:</b></p><p><b>  圖3-3 復(fù)位電路</b></p><p>  在電路圖中,電容的的大小是10uF,電阻的大小是10k。所以根據(jù)公式,可以算出電容充電到電源電壓的0.7倍(

63、單片機(jī)的電源是5V,所以充電到0.7倍即為3.5V),需要的時(shí)間是10K*10UF=0.1S。</p><p>  在單片機(jī)啟動(dòng)0.1S后,電容C兩端的電壓持續(xù)充電為5V,這是時(shí)候10K電阻兩端的電壓接近于0V,RST處于低電平所以系統(tǒng)正常工作。當(dāng)按鍵按下的時(shí)候,開關(guān)導(dǎo)通,這個(gè)時(shí)候電容兩端形成了一個(gè)回路,電容被短路,所以在按鍵按下的這個(gè)過(guò)程中,電容開始釋放之前充的電量。隨著時(shí)間的推移,電容的電壓在0.1S內(nèi),從5

64、V釋放到變?yōu)榱?.5V,甚至更小。根據(jù)串聯(lián)電路電壓為各處之和,這個(gè)時(shí)候10K電阻兩端的電壓為3.5V,甚至更大,所以RST引腳又接收到高電平。單片機(jī)系統(tǒng)自動(dòng)復(fù)位。</p><p>  該設(shè)計(jì)中復(fù)位電路選用10uF的電容和10k歐姆的電阻組成,在滿足單片機(jī)可靠復(fù)位的前提下該復(fù)位電路的優(yōu)點(diǎn)在于降低復(fù)位引腳的對(duì)地阻抗,可以顯著增強(qiáng)單片機(jī)復(fù)位電路的抗干擾能力。</p><p>  3.2.2 晶振

65、電路</p><p>  單片機(jī)的晶振電路是一種典型的電路,分為內(nèi)部時(shí)鐘和外部時(shí)鐘兩種方式。</p><p>  內(nèi)部時(shí)鐘,是用芯片內(nèi)部振蕩,形成的時(shí)鐘,精度不高,溫飄也較大,不需要外部振蕩器件。出于成本及工藝復(fù)雜的考慮,選擇內(nèi)部時(shí)鐘方式。</p><p>  內(nèi)部時(shí)鐘方式如圖3-4所示:</p><p>  圖3-4 內(nèi)部時(shí)鐘晶振電路<

66、;/p><p>  內(nèi)部時(shí)鐘電路和晶振頻率一般選擇在4MHz~12MHz之間(該設(shè)計(jì)選用12MHz),外接兩個(gè)諧振電容。該電容的典型值為30pF,該設(shè)計(jì)也選用30pF。</p><p>  3.2.3 電源電路</p><p>  本課題選擇USB供電模式,即基于電腦USB口供電,電腦的USB接口可以提供達(dá)到5V/500mA的供電水平,雖然USB接口對(duì)于給大型設(shè)備供電存

67、在不足,但就本課題而言已經(jīng)可以充分滿足需求,所以在設(shè)計(jì)的時(shí)候僅僅是使用插針預(yù)留了電源、地線接口,電源獲取方式為電腦供電。由于采用了此這種設(shè)計(jì)方式省去了普遍使用的LM7805穩(wěn)壓電源電路,所以將低了一部分成本。同時(shí),本課題還設(shè)計(jì)有電源指示電路,發(fā)光二極管串聯(lián)一個(gè)電阻起到了限流的作用,防止二極管燒壞。此處的二極管還起到了防止電流反灌的作用,保護(hù)USB接口正常工作。具體電路如圖3-5所示:</p><p>  圖3-5

68、 USB供電</p><p>  3.2.4 下載電路</p><p>  單片機(jī)是一種數(shù)字集成芯片,數(shù)字電路中只有兩種電平:高電平和低電平。我們暫且假定單片機(jī)的輸入輸出高電平為5V,低電平為0V。而計(jì)算機(jī)串口為RS-232C電平,它是一種負(fù)邏輯電平,原因是其高電平為-12V,低電平為+12V。因此,計(jì)算機(jī)要與單片機(jī)相連,必須使用電平轉(zhuǎn)換芯片。在這里我們使用的是MAX232芯片,采用3線連

69、接方式,即RXD、TXD和GND。該電路是一個(gè)電平轉(zhuǎn)換電路。如圖3-6:</p><p>  圖3-6 電平轉(zhuǎn)換電路</p><p>  3.3 LED與單片機(jī)接口電路</p><p>  4位LED數(shù)碼管有靜態(tài)顯示和動(dòng)態(tài)顯示兩種結(jié)構(gòu)。為了減少元器件及連線,可選用動(dòng)態(tài)顯示的4位一體的LED數(shù)碼管。用單片機(jī)的某個(gè)I/O口送數(shù)碼管的顯示段碼(字符數(shù)據(jù)),用另一I/O口的

70、其中4位經(jīng)過(guò)三極管驅(qū)動(dòng)后分別作為4個(gè)數(shù)碼管的顯示控制信號(hào),當(dāng)三極管導(dǎo)通時(shí)候?qū)?yīng)的數(shù)碼管顯示。如圖3-7。</p><p>  常用的LED顯示器有7段(或8段,8段比7段多了一個(gè)小數(shù)點(diǎn)“dp”段)。這種顯示器有共陽(yáng)極和共陰極兩種。該設(shè)計(jì)中選用的是共陽(yáng)極,LED與單片機(jī)的接線如下圖3-8所示。</p><p>  圖3-8 LED與單片機(jī)的接線</p><p>  共

71、陽(yáng)極LED顯示器的發(fā)光二極管的陽(yáng)極連接在一起,通常該共陽(yáng)極接地。當(dāng)某個(gè)發(fā)光二極管的陰極為低電平時(shí),發(fā)光二極管點(diǎn)亮,相應(yīng)的段被顯示。</p><p>  使用LED顯示器時(shí),為了顯示數(shù)字或符號(hào),要為L(zhǎng)ED顯示器提供代碼,因?yàn)檫@些代碼是通過(guò)段的亮與滅來(lái)顯示不同字形的,因此稱之為代碼。7段發(fā)光二極管,再加上一個(gè)小數(shù)點(diǎn)位,共計(jì)8段,因此提供給LED顯示器的段碼正好一個(gè)字節(jié)。</p><p>  各

72、段字節(jié)中各位的對(duì)應(yīng)關(guān)系如表3-9所示:</p><p>  由于單片機(jī)I/O的電氣特性決定了單片機(jī)的端口的驅(qū)動(dòng)能力有限,一般地,單片機(jī)的端口只是驅(qū)動(dòng)TTL電平,不提供或者提供很小的驅(qū)動(dòng)電流,所以在帶負(fù)載時(shí),單片機(jī)應(yīng)當(dāng)在I/O口加上驅(qū)動(dòng)芯片或使用三極管驅(qū)動(dòng)。該設(shè)計(jì)中使用4個(gè)9012三極管驅(qū)動(dòng)。共陽(yáng)極LED顯示器的八段由單片機(jī)的P0.0~P0.7控制,P2.0~P2.3控制位信號(hào)。當(dāng)P2.0~P2.3中有引腳輸出低電

73、平時(shí),三極管導(dǎo)通,集電極給位控制端供電,從而驅(qū)動(dòng)數(shù)碼管。</p><p>  3.4 發(fā)光二級(jí)管電路設(shè)計(jì)</p><p>  在設(shè)計(jì)此電路時(shí)發(fā)光二極管的電流流向也是有講究的,由于單片機(jī)的驅(qū)動(dòng)電流較小,為了確保能夠通過(guò)單片機(jī)I/O口的電平高低來(lái)實(shí)現(xiàn)發(fā)光二極管的點(diǎn)亮和熄滅,我們通常將發(fā)光二極管按下圖方式與單片機(jī)進(jìn)行連接,如圖3-10所示:</p><p>  圖3-10

74、 二極管連接方式</p><p><b>  3.5 器件選擇</b></p><p>  ·STC89C52:?jiǎn)纹瑱C(jī),控制LED的數(shù)據(jù)顯示。</p><p>  ·LED:一個(gè)四位的8段碼LED,用于顯示單片機(jī)的數(shù)據(jù)。</p><p>  ·9012三極管:驅(qū)動(dòng)LED,相當(dāng)于一個(gè)反相器。&

75、lt;/p><p>  ·按鍵KEY_ST:KEY_ST未按時(shí)時(shí)間正常運(yùn)行,按一下KEY_ST鍵后數(shù)碼管顯示的時(shí)間暫停,這時(shí)可以使用KEY_UP、KEY_DW自行加、減時(shí)間。</p><p>  ·按鍵KEY_UP:當(dāng)時(shí)間暫停之后,按一次KEY_UP鍵數(shù)碼管上的時(shí)間加1。</p><p>  ·按鍵KEY_DW:當(dāng)時(shí)間暫停之后,按一次KEY

76、_DW鍵數(shù)碼管上的時(shí)間減1。</p><p>  ·按鍵KEY_T1:電路上電之后,按下KEY_T1鍵后,開啟定時(shí)器0,時(shí)間從99s開始倒計(jì)時(shí)。</p><p>  ·按鍵KEY_T2:電路上電之后,按下KEY_T2鍵后,開啟定時(shí)器1,時(shí)間從99s開始倒計(jì)時(shí)。</p><p>  ·按鍵KEY_T3:電路上電之后,按下KEY_T3鍵后,

77、開啟定時(shí)器2,時(shí)間從99min開始倒計(jì)時(shí)。</p><p>  ·L2—L9:發(fā)光二極管,通過(guò)單片機(jī)的P1.0-P1.7控制,用以觀看使用的是哪一個(gè)定時(shí)器。</p><p>  3.6 接口連接設(shè)計(jì)</p><p>  ·P0.0—P0.7:接上數(shù)碼管的8個(gè)段選。</p><p>  ·P1.0—P1.7:分別和

78、七個(gè)發(fā)光二極管相連,其中三個(gè)用以顯示使用的是哪一個(gè)定時(shí)器。</p><p>  ·P2.4—P2.6:分別接KEY_UP、KEY_DW、KEY_ST三個(gè)按鍵,控制時(shí)間的自加、自減以及暫停。</p><p>  ·P2.0—P2.3:分別和4個(gè)9012三極管相連,然后接上數(shù)碼管的4個(gè)位選端。</p><p>  ·P2.7,P3.6,P3

79、.7:分別接KEY_T1、KEY_T2、KEY_T3三個(gè)按鍵,控制定時(shí)時(shí)間1、2、3。 </p><p><b>  3.7 功能簡(jiǎn)介</b></p><p>  LED顯示模塊與單片機(jī)的連接中,LED顯示模塊的控制是通過(guò)單片機(jī)的P2.0~P2.3口完成的。按鍵KEY_ST、KEY_UP、KEY_DW完成定時(shí)器的暫停、自加和自減功能。而發(fā)光二極管L2—L4則反映了選用

80、的定時(shí)時(shí)間的不同。</p><p><b>  第四章 軟件設(shè)計(jì)</b></p><p>  本章首先對(duì)設(shè)計(jì)思想即主程序進(jìn)行介紹,然后對(duì)發(fā)光二極管指示程序、鍵掃描程序和數(shù)碼管的顯示程序的設(shè)計(jì)分別進(jìn)行說(shuō)明。</p><p><b>  4.1 主程序</b></p><p>  本次設(shè)計(jì)中,由于要求有

81、定時(shí)器1、2、3,所以程序設(shè)計(jì)中使用了三個(gè)定時(shí)器分別進(jìn)行定時(shí)。數(shù)碼管顯示部分由于最大數(shù)是99,所以使用兩只數(shù)碼管已綽綽有余。為了分清使用的是哪一個(gè)數(shù)碼管,所以又用了三個(gè)發(fā)光二極管進(jìn)行區(qū)分。程序流程圖如下圖4-1所示:</p><p>  圖4-1 主程序流程圖</p><p>  4.2 發(fā)光二極管指示程序</p><p>  發(fā)光二極管的亮滅指示了此刻數(shù)碼管顯示的

82、時(shí)間是使用了三個(gè)定時(shí)器中的哪一個(gè)進(jìn)行的定時(shí)。流程圖如圖4-2所示。</p><p>  圖4-2 發(fā)光二極管指示流程圖</p><p><b>  4.3 鍵掃描程序</b></p><p>  鍵掃描程序中主要是掃描判斷KEY-ST、KEY-UP、KEY-DW這三個(gè)掃描程序如圖4-3所示。</p><p>  圖4-3

83、 按鍵子程序流程圖</p><p>  4.4 定時(shí)器中斷程序</p><p>  程序設(shè)計(jì)中使用了單片機(jī)的三個(gè)定時(shí)器,雖然定時(shí)時(shí)間各不相同,但定時(shí)器中斷流程圖是相同的,所以此處只畫出定時(shí)器0的中斷流程圖,如下圖4-4所示:</p><p>  圖4-4 定時(shí)器0的中斷流程圖</p><p><b>  第五章 設(shè)計(jì)調(diào)試 </

84、b></p><p><b>  5.1 軟件調(diào)試</b></p><p>  5.1.1 Keil軟件及其調(diào)試功能簡(jiǎn)介</p><p>  目前流行的51系列單片機(jī)開發(fā)軟件是德國(guó)Keil公司推出的Keil C51軟件,它是一個(gè)基于32位Windows環(huán)境的應(yīng)用程序,支持C語(yǔ)言和匯編語(yǔ)言編程,其6.0以上的版本將編譯和仿真軟件統(tǒng)一為μVi

85、sion(通常稱為μV2)。Keil提供包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,由以下幾部分組成:μVision IDE集成開發(fā)環(huán)境(包括工程管理器、源程序編輯器、程序調(diào)試器)、C51編譯器、A51匯編器、LIB51庫(kù)管理器、BL51連接/定位器、OH51目標(biāo)文件生成器以及Monitor-51、RTX51實(shí)時(shí)操作系統(tǒng)。</p><p>  應(yīng)用Keil進(jìn)行軟件仿真開發(fā)的

86、主要步驟為:編寫源程序并保存——建立工程并添加源文件——設(shè)置工程——編譯/匯編、連接,產(chǎn)生目標(biāo)文件——程序調(diào)試。Keil使用“工程”(Project)的概念,對(duì)工程(而不能對(duì)單一的源程序)進(jìn)行編譯/匯編、連接等操作。工程的建立、設(shè)置、編譯/匯編及連接產(chǎn)生目標(biāo)文件的方法非常易于掌握。首先選擇菜單File—New…,在源程序編輯器中輸入?yún)R編語(yǔ)言或C語(yǔ)言源程序(或選擇File—Open…,直接打開已用其他編輯器編輯好的源程序文檔)并保存,注意

87、保存時(shí)必須在文件名后加上擴(kuò)展名.asm(.a51)或.c;然后選擇菜單Project—New Project…,建立新工程并保存(保存時(shí)無(wú)需加擴(kuò)展名,也可加上擴(kuò)展名.uv2);工程保存后會(huì)立即彈出一個(gè)設(shè)備選擇對(duì)話框,選擇CPU后點(diǎn)確定返回主界面。這時(shí)工程管理窗口的文件頁(yè)(Files)會(huì)出現(xiàn)“Target1”,將其前面+號(hào)展開,接著選擇Source Group1,右擊鼠標(biāo)彈出快捷菜單,選擇“Add File to Group ‘Sourc

88、e Group1’”,出現(xiàn)一個(gè)對(duì)話框,要求尋找并加入源文件(在加入一個(gè)源文件后,該對(duì)話框不</p><p>  成功編譯/匯編、連接后,選擇菜單Debug—Start/Stop Debug Session(或按Ctrl+F5鍵)進(jìn)入程序調(diào)試狀態(tài),Keil提供對(duì)程序的模擬調(diào)試功能,內(nèi)建一個(gè)功能強(qiáng)大的仿真CPU以模擬執(zhí)行程序。Keil能以單步執(zhí)行(按F11或選擇Debug—Step)、過(guò)程單步執(zhí)行(按F10或選擇De

89、bug—Step Over)、全速執(zhí)行等多種運(yùn)行方式進(jìn)行程序調(diào)試。如果發(fā)現(xiàn)程序有錯(cuò),可采用在線匯編功能對(duì)程序進(jìn)行在線修改(Debug—Inline Assambly…),不必執(zhí)行先退出調(diào)試環(huán)境、修改源程序、對(duì)工程重新進(jìn)行編譯/匯編和連接、然后再次進(jìn)入調(diào)試狀態(tài)的步驟。對(duì)于一些必須滿足一定條件(如按鍵被按下等)才能被執(zhí)行的、難以用單步執(zhí)行方式進(jìn)行調(diào)試的程序行,可采用斷點(diǎn)設(shè)置的方法處理(Debug—Insert/Remove Breakpoi

90、nt或Debug—Breakpoints…等)。在模擬調(diào)試程序后,還須通過(guò)編程器將.hex目標(biāo)文件燒寫入單片機(jī)中才能觀察目標(biāo)樣機(jī)真實(shí)的運(yùn)行狀況。</p><p>  Keil軟件Eval版(免費(fèi)產(chǎn)品)的功能與商業(yè)版相同,只是程序的最大代碼量不得超過(guò)2kB,但對(duì)初學(xué)者而言已是足夠。Keil軟件由于其強(qiáng)大的軟件仿真功能,友好的用戶界面以及易于掌握的特點(diǎn)而受到工程技術(shù)人員的歡迎,有人甚至認(rèn)為Keil是目前最好的51單片

91、機(jī)開發(fā)應(yīng)用軟件[12]。</p><p>  下圖為Keil的工作界面:</p><p>  5.1.2 C語(yǔ)言簡(jiǎn)介</p><p>  單片機(jī)的 C語(yǔ)言是一種編譯型程序設(shè)計(jì)語(yǔ)言,它兼顧了多種高級(jí)語(yǔ)言的特點(diǎn),并具備匯編語(yǔ)言的功能。C語(yǔ)言具有功能豐富的庫(kù)函數(shù),運(yùn)算速度快,編譯效率高,有良好的可移植性,而且可以實(shí)現(xiàn)直接對(duì)系統(tǒng)硬件的控制。此外,C語(yǔ)言程序具有完整的程序模塊

92、結(jié)構(gòu),從而為軟件開發(fā)中采用模塊化程序設(shè)計(jì)方法提供了有力的保障。</p><p>  與匯編相比,有如下優(yōu)點(diǎn): </p><p>  (1)對(duì)單片機(jī)的指令系統(tǒng)不要求了解,僅要求對(duì) 51的存儲(chǔ)器結(jié)構(gòu)有初步了解,至于寄存器分配、不同存儲(chǔ)器的尋址及數(shù)據(jù)類型等細(xì)節(jié)均由編譯器管理。 </p><p>  (2)程序有規(guī)范的結(jié)構(gòu),可分為不同的函數(shù)。這種方式可使程序結(jié)構(gòu)化,將可變的

93、選擇與特殊操作組合在一起,改善了程序的可讀性。 </p><p>  (3)編程及程序調(diào)試時(shí)間顯著縮短,從而提高效率。 提供的庫(kù)包含許多標(biāo)準(zhǔn)子程序,具有較強(qiáng)的數(shù)據(jù)處理能將已編好程序可容易的植入新程序,因?yàn)樗哂蟹奖愕哪K化編程技術(shù)。 單片機(jī) C語(yǔ)言作為一種非常方便的語(yǔ)言而得到廣泛的支持,C語(yǔ)言程序本身并不依賴于機(jī)器硬件系統(tǒng),基本上不做修改就可根據(jù)單片機(jī)的不同較快地移植過(guò)來(lái)。 綜上所述,單片機(jī)的四種編程語(yǔ)言各有各的

94、優(yōu)缺點(diǎn),作為單片機(jī)初學(xué)者,筆者認(rèn)為還是應(yīng)該先學(xué)習(xí)匯編語(yǔ)言,不一定要學(xué)得很精很熟悉,但要有一定的了解。因?yàn)閰R編語(yǔ)言程序除了具有簡(jiǎn)潔明快、跳躍性強(qiáng)、占 ROM資源少等優(yōu)點(diǎn)以外,還因它和單片機(jī)底層硬件緊密聯(lián)系,可以讓初學(xué)者更加了解單片機(jī)硬件系統(tǒng)各種資源,熟悉各個(gè)功能模塊的作用,從而為編出更高效率的程序打好扎實(shí)的基礎(chǔ)。 用單片機(jī)匯編語(yǔ)言編寫的程序代碼效率高,但學(xué)習(xí)起來(lái)相對(duì)難度較大,而且對(duì)于一個(gè)大型項(xiàng)目,如果完全采用匯編語(yǔ)言來(lái)編程,就顯得很繁瑣,

95、尤其是遇到算法方面的問題時(shí),匯編語(yǔ)言根本就應(yīng)付不了。況且現(xiàn)在單片機(jī)的主頻在不斷的提高,在高頻率時(shí)鐘的作用下,我們完全不需要那么高效率的代碼;另外,單片機(jī)的 ROM和 RAM空間也在不斷的增加,足夠裝得下你用 C語(yǔ)言</p><p>  當(dāng)然,有時(shí)候用單片機(jī) C語(yǔ)言也不能夠?qū)崿F(xiàn)所有要編寫程序的功能,比如當(dāng)想編寫一個(gè)精確控制的定時(shí)程序時(shí),用起匯編語(yǔ)言來(lái)還是比較方便的。因此想成為一個(gè)優(yōu)秀的單片機(jī)編程技術(shù)員,最好就是能懂

96、得單片機(jī) C語(yǔ)言和匯編語(yǔ)言混合編程。</p><p>  5.1.3 Keil軟件調(diào)試</p><p>  軟件的調(diào)試必須在開發(fā)系統(tǒng)的支持下進(jìn)行。雖然是分別編寫的各個(gè)模塊程序,但是除了定時(shí)中斷、數(shù)碼管顯示和初始化子程序外,其他的如按鍵掃描程序等都是直接放在主程序中,所以在調(diào)試時(shí)直接調(diào)試的總程序。下面概略介紹本人認(rèn)為最重要的子程序—定時(shí)中斷子程序。</p><p> 

97、 如下所示是定時(shí)中斷子程序,分為定時(shí)器0、定時(shí)器1、定時(shí)器2三個(gè)中斷子程序。</p><p>  void timer0() interrupt 1</p><p><b>  {</b></p><p>  TH0=(65536-50000)/256; //定時(shí)器0裝初值</p><p>  TL0=(65536-5

98、0000)%256;</p><p><b>  t++; </b></p><p><b>  if(t==20)</b></p><p><b>  {</b></p><p><b>  t=0;</b></p><p>

99、;<b>  num--;</b></p><p>  if(num==-1)</p><p><b>  num=99;</b></p><p>  if(!KEY_ST)//暫停鍵按下</p><p><b>  {</b></p><p>  

100、delay(5);//按鍵消抖</p><p>  if(!KEY_ST)</p><p><b>  {</b></p><p>  while(!KEY_ST);//等待按鍵釋放</p><p><b>  TR0=0;</b></p><p><b>  }

101、</b></p><p><b>  }</b></p><p><b>  } </b></p><p><b>  }</b></p><p>  void timer1() interrupt 3</p><p><b&

102、gt;  {</b></p><p>  TH1=(65536-50000)/256; //定時(shí)器1裝初值</p><p>  TL1=(65536-50000)%256;</p><p><b>  t1++;</b></p><p>  if(t1==20)</p><p>&l

103、t;b>  {</b></p><p><b>  t1=0;</b></p><p><b>  num1--;</b></p><p>  if(num1==-1)</p><p><b>  num1=88;</b></p><p&

104、gt;  if(!KEY_ST) //暫停鍵按下</p><p><b>  {</b></p><p>  delay(5); //按鍵消抖</p><p>  if(!KEY_ST)</p><p><b>  {</b></p><p>  while(!KEY_S

105、T); //等待按鍵釋放</p><p><b>  TR1=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>

106、  }</b></p><p>  void timer2() interrupt 5</p><p><b>  {</b></p><p>  TH2=(65536-50000)/256; //定時(shí)器2裝初值</p><p>  TL2=(65536-50000)%256;</p><

107、;p><b>  t2++;</b></p><p><b>  TF2=0;</b></p><p>  if(t2==1200)</p><p><b>  {</b></p><p><b>  t2=0;</b></p><

108、;p><b>  num2--;</b></p><p>  if(num2==-1)</p><p><b>  num2=77;</b></p><p>  if(!KEY_ST) //暫停鍵按下</p><p><b>  {</b></p>&

109、lt;p>  delay(5); //按鍵消抖</p><p>  if(!KEY_ST)</p><p><b>  {</b></p><p>  while(!KEY_ST); //等待按鍵釋放</p><p><b>  TR2=0;</b></p><p>

110、;<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  5.2 硬件調(diào)試</b></p><p&

111、gt;  5.2.1 Protel 99 SE 簡(jiǎn)介</p><p>  Protel99SE是Protel公司近10年來(lái)致力于Windows平臺(tái)開發(fā)的最新結(jié)晶,能實(shí)現(xiàn)從電學(xué)概念設(shè)計(jì)到輸出物理生產(chǎn)數(shù)據(jù),以及這之間的所有分析、驗(yàn)證和設(shè)計(jì)數(shù)據(jù)管理。因而今天的Protel最新產(chǎn)品已不是單純 的PCB(印制電路板)設(shè)計(jì)工具,而是一個(gè)系統(tǒng)工具,覆蓋了以PCB為核心的整個(gè)物理設(shè)計(jì)。 最新版本的Protel軟件可以毫無(wú)障礙地讀

112、Orcad、Pads、Accel(PCAD)等知名EDA公司設(shè)計(jì)文件,以便用戶順利過(guò)渡到新的EDA平臺(tái)。</p><p>  Protel99 SE共分5個(gè)模塊,分別是原理圖設(shè)計(jì)、PCB設(shè)計(jì)(包含信號(hào)完整性分析)、自動(dòng)布線器、原理圖混合信號(hào)仿真、PLD設(shè)計(jì)。 以下介紹一些Protel99SE的部分最新功能:</p><p>  ◆可生成30多種格式的電氣連接網(wǎng)絡(luò)表;</p>

113、<p>  ◆強(qiáng)大的全局編輯功能;</p><p>  ◆在原理圖中選擇一級(jí)器件,PCB中同樣的器件也將被選中; </p><p>  ◆同時(shí)運(yùn)行原理圖和PCB,在打開的原理圖和PCB圖間允許雙向交叉查找元器件、引腳、網(wǎng)絡(luò)</p><p>  ◆既可以進(jìn)行正向注釋元器件標(biāo)號(hào)(由原理圖到PCB),也可以進(jìn)行反向注釋(由PCB到原理圖),以保持電氣原理圖和PC

114、B在設(shè)計(jì)上的一致性;</p><p>  ◆滿足國(guó)際化設(shè)計(jì)要求(包括國(guó)標(biāo)標(biāo)題欄輸出,GB4728國(guó)標(biāo)庫(kù)); * 方便易用的數(shù)?;旌戏抡妫嫒軸PICE 3f5);</p><p>  ◆支持用CUPL語(yǔ)言和原理圖設(shè)計(jì)PLD,生成標(biāo)準(zhǔn)的JED下載文件; * PCB可設(shè)計(jì)32個(gè)信號(hào)層,16個(gè)電源-地層和16個(gè)機(jī)加工層;</p><p>  ◆強(qiáng)大的“規(guī)則驅(qū)動(dòng)”設(shè)計(jì)環(huán)境,

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論