2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩70頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

3、之用。而且設計巧妙,體積小,功能強,計時范圍大,用途廣泛,操作攜帶方便,是一種較理想的定時工具。</p><p>  關鍵詞:定時器; STC89C52;連續(xù)可調;倒計時顯示</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設計背景3</b></p><p>  1.2論文研究內容5</p><p>  1.3 論文結構安排5</p><p>  第二章 整體方案設計6</

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

12、擇與設計9</p><p>  第三章 硬件電路設計10</p><p>  3.1 STC單片機10</p><p>  3.2 STC單片機模塊介紹12</p><p>  3.2.1 復位電路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與單片機接口電路16</p><p>  3.4發(fā)光二級管電路設計18</p><p>  3.5器件選擇19</p><p>  3.6 接口連接設計20</p><p>  3.7 功能簡

14、介20</p><p>  第四章 軟件設計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、第五章 設計調試25</p><p>  5.1 軟件調試25</p><p>  5.1.1 Keil軟件及其調試功能簡介25</p><p>  5.1.2 C語言簡介27</p><p>  5.1.3Keil軟件調試28</p><p>  5.2 硬件調試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 調試結果34</p><p><b>  第六章 總結36</b&g

17、t;</p><p><b>  致謝37</b></p><p><b>  參考文獻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>  目前單片機已滲透到生活的各個領域,幾乎很難找到哪個領域沒有單片機的足跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網絡通訊與數據傳輸,工業(yè)自動化過程的實時控制和數據處理,廣泛使用的各種智

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

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

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

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

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

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

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

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

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

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

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

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

31、童電子玩具。它功能強大,體積小,重量輕,靈活好用,配以適當的接口芯片,可以構造各種各樣、功能各異的微電子產品。</p><p>  定時器按結構可分為機械式、電動式和電子式3類。 </p><p>  機械式定時器:以發(fā)條為原動力,用擒縱調速器控制走時精度,通過齒輪傳動和凸輪,按時間控制機構預置的時段操縱執(zhí)行機構動作。計時精度要求不高的定時器(如風扇定時器、洗衣機定時器、廚房用定時器、照相

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

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

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

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

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

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

38、章,設計調試。介紹軟件仿真調試與硬件調試。</p><p>  第六章,總結。對本次設計過程中的一些學習心得。</p><p>  致謝。感謝指導老師和幫助我的同學。</p><p>  第二章 整體方案設計</p><p>  2.1 設計任務及要求</p><p>  設計一個基于單片機控制的專用定時器。要求定時器

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

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

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

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

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

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

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

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

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

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

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

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

51、 腳相連,分別對應復位、可以任意時間的調整和退出,任意設定一個時 間,到鬧鈴開關鍵的功能。</p><p>  3.顯示模塊:顯示器部分是4位LED數碼管顯示電路組成。</p><p>  4.串口模塊:對單片機在線編程</p><p><b>  圖2-1系統(tǒng)結構圖</b></p><p>  2.

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

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

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

55、是成本低。</p><p>  第三章 硬件電路設計</p><p>  3.1 STC單片機</p><p>  MCS-51單片機是美國INTE公司于1980年推出的產品,與MCS-48單片機相比,它的結構更先進,功能更強,在原來的基礎上增加了更多的電路單元和指令,指令數達111條,MCS-51單片機可以算是相當成功的產品。</p><p&g

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

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

58、裝</p><p>  STC89c52包含以下部分,其結構圖如圖3-2所示</p><p>  (1)一個8位微處理器CPU</p><p> ?。?)片內數據存儲器RAM和特殊功能寄存器SFR</p><p> ?。?)片內程序存儲器ROM</p><p> ?。?)三個定時/計數器,可用作定時器,也可用以對外部脈

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

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

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

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

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

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

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

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

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

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

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

70、其中4位經過三極管驅動后分別作為4個數碼管的顯示控制信號,當三極管導通時候對應的數碼管顯示。如圖3-7。</p><p>  常用的LED顯示器有7段(或8段,8段比7段多了一個小數點“dp”段)。這種顯示器有共陽極和共陰極兩種。該設計中選用的是共陽極,LED與單片機的接線如下圖3-8所示。</p><p>  圖3-8 LED與單片機的接線</p><p>  共

71、陽極LED顯示器的發(fā)光二極管的陽極連接在一起,通常該共陽極接地。當某個發(fā)光二極管的陰極為低電平時,發(fā)光二極管點亮,相應的段被顯示。</p><p>  使用LED顯示器時,為了顯示數字或符號,要為LED顯示器提供代碼,因為這些代碼是通過段的亮與滅來顯示不同字形的,因此稱之為代碼。7段發(fā)光二極管,再加上一個小數點位,共計8段,因此提供給LED顯示器的段碼正好一個字節(jié)。</p><p>  各

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

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

74、 二極管連接方式</p><p><b>  3.5 器件選擇</b></p><p>  ·STC89C52:單片機,控制LED的數據顯示。</p><p>  ·LED:一個四位的8段碼LED,用于顯示單片機的數據。</p><p>  ·9012三極管:驅動LED,相當于一個反相器。&

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

76、_DW鍵數碼管上的時間減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ā)光二極管,通過單片機的P1.0-P1.7控制,用以觀看使用的是哪一個定時器。</p><p>  3.6 接口連接設計</p><p>  ·P0.0—P0.7:接上數碼管的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三極管相連,然后接上數碼管的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顯示模塊與單片機的連接中,LED顯示模塊的控制是通過單片機的P2.0~P2.3口完成的。按鍵KEY_ST、KEY_UP、KEY_DW完成定時器的暫停、自加和自減功能。而發(fā)光二極管L2—L4則反映了選用

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

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

82、時間是使用了三個定時器中的哪一個進行的定時。流程圖如圖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>  程序設計中使用了單片機的三個定時器,雖然定時時間各不相同,但定時器中斷流程圖是相同的,所以此處只畫出定時器0的中斷流程圖,如下圖4-4所示:</p><p>  圖4-4 定時器0的中斷流程圖</p><p><b>  第五章 設計調試 </

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

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

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

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

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

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

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

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

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

93、選擇與特殊操作組合在一起,改善了程序的可讀性。 </p><p>  (3)編程及程序調試時間顯著縮短,從而提高效率。 提供的庫包含許多標準子程序,具有較強的數據處理能將已編好程序可容易的植入新程序,因為它具有方便的模塊化編程技術。 單片機 C語言作為一種非常方便的語言而得到廣泛的支持,C語言程序本身并不依賴于機器硬件系統(tǒng),基本上不做修改就可根據單片機的不同較快地移植過來。 綜上所述,單片機的四種編程語言各有各的

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

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

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

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

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

113、<p>  ◆強大的全局編輯功能;</p><p>  ◆在原理圖中選擇一級器件,PCB中同樣的器件也將被選中; </p><p>  ◆同時運行原理圖和PCB,在打開的原理圖和PCB圖間允許雙向交叉查找元器件、引腳、網絡</p><p>  ◆既可以進行正向注釋元器件標號(由原理圖到PCB),也可以進行反向注釋(由PCB到原理圖),以保持電氣原理圖和PC

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

溫馨提示

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

評論

0/150

提交評論