版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 當(dāng)今社會,單片機(jī)已經(jīng)普及到我們生活、工作的各個方面,已經(jīng)發(fā)展成為一門比較成熟的技術(shù)。定時器在日常生活、工業(yè)控制、交通燈管理、檢測、報警等方面的應(yīng)用越來越廣泛,同時人們對定時器的要求也越來越高。本課題設(shè)計一個基于 STC89C52構(gòu)成的實(shí)用定時器,這在某些應(yīng)用中具有一定的實(shí)用價值。</p><p> 本
2、課題設(shè)計了一個基于 STC89C52的定時器,首先介紹了設(shè)計內(nèi)容及要求,介紹了定時器的設(shè)計思路以及功能模塊的劃分,并對各模塊實(shí)現(xiàn)的具體功能進(jìn)行了說明。然后結(jié)合框圖,介紹了定時器的工作原理,之后詳細(xì)介紹了定時器具體單元電路的設(shè)計與分析。</p><p> 該定時器除具有基本的定時功能外,還具有定時時間連續(xù)可調(diào)、倒計時顯示和定時開關(guān)功能。它造價低,功能全,整體功能性價比高,配以LED顯示器,它適應(yīng)各種場合的定時預(yù)警
3、之用。而且設(shè)計巧妙,體積小,功能強(qiáng),計時范圍大,用途廣泛,操作攜帶方便,是一種較理想的定時工具。</p><p> 關(guān)鍵詞:定時器; STC89C52;連續(xù)可調(diào);倒計時顯示</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è)計背景3</b></p><p> 1.2論文研究內(nèi)容5</p><p> 1.3 論文結(jié)構(gòu)安排5</p><p> 第二章 整體方案設(shè)計6</
11、p><p> 2.1設(shè)計任務(wù)及要求6</p><p> 2.2系統(tǒng)設(shè)計整體方案6</p><p> 2.2.1時鐘計時的方案選擇6</p><p> 2.2.2時鐘顯示的方案選擇8</p><p> 2.2.3系統(tǒng)硬件的整體設(shè)計8</p><p> 2.2.4主控制模塊的方案選
12、擇與設(shè)計9</p><p> 第三章 硬件電路設(shè)計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ā)光二級管電路設(shè)計18</p><p> 3.5器件選擇19</p><p> 3.6 接口連接設(shè)計20</p><p> 3.7 功能簡
14、介20</p><p> 第四章 軟件設(shè)計20</p><p><b> 4.1主程序20</b></p><p> 4.2發(fā)光二極管指示程序21</p><p> 4.3鍵掃描程序22</p><p> 4.1定時器中斷程序24</p><p>
15、第五章 設(shè)計調(diào)試25</p><p> 5.1 軟件調(diào)試25</p><p> 5.1.1 Keil軟件及其調(diào)試功能簡介25</p><p> 5.1.2 C語言簡介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 簡介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ī)已滲透到生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機(jī)的足跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實(shí)時控制和數(shù)據(jù)處理,廣泛使用的各種智
19、能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說全自動控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計算機(jī)應(yīng)用與智能化控制的工程師和科學(xué)家。科技越發(fā)達(dá),智能化的東西就越多。看來學(xué)習(xí)單片機(jī)是社會發(fā)展的必然需求。 </p><p> 單片微型計算機(jī)簡稱單片機(jī),是典型的嵌入式微控制器(Microcont
20、roller Unit), 常用英文字母的縮寫MCU表示單片機(jī),單片機(jī)又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機(jī)系統(tǒng)集成到一個芯片上。單片機(jī)由運(yùn)算器,控制器,存儲器,輸入輸出設(shè)備構(gòu)成,相當(dāng)于一個微型的計算機(jī)(最小系統(tǒng)),和計算機(jī)相比,單片機(jī)缺少了外圍設(shè)備等。概括的講:一塊芯片就成了一臺計算機(jī)。它的體積小、質(zhì)量輕、價格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時,學(xué)習(xí)使用單片機(jī)是了解計算機(jī)原理與結(jié)構(gòu)的最佳選擇。它最
21、早是被用在工業(yè)控制領(lǐng)域。</p><p> 由于單片機(jī)在工業(yè)控制領(lǐng)域的廣泛應(yīng)用,單片機(jī)由僅有CPU的專用處理器芯片發(fā)展而來。最早的設(shè)計理念是通過將大量外圍設(shè)備和CPU集成在一個芯片中,使計算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對體積要求嚴(yán)格的控制設(shè)備當(dāng)中。</p><p> 單片機(jī)由于將cpu,內(nèi)存和一些必要的接口集成到一個芯片上,并且針對面向控制功能將結(jié)構(gòu)做了一定的優(yōu)化,所以它具備通用芯
22、片不具有的特點(diǎn)。目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價格和外圍電路內(nèi)裝化等幾個方面發(fā)展。因此,單片機(jī)被廣泛應(yīng)用于測控系統(tǒng),智能儀表儀器,機(jī)電一體化產(chǎn)品,智能接口以及單片機(jī)的多系統(tǒng)等領(lǐng)域。 它的應(yīng)用主要表現(xiàn)在以下幾個方面:</p><p> (1)單片機(jī)在智能儀表中的應(yīng)用 </p><p> 單片機(jī)廣泛地用于各種儀器儀表
23、,使儀器儀表智能化,并可以提高測量的自動化程度和精度,簡化儀器儀表的硬件結(jié)構(gòu),提高其性能價格比。 </p><p> (2)單片機(jī)在機(jī)電一體化中的應(yīng)用 </p><p> 機(jī)電一體化是機(jī)械工業(yè)發(fā)展的方向。機(jī)電一體化產(chǎn)品是指集成機(jī)械技術(shù)、微電子技術(shù)、計算機(jī)技術(shù)于一體,具有智能化特征的機(jī)電產(chǎn)品,例如微機(jī)控制的車床、鉆床等。單片機(jī)作為產(chǎn)品中的控制器,能充分發(fā)揮它的體積小、可靠性高、功能強(qiáng)等優(yōu)
24、點(diǎn),可大大提高機(jī)器的自動化、智能化程度。 </p><p> (3)單片機(jī)在實(shí)時控制中的應(yīng)用 </p><p> 單片機(jī)廣泛地用于各種實(shí)時控制系統(tǒng)中。例如,在工業(yè)測控、航空航天、尖端武器、機(jī)器人等各種實(shí)時控制系統(tǒng)中,都可以用單片機(jī)作為控制器。單片機(jī)的實(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)一般由若干臺功能各異的單片機(jī)組成,各自完成特定的任務(wù),它們通過串行通信相互聯(lián)系、協(xié)調(diào)工作。單片機(jī)在這種系統(tǒng)中往往作為一個終端機(jī),安裝在系統(tǒng)的某些節(jié)點(diǎn)上,對現(xiàn)場信息進(jìn)行實(shí)時的測量和控制。單片機(jī)的高可靠性和強(qiáng)抗干擾能力,使它可以置于惡劣環(huán)境的前端工作。 </p><p> (5)單片機(jī)在人
26、類生活中的應(yīng)用 </p><p> 自從單片機(jī)誕生以后,它就步入了人類生活,如洗衣機(jī)、電冰箱、電子玩具、收錄機(jī)等家用電器配上單片機(jī)后,提高了智能化程度,增加了功能,倍受人們喜愛。單片機(jī)將使人類生活更加方便、舒適、豐富多彩。</p><p> 綜合所述,單片機(jī)已成為計算機(jī)發(fā)展和應(yīng)用的一個重要方面。另一方面,單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計思想和設(shè)計方法。從前
27、必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過軟件方法來實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。 </p><p> 本文在對單片機(jī)研究的基礎(chǔ)上,以 STC89C52為核心,對定時器進(jìn)行設(shè)計與應(yīng)用,通過對其原理深入分析,探討以 STC89C52單片機(jī)構(gòu)成定時器的實(shí)現(xiàn)方法,介紹其設(shè)計原理及方法,給出定時器軟件設(shè)計??紤]到存在的各種干擾對系統(tǒng)的影響,從軟、
28、硬件設(shè)計兩個方面進(jìn)行分析,采取相應(yīng)的措施以增強(qiáng)系統(tǒng)的抗干擾能力。</p><p><b> 1.1 設(shè)計背景</b></p><p> 近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月異地更新。定時、延時裝置在工業(yè)控制中被廣泛的應(yīng)用。它可以實(shí)現(xiàn)信號的異步傳送,根據(jù)控制要求設(shè)置接收到和做出相關(guān)反應(yīng)的時間差。被廣泛的用于儀表、通信、
29、辦公自動化、軍工領(lǐng)域及各種控制柜、控制臺,使用極為廣闊。在實(shí)時檢測和自動控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個核心部件來使用,根據(jù)具體硬件結(jié)構(gòu)及具體應(yīng)用對象的特點(diǎn),與軟件相結(jié)合,加以完善。單片機(jī)之所以在工業(yè)控制中有大量的應(yīng)用,就在于它有獨(dú)特的定時、計數(shù)功能。在工業(yè)檢測、控制中,許多場合都要用到計數(shù)或定時功能。例如,對外部脈沖進(jìn)行計數(shù)、產(chǎn)生精確的定時時間等。人類最早使用的定時工具是沙漏或水漏,但在鐘表誕生發(fā)展成熟之后,人們開始嘗試使
30、用這種全新的計時工具來改進(jìn)定時器,達(dá)到準(zhǔn)確控制時間的目的。</p><p> “定時器”總的來說有兩種類型。一種是基于模擬技術(shù)的傳統(tǒng)產(chǎn)品,這種定時器功能簡單,盡管曾被廣泛應(yīng)用過,但已進(jìn)入淘汰之列。另一種是基于數(shù)字技術(shù)的新一代產(chǎn)品,這種產(chǎn)品功能強(qiáng),是前者的換代之物。隨著單片機(jī)性能價格比的不斷提高,新一代產(chǎn)品的應(yīng)用越來越廣泛,大可構(gòu)成復(fù)雜的工業(yè)過程控制系統(tǒng),完成復(fù)雜的控制功能,小則可以用于家電控制,甚至能夠用來做兒
31、童電子玩具。它功能強(qiáng)大,體積小,重量輕,靈活好用,配以適當(dāng)?shù)慕涌谛酒梢詷?gòu)造各種各樣、功能各異的微電子產(chǎn)品。</p><p> 定時器按結(jié)構(gòu)可分為機(jī)械式、電動式和電子式3類。 </p><p> 機(jī)械式定時器:以發(fā)條為原動力,用擒縱調(diào)速器控制走時精度,通過齒輪傳動和凸輪,按時間控制機(jī)構(gòu)預(yù)置的時段操縱執(zhí)行機(jī)構(gòu)動作。計時精度要求不高的定時器(如風(fēng)扇定時器、洗衣機(jī)定時器、廚房用定時器、照相
32、暗房用定時器、電視機(jī)控制用定時器、電燈開關(guān)定時器),一般采用無固有振動周期的調(diào)速器。這些定時器都是在手動上發(fā)條的同時預(yù)置時限,定時精度不高,但結(jié)構(gòu)簡單,使用方便。計時精度要求高、定時范圍在3~12小時的定時器,一般采用擺輪游絲調(diào)速器。</p><p> 電動式定時器:用交流同步電動機(jī)或石英步進(jìn)電機(jī)驅(qū)動,通過齒輪傳動和凸輪簧片觸點(diǎn)機(jī)構(gòu),按預(yù)置的時段或時刻控制執(zhí)行機(jī)構(gòu)。其中短時段控制的電動式定時器可用于程序控制式洗
33、衣機(jī)、洗碗機(jī)、微波爐、烘箱及時間繼電器等;長時段電動式定時器是一種24小時或7天程序控制的開關(guān)裝置,可預(yù)置開關(guān)動作多次,最短時間控制間隔一般為15分鐘,可用于用戶用電情況監(jiān)控、照明控制、實(shí)驗(yàn)室裝置控制、空調(diào)器控制和自動生產(chǎn)線上某些設(shè)備的定時控制等。</p><p> 電子式定時器:利用石英振蕩器或民用交流電的標(biāo)準(zhǔn)頻率,經(jīng)過分頻計數(shù)組成時間累加器或數(shù)字鐘,按照預(yù)置的時間編碼輸出控制信號。這種定時器走時精確,時間設(shè)
34、定沒有誤差,定時精度高,控制程序多。其中長時段定時器最小控制時段一般為1分鐘,配上微處理器后能精確地編制一年的時間程序,組成多路可編程序的定時器。電子式定時器在工業(yè)自動化控制系統(tǒng)中應(yīng)用廣泛,它也是節(jié)約能源管理中一種有效的技術(shù)措施。電子定時器類的電子定時開關(guān)鐘,可用于按高、平、低峰用電收取不同電費(fèi)制度的場合,它將一天內(nèi)的用電高峰、平峰、低谷時間在定時開關(guān)中設(shè)定,并分別接通3種電表進(jìn)行計費(fèi)。電子式定時器在科學(xué)實(shí)驗(yàn)中和在微波爐、電飯鍋、洗衣機(jī)
35、等電器中也有使用。</p><p> 本設(shè)計開發(fā)了一種基于單片機(jī)的多用途定時器。它造價低,功能全,整體功能價格比高,配以小鍵盤和LED顯示器,它適應(yīng)各種場合的定時預(yù)警之用。而且設(shè)計巧妙,體積小,功能強(qiáng),計時范圍大,用途廣泛,操作攜帶方便,是一種較理想的定時工具。</p><p> 1.2 論文研究內(nèi)容</p><p> 基于單片機(jī)的定時器電路包含了如下的功能模
36、塊:1,以STC89C52為核心的主控模塊;2,四位LED顯示模塊;3,電源供電模塊;4,鍵盤掃描模塊;5,下載模塊。</p><p> 該系統(tǒng)利用單片機(jī)的定時器定時,時間準(zhǔn)確、穩(wěn)定、可靠,并可以利用單片機(jī)的功能很好地進(jìn)行時間的顯示、指示,輸出。原理簡單,使用元器件少。而且成本低。用單片機(jī)完全可以實(shí)現(xiàn)定時功能。</p><p> 1.3 論文結(jié)構(gòu)安排</p><p&
37、gt; 第一章,前言。介紹了本課題研究的目的背景和本次論文的結(jié)構(gòu)框架。</p><p> 第二章,整體方案設(shè)計。介紹了本設(shè)計的任務(wù)要求和整體的方案設(shè)計。</p><p> 第三章,硬件電路設(shè)計。介紹了本設(shè)計所需要的各芯片及接口連接。</p><p> 第四章,軟件設(shè)計。介紹了所用到的軟件和各模塊的軟件流程圖。</p><p> 第五
38、章,設(shè)計調(diào)試。介紹軟件仿真調(diào)試與硬件調(diào)試。</p><p> 第六章,總結(jié)。對本次設(shè)計過程中的一些學(xué)習(xí)心得。</p><p> 致謝。感謝指導(dǎo)老師和幫助我的同學(xué)。</p><p> 第二章 整體方案設(shè)計</p><p> 2.1 設(shè)計任務(wù)及要求</p><p> 設(shè)計一個基于單片機(jī)控制的專用定時器。要求定時器
39、可以實(shí)現(xiàn)三個定時時間的顯示,而且每個時間的初值都可以改變,獨(dú)立完成系統(tǒng)的分析、設(shè)計和程序編寫,記錄開發(fā)過程中的問題及解決方法,要有計算過程和原理圖,以及獨(dú)立的穩(wěn)定電源。</p><p><b> 設(shè)計主要指標(biāo)參數(shù):</b></p><p> (1) 定時時間1。1s-99s,可調(diào)。</p><p> (2) 定時時間2。1s-99s,可調(diào)
40、。</p><p> (3) 定時時間3。1min-99min,可調(diào)。</p><p> (4) 每個時間的初始值、設(shè)定值都可以改變。</p><p> (5) 所有時間數(shù)字均可調(diào)。</p><p> (6) 用LED數(shù)碼管顯示剩余時間。</p><p> 2.2 系統(tǒng)設(shè)計整體方案</p>&l
41、t;p> 按照系統(tǒng)設(shè)計功能的要求,初步確定設(shè)計系統(tǒng)由主控模塊、顯示模塊、鍵掃描電路模塊、電源供電模塊、下載模塊等組成。設(shè)計采用STC89系列單片機(jī),以C語言為程序設(shè)計的基礎(chǔ),設(shè)計出多功能定時器。</p><p> 2.2.1時鐘計時的方案選擇</p><p> 單片機(jī)的接口信號是數(shù)字信號。要想用單片機(jī)獲取時間這類非電信號的信息,必須使用時間芯片,將時間信息轉(zhuǎn)換為電流或電壓輸出。
42、如果轉(zhuǎn)換后的電流或電壓輸出是模擬信號,還必須進(jìn)行A/D轉(zhuǎn)換,以滿足單片機(jī)接口的需要。如果是數(shù)字信號就可以直接送往單片機(jī)進(jìn)行數(shù)據(jù)處理。</p><p> 方案一:比較傳統(tǒng)的基于單片機(jī)的時鐘設(shè)計可以采用單片機(jī)內(nèi)部的晶振來產(chǎn)生脈沖,然后通過單片機(jī)內(nèi)部的計時器經(jīng)過分頻產(chǎn)生秒脈沖,然后通過軟件編程來實(shí)現(xiàn)時鐘的顯示,這種設(shè)計方案的優(yōu)點(diǎn)是外圍器件少,電路簡單清晰,電路焊接容易,出問題的故障幾率小。但是這種方案需由軟件編程來實(shí)
43、現(xiàn)秒脈沖的產(chǎn)生,編程相對來說比較復(fù)雜,而且也不利于排故。另外由單片機(jī)內(nèi)部時鐘產(chǎn)生的秒脈沖由于受到溫漂的影響和程序執(zhí)行時的延時的影響,而使的計時會產(chǎn)生不定的誤差,即使設(shè)計時間誤差補(bǔ)償程序也很難實(shí)現(xiàn)提供準(zhǔn)確時間的功能。另外,這種電路設(shè)計方案的另外一個設(shè)計要求就是晶振的選擇要求晶振的振蕩頻率必須通過分頻得到秒脈沖。這種設(shè)計還有一個非常大的缺點(diǎn)就是如果單片機(jī)斷電,時間計時就停止,再次上電時又從初始設(shè)定重新計時,這樣就需要在每次上電都調(diào)整時間,比
44、較麻煩。</p><p> 方案二:在傳統(tǒng)的基于單片機(jī)的數(shù)字時鐘設(shè)計的基礎(chǔ)上經(jīng)過一些改進(jìn),引入12887時間芯片,將電路的控制部分和計時部分分開,電路的控制部分為單片機(jī),計時部分為12887時間芯片。12887芯片是獨(dú)立計時,并且具有掉電保護(hù)功能,內(nèi)部自帶鋰電池,能夠在斷電的情況下繼續(xù)計時,主電路恢復(fù)供電之后能夠不必調(diào)整時間,為時鐘的日常操作省去了很大的麻煩,而且這種設(shè)計更節(jié)能,在需要觀察時間的時候比如白天就可
45、以給主電路通電。而在夜晚不需要觀察時鐘的時候就可以給主電路斷電,這樣可以節(jié)約大量能量。</p><p> 時鐘芯片使用美國DALLAS公司推出的一種高性能、低功耗、帶RAM和內(nèi)置電池的實(shí)時時鐘DS12887。采用DS12887作為主要計時芯片,可以做到計時準(zhǔn)確。更重要的是,DS12887可以在外部電源斷電的情況下繼續(xù)計時,在沒有外部供電的情況下,DS12887可以連續(xù)計時10年以上。</p>&l
46、t;p> 時間芯片12887采用了內(nèi)部集成晶振的電路,并且具有內(nèi)部溫漂補(bǔ)償電路設(shè)計。能夠準(zhǔn)確計時,提供精確的時間,這樣就簡化了電路的器件選擇,另外也使程序的設(shè)計更加簡潔。</p><p> 比較上述兩種方案可以看出,第二種方案計時更加準(zhǔn)確而且電路硬件設(shè)計先對來說并不復(fù)雜,軟件設(shè)計更加簡潔。為了減少實(shí)物的制作難度和節(jié)約成本,我決定選擇第一種方案。</p><p> 2.2.2時鐘
47、顯示的方案選擇</p><p> 方案一:時鐘的顯示可以用4位LED數(shù)碼管顯示,4位LED數(shù)碼管顯示電路耗能多,而且顯示位數(shù)有限,每增加一位都要在程序設(shè)計和硬件設(shè)計方面增加很多的工作量,不利于電路的擴(kuò)展,而且無法顯示年、月、日、星期這些漢字,使得顯示不夠直觀,靈活。但是這種設(shè)計方案在顯示位數(shù)比較少時性價比比較高,價格便宜。</p><p> 方案二:采用LCD液晶顯示器顯示。而LCD液
48、晶顯示則耗能少,能夠顯示年、月、日、星期等漢字,在顯示方面更加靈活,而且改變顯示時只要改變軟件設(shè)計就可以,不用改變硬件電路的設(shè)計,易于電路的功能擴(kuò)展。電路的軟件設(shè)計也很簡單。另外,這種設(shè)計硬件更加簡潔。采用LCD液晶顯示方案的缺點(diǎn)是在顯示位數(shù)比較少時,價格略顯昂貴。</p><p> 比較上述兩種方案可以看出方案二耗能少,顯示靈活,易于電路擴(kuò)展而且不管是軟件設(shè)計還是硬件設(shè)計都比較簡單。為了減少實(shí)物的制作難度和節(jié)
49、約成本,我決定選擇第一種方案。</p><p> 綜上所述,本設(shè)計采用單片機(jī)內(nèi)部時鐘計時方式,用4位LED顯示時間。</p><p> 2.2.3系統(tǒng)硬件的整體設(shè)計</p><p> 主控芯片使用51系列STC89C52單片機(jī),系統(tǒng)由主控制器STC89C52、LED顯示模塊、鍵掃描電路和系統(tǒng)下載模塊電路組成。利用單片機(jī)定時輸出Y1、Y2、Y3,定時時間分別T1
50、、T2、T3,并用發(fā)光二極管表示其時間長短,用LED顯示定時的剩余時間。時間長短通過按鍵調(diào)節(jié),串口用來對單片機(jī)在線編程。如圖2-1所示:</p><p><b> 各模塊功能如下:</b></p><p> 1.主控模塊:以STC89C52單片機(jī)為核心。</p><p> 2.鍵盤接口模塊:本設(shè)計共采用按鍵7個,分別與單片機(jī)的三個I/O管
51、 腳相連,分別對應(yīng)復(fù)位、可以任意時間的調(diào)整和退出,任意設(shè)定一個時 間,到鬧鈴開關(guān)鍵的功能。</p><p> 3.顯示模塊:顯示器部分是4位LED數(shù)碼管顯示電路組成。</p><p> 4.串口模塊:對單片機(jī)在線編程</p><p><b> 圖2-1系統(tǒng)結(jié)構(gòu)圖</b></p><p> 2.
52、2.4主控制模塊的方案選擇與設(shè)計</p><p> 系統(tǒng)的設(shè)計可采用數(shù)字電路實(shí)現(xiàn),也可以采用單片機(jī)來完成。若用數(shù)字電路完成,所設(shè)計的電路相當(dāng)復(fù)雜,大概需要十幾片數(shù)字集成塊,其功能也主要依賴數(shù)字電路的各功能模塊的組合來實(shí)現(xiàn)。若用單片機(jī)來設(shè)計完成,由于其功能的實(shí)現(xiàn)主要通過軟件編程來實(shí)現(xiàn)的,那么就降低了硬件電路的復(fù)雜性,所以在該設(shè)計中采用單片機(jī)作為主控模塊。另外這個課題設(shè)計的軟件程序比較簡單,不需要很強(qiáng)大的單片機(jī),只
53、要用簡單的單片機(jī)就可以滿足要求,因此我選用了性價比比較高的低端STC89C52單片機(jī)。</p><p> 基于單片機(jī)系統(tǒng)的定時器電路包含了如下的功能模塊:</p><p><b> 基本的單片機(jī)系統(tǒng)</b></p><p><b> 單片機(jī)的定時中斷</b></p><p><b>
54、 單片機(jī)的外圍電路</b></p><p><b> 外部按鍵輸入裝置</b></p><p> 數(shù)碼管LED顯示裝置</p><p> 利用單片機(jī)的定時器定時的優(yōu)點(diǎn)是時間準(zhǔn)確、穩(wěn)定、可靠,并可以利用單片機(jī)的功能很好地進(jìn)行時間的顯示、指示、輸出。原理簡單,使用元器件少,相對來說在實(shí)物調(diào)試時出現(xiàn)的問題就少。該方案還有一個好處就
55、是成本低。</p><p> 第三章 硬件電路設(shè)計</p><p> 3.1 STC單片機(jī)</p><p> MCS-51單片機(jī)是美國INTE公司于1980年推出的產(chǎn)品,與MCS-48單片機(jī)相比,它的結(jié)構(gòu)更先進(jìn),功能更強(qiáng),在原來的基礎(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存儲器。器件采用高密度、非易失性存儲技術(shù)生
57、產(chǎn),與標(biāo)準(zhǔn) MCS-51 指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器(CPU)和 Flash 存儲單元,STC89C52 單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場合。STC89C52單片機(jī)為40引腳雙列直插芯片,有四個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> ?。?)一個8位微處理器CPU</p><p> (2)片內(nèi)數(shù)據(jù)存儲器RAM和特殊功能寄存器SFR</p><p> ?。?)片內(nèi)程序存儲器ROM</p><p> (4)三個定時/計數(shù)器,可用作定時器,也可用以對外部脈
59、沖進(jìn)行計數(shù)</p><p> ?。?)四個8位可編程的并行I/O端口,每個端口既可作輸入,也可作輸 出</p><p> (6)一個串行端口,用于數(shù)據(jù)的串行通信</p><p><b> ?。?)中斷控制系統(tǒng)</b></p><p><b> ?。?)內(nèi)部時鐘電路</b></p&g
60、t;<p> 圖3-2 STC89c52內(nèi)部結(jié)構(gòu)圖</p><p> STC89C52 提供以下標(biāo)準(zhǔn)功能:8k字節(jié) Flash 閃速存儲器,512字節(jié)內(nèi)部 RAM,32 個 I/O 口線,3 個 16 位定時/計數(shù)器,一個 6 向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,STC89C52 可降至 0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止 CPU
61、 的工作,但允許 RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存 RAM 中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復(fù)位。</p><p> 3.2 STC單片機(jī)模塊介紹</p><p> 3.2.1 復(fù)位電路</p><p> 復(fù)位操作有上電自動復(fù)位、按鍵電平復(fù)位和外部脈沖復(fù)位三鐘方式,本次實(shí)驗(yàn)用的是按鍵電平復(fù)位,利用電
62、容的充放電公式來選擇所需的電容、電阻,能保證復(fù)位信號高電平持續(xù)時間大于2個機(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),需要的時間是10K*10UF=0.1S。</p><p> 在單片機(jī)啟動0.1S后,電容C兩端的電壓持續(xù)充電為5V,這是時候10K電阻兩端的電壓接近于0V,RST處于低電平所以系統(tǒng)正常工作。當(dāng)按鍵按下的時候,開關(guān)導(dǎo)通,這個時候電容兩端形成了一個回路,電容被短路,所以在按鍵按下的這個過程中,電容開始釋放之前充的電量。隨著時間的推移,電容的電壓在0.1S內(nèi),從5
64、V釋放到變?yōu)榱?.5V,甚至更小。根據(jù)串聯(lián)電路電壓為各處之和,這個時候10K電阻兩端的電壓為3.5V,甚至更大,所以RST引腳又接收到高電平。單片機(jī)系統(tǒng)自動復(fù)位。</p><p> 該設(shè)計中復(fù)位電路選用10uF的電容和10k歐姆的電阻組成,在滿足單片機(jī)可靠復(fù)位的前提下該復(fù)位電路的優(yōu)點(diǎn)在于降低復(fù)位引腳的對地阻抗,可以顯著增強(qiáng)單片機(jī)復(fù)位電路的抗干擾能力。</p><p> 3.2.2 晶振
65、電路</p><p> 單片機(jī)的晶振電路是一種典型的電路,分為內(nèi)部時鐘和外部時鐘兩種方式。</p><p> 內(nèi)部時鐘,是用芯片內(nèi)部振蕩,形成的時鐘,精度不高,溫飄也較大,不需要外部振蕩器件。出于成本及工藝復(fù)雜的考慮,選擇內(nèi)部時鐘方式。</p><p> 內(nèi)部時鐘方式如圖3-4所示:</p><p> 圖3-4 內(nèi)部時鐘晶振電路<
66、;/p><p> 內(nèi)部時鐘電路和晶振頻率一般選擇在4MHz~12MHz之間(該設(shè)計選用12MHz),外接兩個諧振電容。該電容的典型值為30pF,該設(shè)計也選用30pF。</p><p> 3.2.3 電源電路</p><p> 本課題選擇USB供電模式,即基于電腦USB口供電,電腦的USB接口可以提供達(dá)到5V/500mA的供電水平,雖然USB接口對于給大型設(shè)備供電存
67、在不足,但就本課題而言已經(jīng)可以充分滿足需求,所以在設(shè)計的時候僅僅是使用插針預(yù)留了電源、地線接口,電源獲取方式為電腦供電。由于采用了此這種設(shè)計方式省去了普遍使用的LM7805穩(wěn)壓電源電路,所以將低了一部分成本。同時,本課題還設(shè)計有電源指示電路,發(fā)光二極管串聯(lián)一個電阻起到了限流的作用,防止二極管燒壞。此處的二極管還起到了防止電流反灌的作用,保護(hù)USB接口正常工作。具體電路如圖3-5所示:</p><p> 圖3-5
68、 USB供電</p><p> 3.2.4 下載電路</p><p> 單片機(jī)是一種數(shù)字集成芯片,數(shù)字電路中只有兩種電平:高電平和低電平。我們暫且假定單片機(jī)的輸入輸出高電平為5V,低電平為0V。而計算機(jī)串口為RS-232C電平,它是一種負(fù)邏輯電平,原因是其高電平為-12V,低電平為+12V。因此,計算機(jī)要與單片機(jī)相連,必須使用電平轉(zhuǎn)換芯片。在這里我們使用的是MAX232芯片,采用3線連
69、接方式,即RXD、TXD和GND。該電路是一個電平轉(zhuǎn)換電路。如圖3-6:</p><p> 圖3-6 電平轉(zhuǎn)換電路</p><p> 3.3 LED與單片機(jī)接口電路</p><p> 4位LED數(shù)碼管有靜態(tài)顯示和動態(tài)顯示兩種結(jié)構(gòu)。為了減少元器件及連線,可選用動態(tài)顯示的4位一體的LED數(shù)碼管。用單片機(jī)的某個I/O口送數(shù)碼管的顯示段碼(字符數(shù)據(jù)),用另一I/O口的
70、其中4位經(jīng)過三極管驅(qū)動后分別作為4個數(shù)碼管的顯示控制信號,當(dāng)三極管導(dǎo)通時候?qū)?yīng)的數(shù)碼管顯示。如圖3-7。</p><p> 常用的LED顯示器有7段(或8段,8段比7段多了一個小數(shù)點(diǎn)“dp”段)。這種顯示器有共陽極和共陰極兩種。該設(shè)計中選用的是共陽極,LED與單片機(jī)的接線如下圖3-8所示。</p><p> 圖3-8 LED與單片機(jī)的接線</p><p> 共
71、陽極LED顯示器的發(fā)光二極管的陽極連接在一起,通常該共陽極接地。當(dāng)某個發(fā)光二極管的陰極為低電平時,發(fā)光二極管點(diǎn)亮,相應(yīng)的段被顯示。</p><p> 使用LED顯示器時,為了顯示數(shù)字或符號,要為LED顯示器提供代碼,因?yàn)檫@些代碼是通過段的亮與滅來顯示不同字形的,因此稱之為代碼。7段發(fā)光二極管,再加上一個小數(shù)點(diǎn)位,共計8段,因此提供給LED顯示器的段碼正好一個字節(jié)。</p><p> 各
72、段字節(jié)中各位的對應(yīng)關(guān)系如表3-9所示:</p><p> 由于單片機(jī)I/O的電氣特性決定了單片機(jī)的端口的驅(qū)動能力有限,一般地,單片機(jī)的端口只是驅(qū)動TTL電平,不提供或者提供很小的驅(qū)動電流,所以在帶負(fù)載時,單片機(jī)應(yīng)當(dāng)在I/O口加上驅(qū)動芯片或使用三極管驅(qū)動。該設(shè)計中使用4個9012三極管驅(qū)動。共陽極LED顯示器的八段由單片機(jī)的P0.0~P0.7控制,P2.0~P2.3控制位信號。當(dāng)P2.0~P2.3中有引腳輸出低電
73、平時,三極管導(dǎo)通,集電極給位控制端供電,從而驅(qū)動數(shù)碼管。</p><p> 3.4 發(fā)光二級管電路設(shè)計</p><p> 在設(shè)計此電路時發(fā)光二極管的電流流向也是有講究的,由于單片機(jī)的驅(qū)動電流較小,為了確保能夠通過單片機(jī)I/O口的電平高低來實(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:單片機(jī),控制LED的數(shù)據(jù)顯示。</p><p> ·LED:一個四位的8段碼LED,用于顯示單片機(jī)的數(shù)據(jù)。</p><p> ·9012三極管:驅(qū)動LED,相當(dāng)于一個反相器。&
75、lt;/p><p> ·按鍵KEY_ST:KEY_ST未按時時間正常運(yùn)行,按一下KEY_ST鍵后數(shù)碼管顯示的時間暫停,這時可以使用KEY_UP、KEY_DW自行加、減時間。</p><p> ·按鍵KEY_UP:當(dāng)時間暫停之后,按一次KEY_UP鍵數(shù)碼管上的時間加1。</p><p> ·按鍵KEY_DW:當(dāng)時間暫停之后,按一次KEY
76、_DW鍵數(shù)碼管上的時間減1。</p><p> ·按鍵KEY_T1:電路上電之后,按下KEY_T1鍵后,開啟定時器0,時間從99s開始倒計時。</p><p> ·按鍵KEY_T2:電路上電之后,按下KEY_T2鍵后,開啟定時器1,時間從99s開始倒計時。</p><p> ·按鍵KEY_T3:電路上電之后,按下KEY_T3鍵后,
77、開啟定時器2,時間從99min開始倒計時。</p><p> ·L2—L9:發(fā)光二極管,通過單片機(jī)的P1.0-P1.7控制,用以觀看使用的是哪一個定時器。</p><p> 3.6 接口連接設(shè)計</p><p> ·P0.0—P0.7:接上數(shù)碼管的8個段選。</p><p> ·P1.0—P1.7:分別和
78、七個發(fā)光二極管相連,其中三個用以顯示使用的是哪一個定時器。</p><p> ·P2.4—P2.6:分別接KEY_UP、KEY_DW、KEY_ST三個按鍵,控制時間的自加、自減以及暫停。</p><p> ·P2.0—P2.3:分別和4個9012三極管相連,然后接上數(shù)碼管的4個位選端。</p><p> ·P2.7,P3.6,P3
79、.7:分別接KEY_T1、KEY_T2、KEY_T3三個按鍵,控制定時時間1、2、3。 </p><p><b> 3.7 功能簡介</b></p><p> LED顯示模塊與單片機(jī)的連接中,LED顯示模塊的控制是通過單片機(jī)的P2.0~P2.3口完成的。按鍵KEY_ST、KEY_UP、KEY_DW完成定時器的暫停、自加和自減功能。而發(fā)光二極管L2—L4則反映了選用
80、的定時時間的不同。</p><p><b> 第四章 軟件設(shè)計</b></p><p> 本章首先對設(shè)計思想即主程序進(jìn)行介紹,然后對發(fā)光二極管指示程序、鍵掃描程序和數(shù)碼管的顯示程序的設(shè)計分別進(jìn)行說明。</p><p><b> 4.1 主程序</b></p><p> 本次設(shè)計中,由于要求有
81、定時器1、2、3,所以程序設(shè)計中使用了三個定時器分別進(jìn)行定時。數(shù)碼管顯示部分由于最大數(shù)是99,所以使用兩只數(shù)碼管已綽綽有余。為了分清使用的是哪一個數(shù)碼管,所以又用了三個發(fā)光二極管進(jìn)行區(qū)分。程序流程圖如下圖4-1所示:</p><p> 圖4-1 主程序流程圖</p><p> 4.2 發(fā)光二極管指示程序</p><p> 發(fā)光二極管的亮滅指示了此刻數(shù)碼管顯示的
82、時間是使用了三個定時器中的哪一個進(jìn)行的定時。流程圖如圖4-2所示。</p><p> 圖4-2 發(fā)光二極管指示流程圖</p><p><b> 4.3 鍵掃描程序</b></p><p> 鍵掃描程序中主要是掃描判斷KEY-ST、KEY-UP、KEY-DW這三個掃描程序如圖4-3所示。</p><p> 圖4-3
83、 按鍵子程序流程圖</p><p> 4.4 定時器中斷程序</p><p> 程序設(shè)計中使用了單片機(jī)的三個定時器,雖然定時時間各不相同,但定時器中斷流程圖是相同的,所以此處只畫出定時器0的中斷流程圖,如下圖4-4所示:</p><p> 圖4-4 定時器0的中斷流程圖</p><p><b> 第五章 設(shè)計調(diào)試 </
84、b></p><p><b> 5.1 軟件調(diào)試</b></p><p> 5.1.1 Keil軟件及其調(diào)試功能簡介</p><p> 目前流行的51系列單片機(jī)開發(fā)軟件是德國Keil公司推出的Keil C51軟件,它是一個基于32位Windows環(huán)境的應(yīng)用程序,支持C語言和匯編語言編程,其6.0以上的版本將編譯和仿真軟件統(tǒng)一為μVi
85、sion(通常稱為μV2)。Keil提供包括C編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,由以下幾部分組成:μVision IDE集成開發(fā)環(huán)境(包括工程管理器、源程序編輯器、程序調(diào)試器)、C51編譯器、A51匯編器、LIB51庫管理器、BL51連接/定位器、OH51目標(biāo)文件生成器以及Monitor-51、RTX51實(shí)時操作系統(tǒng)。</p><p> 應(yīng)用Keil進(jìn)行軟件仿真開發(fā)的
86、主要步驟為:編寫源程序并保存——建立工程并添加源文件——設(shè)置工程——編譯/匯編、連接,產(chǎn)生目標(biāo)文件——程序調(diào)試。Keil使用“工程”(Project)的概念,對工程(而不能對單一的源程序)進(jìn)行編譯/匯編、連接等操作。工程的建立、設(shè)置、編譯/匯編及連接產(chǎn)生目標(biāo)文件的方法非常易于掌握。首先選擇菜單File—New…,在源程序編輯器中輸入?yún)R編語言或C語言源程序(或選擇File—Open…,直接打開已用其他編輯器編輯好的源程序文檔)并保存,注意
87、保存時必須在文件名后加上擴(kuò)展名.asm(.a51)或.c;然后選擇菜單Project—New Project…,建立新工程并保存(保存時無需加擴(kuò)展名,也可加上擴(kuò)展名.uv2);工程保存后會立即彈出一個設(shè)備選擇對話框,選擇CPU后點(diǎn)確定返回主界面。這時工程管理窗口的文件頁(Files)會出現(xiàn)“Target1”,將其前面+號展開,接著選擇Source Group1,右擊鼠標(biāo)彈出快捷菜單,選擇“Add File to Group ‘Sourc
88、e Group1’”,出現(xiàn)一個對話框,要求尋找并加入源文件(在加入一個源文件后,該對話框不</p><p> 成功編譯/匯編、連接后,選擇菜單Debug—Start/Stop Debug Session(或按Ctrl+F5鍵)進(jìn)入程序調(diào)試狀態(tài),Keil提供對程序的模擬調(diào)試功能,內(nèi)建一個功能強(qiáng)大的仿真CPU以模擬執(zhí)行程序。Keil能以單步執(zhí)行(按F11或選擇Debug—Step)、過程單步執(zhí)行(按F10或選擇De
89、bug—Step Over)、全速執(zhí)行等多種運(yùn)行方式進(jìn)行程序調(diào)試。如果發(fā)現(xiàn)程序有錯,可采用在線匯編功能對程序進(jìn)行在線修改(Debug—Inline Assambly…),不必執(zhí)行先退出調(diào)試環(huán)境、修改源程序、對工程重新進(jìn)行編譯/匯編和連接、然后再次進(jìn)入調(diào)試狀態(tài)的步驟。對于一些必須滿足一定條件(如按鍵被按下等)才能被執(zhí)行的、難以用單步執(zhí)行方式進(jìn)行調(diào)試的程序行,可采用斷點(diǎn)設(shè)置的方法處理(Debug—Insert/Remove Breakpoi
90、nt或Debug—Breakpoints…等)。在模擬調(diào)試程序后,還須通過編程器將.hex目標(biāo)文件燒寫入單片機(jī)中才能觀察目標(biāo)樣機(jī)真實(shí)的運(yùn)行狀況。</p><p> Keil軟件Eval版(免費(fèi)產(chǎn)品)的功能與商業(yè)版相同,只是程序的最大代碼量不得超過2kB,但對初學(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語言簡介</p><p> 單片機(jī)的 C語言是一種編譯型程序設(shè)計語言,它兼顧了多種高級語言的特點(diǎn),并具備匯編語言的功能。C語言具有功能豐富的庫函數(shù),運(yùn)算速度快,編譯效率高,有良好的可移植性,而且可以實(shí)現(xiàn)直接對系統(tǒng)硬件的控制。此外,C語言程序具有完整的程序模塊
92、結(jié)構(gòu),從而為軟件開發(fā)中采用模塊化程序設(shè)計方法提供了有力的保障。</p><p> 與匯編相比,有如下優(yōu)點(diǎn): </p><p> (1)對單片機(jī)的指令系統(tǒng)不要求了解,僅要求對 51的存儲器結(jié)構(gòu)有初步了解,至于寄存器分配、不同存儲器的尋址及數(shù)據(jù)類型等細(xì)節(jié)均由編譯器管理。 </p><p> (2)程序有規(guī)范的結(jié)構(gòu),可分為不同的函數(shù)。這種方式可使程序結(jié)構(gòu)化,將可變的
93、選擇與特殊操作組合在一起,改善了程序的可讀性。 </p><p> (3)編程及程序調(diào)試時間顯著縮短,從而提高效率。 提供的庫包含許多標(biāo)準(zhǔn)子程序,具有較強(qiáng)的數(shù)據(jù)處理能將已編好程序可容易的植入新程序,因?yàn)樗哂蟹奖愕哪K化編程技術(shù)。 單片機(jī) C語言作為一種非常方便的語言而得到廣泛的支持,C語言程序本身并不依賴于機(jī)器硬件系統(tǒng),基本上不做修改就可根據(jù)單片機(jī)的不同較快地移植過來。 綜上所述,單片機(jī)的四種編程語言各有各的
94、優(yōu)缺點(diǎn),作為單片機(jī)初學(xué)者,筆者認(rèn)為還是應(yīng)該先學(xué)習(xí)匯編語言,不一定要學(xué)得很精很熟悉,但要有一定的了解。因?yàn)閰R編語言程序除了具有簡潔明快、跳躍性強(qiáng)、占 ROM資源少等優(yōu)點(diǎn)以外,還因它和單片機(jī)底層硬件緊密聯(lián)系,可以讓初學(xué)者更加了解單片機(jī)硬件系統(tǒng)各種資源,熟悉各個功能模塊的作用,從而為編出更高效率的程序打好扎實(shí)的基礎(chǔ)。 用單片機(jī)匯編語言編寫的程序代碼效率高,但學(xué)習(xí)起來相對難度較大,而且對于一個大型項(xiàng)目,如果完全采用匯編語言來編程,就顯得很繁瑣,
95、尤其是遇到算法方面的問題時,匯編語言根本就應(yīng)付不了。況且現(xiàn)在單片機(jī)的主頻在不斷的提高,在高頻率時鐘的作用下,我們完全不需要那么高效率的代碼;另外,單片機(jī)的 ROM和 RAM空間也在不斷的增加,足夠裝得下你用 C語言</p><p> 當(dāng)然,有時候用單片機(jī) C語言也不能夠?qū)崿F(xiàn)所有要編寫程序的功能,比如當(dāng)想編寫一個精確控制的定時程序時,用起匯編語言來還是比較方便的。因此想成為一個優(yōu)秀的單片機(jī)編程技術(shù)員,最好就是能懂
96、得單片機(jī) C語言和匯編語言混合編程。</p><p> 5.1.3 Keil軟件調(diào)試</p><p> 軟件的調(diào)試必須在開發(fā)系統(tǒng)的支持下進(jìn)行。雖然是分別編寫的各個模塊程序,但是除了定時中斷、數(shù)碼管顯示和初始化子程序外,其他的如按鍵掃描程序等都是直接放在主程序中,所以在調(diào)試時直接調(diào)試的總程序。下面概略介紹本人認(rèn)為最重要的子程序—定時中斷子程序。</p><p>
97、 如下所示是定時中斷子程序,分為定時器0、定時器1、定時器2三個中斷子程序。</p><p> void timer0() interrupt 1</p><p><b> {</b></p><p> TH0=(65536-50000)/256; //定時器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; //定時器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; //定時器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 簡介</p><p> Protel99SE是Protel公司近10年來致力于Windows平臺開發(fā)的最新結(jié)晶,能實(shí)現(xiàn)從電學(xué)概念設(shè)計到輸出物理生產(chǎn)數(shù)據(jù),以及這之間的所有分析、驗(yàn)證和設(shè)計數(shù)據(jù)管理。因而今天的Protel最新產(chǎn)品已不是單純 的PCB(印制電路板)設(shè)計工具,而是一個系統(tǒng)工具,覆蓋了以PCB為核心的整個物理設(shè)計。 最新版本的Protel軟件可以毫無障礙地讀
112、Orcad、Pads、Accel(PCAD)等知名EDA公司設(shè)計文件,以便用戶順利過渡到新的EDA平臺。</p><p> Protel99 SE共分5個模塊,分別是原理圖設(shè)計、PCB設(shè)計(包含信號完整性分析)、自動布線器、原理圖混合信號仿真、PLD設(shè)計。 以下介紹一些Protel99SE的部分最新功能:</p><p> ◆可生成30多種格式的電氣連接網(wǎng)絡(luò)表;</p>
113、<p> ◆強(qiáng)大的全局編輯功能;</p><p> ◆在原理圖中選擇一級器件,PCB中同樣的器件也將被選中; </p><p> ◆同時運(yùn)行原理圖和PCB,在打開的原理圖和PCB圖間允許雙向交叉查找元器件、引腳、網(wǎng)絡(luò)</p><p> ◆既可以進(jìn)行正向注釋元器件標(biāo)號(由原理圖到PCB),也可以進(jìn)行反向注釋(由PCB到原理圖),以保持電氣原理圖和PC
114、B在設(shè)計上的一致性;</p><p> ◆滿足國際化設(shè)計要求(包括國標(biāo)標(biāo)題欄輸出,GB4728國標(biāo)庫); * 方便易用的數(shù)?;旌戏抡妫嫒軸PICE 3f5);</p><p> ◆支持用CUPL語言和原理圖設(shè)計PLD,生成標(biāo)準(zhǔn)的JED下載文件; * PCB可設(shè)計32個信號層,16個電源-地層和16個機(jī)加工層;</p><p> ◆強(qiáng)大的“規(guī)則驅(qū)動”設(shè)計環(huán)境,
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于 stc89c52的定時器畢業(yè)論文(含外文翻譯)
- stc89c52智能定時器設(shè)計畢業(yè)論文
- stc89c52智能定時器設(shè)計畢業(yè)論文
- 外文翻譯---stc89c52 數(shù)據(jù)手冊
- stc89c52單片機(jī)畢業(yè)論文
- 定時器設(shè)計畢業(yè)論文(含外文翻譯)
- 畢業(yè)論文--- 基于stc89c52單片機(jī)的led彩燈控制
- 基于stc89c52單片機(jī)的智能循跡小車畢業(yè)論文
- 基于at89c51的遙控定時器外文翻譯
- 基于stc89c52單片機(jī)的智能紅外遙控系統(tǒng)畢業(yè)論文
- 畢業(yè)設(shè)計--基于stc89c52單片機(jī)出租車計價器設(shè)計(含外文翻譯)
- 基于stc89c52rd單片機(jī)的澆花系統(tǒng)畢業(yè)論文(含外文翻譯)
- 基于stc89c52的球賽計時設(shè)計-職業(yè)學(xué)院物聯(lián)網(wǎng)畢業(yè)論文
- 基于單片機(jī)模塊stc89c52模塊的酒精濃度測試畢業(yè)論文
- 基于stc89c52的智能小車設(shè)計畢業(yè)設(shè)計
- 基于stc89c52單片機(jī)溫度報警器
- 基于stc89c52的電子時鐘設(shè)計
- STC89C52單片機(jī).doc
- STC89C52單片機(jī).doc
- 基于stc89c52單片機(jī)溫度報警器
評論
0/150
提交評論