版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 單片機(jī)課程電路實(shí)驗(yàn)仿真系統(tǒng)設(shè)計(jì)</p><p><b> 摘要</b></p><p> 《單片機(jī)原理與應(yīng)用》課程對(duì)許多專(zhuān)業(yè)來(lái)說(shuō)是一門(mén)重要的專(zhuān)業(yè)課。目前,國(guó)內(nèi)各高校以MCS-51 單片機(jī)(簡(jiǎn)稱(chēng)51 系列)為主要內(nèi)容進(jìn)行教學(xué)。近年來(lái),隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,大量高性能、采用新技術(shù)的嵌入式系統(tǒng)CPU 的面世,給傳統(tǒng)的單片機(jī)教學(xué)帶來(lái)沖擊,對(duì)微機(jī)教
2、學(xué)方法的改進(jìn)提出了新的建議。本文通過(guò)對(duì)單片機(jī)教學(xué)改革的思考,分析單片機(jī)實(shí)驗(yàn)教學(xué)中存在的弊端,提出了一種新的實(shí)驗(yàn)教學(xué)方法,在實(shí)踐環(huán)節(jié)中引入Proteus軟件為平臺(tái),設(shè)計(jì)一套符合時(shí)代需要的實(shí)驗(yàn)系統(tǒng)。全文針對(duì)整個(gè)實(shí)驗(yàn)系統(tǒng),首先介紹了作為實(shí)驗(yàn)系統(tǒng)軟件平臺(tái)的 Proteus,敘述其功能,分析選擇其作為軟件平臺(tái)的可行性和優(yōu)越性。</p><p> 然后,詳細(xì)地介紹實(shí)驗(yàn)各個(gè)系統(tǒng)模塊的實(shí)驗(yàn),并將其分解為一個(gè)個(gè)獨(dú)立的實(shí)驗(yàn)展現(xiàn)出來(lái)
3、,實(shí)驗(yàn)難度有淺入深,有常規(guī)經(jīng)典的實(shí)驗(yàn)項(xiàng)目,也有新的、貼近實(shí)際應(yīng)用的實(shí)驗(yàn)項(xiàng)目;實(shí)驗(yàn)過(guò)程清晰,Proteus 對(duì)單片機(jī)及單片機(jī)外圍電路進(jìn)行仿真,程序的變化在仿真元件的性質(zhì)變化上得到體現(xiàn);實(shí)驗(yàn)原理得到詮釋?zhuān)韴D設(shè)計(jì)公開(kāi)化,實(shí)驗(yàn)原理容易理解,Proteus 與Keil 的聯(lián)調(diào)將硬件仿真的過(guò)程完美展現(xiàn)。該部分一方面是對(duì)單片機(jī)教學(xué)實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì),另一方面是通過(guò)各種實(shí)驗(yàn)來(lái)驗(yàn)證Proteus軟件的設(shè)計(jì)和仿真性能。然后是對(duì)實(shí)驗(yàn)系統(tǒng)進(jìn)行拓展型實(shí)驗(yàn)的闡述,
4、分析各模塊的移植,羅列部分拓展型實(shí)驗(yàn)項(xiàng)目。最后,對(duì)全文進(jìn)行總結(jié)。</p><p> 關(guān)鍵詞:Proteus; 單片機(jī); 實(shí)驗(yàn)系統(tǒng);仿真</p><p> DESIGN OF SIGNLE CHIP COMPUTER COURSE CIRCUIT EXPERIMENT SIMULATION SYSTEM</p><p><b> Abstract &l
5、t;/b></p><p> Microcomputer’s Principal and Application is an important course for many majors. Now, many colleges in our country adopt MCS-51 series MCU as the teaching content. However, with the develo
6、pment of computer technology, many high capability and OS embedded CPUs have appeared which brings an impact and a challenge for the teaching course of Microcomputer’s Principal and Application. This thesis finished the
7、designing of an experimental system for the course of micro control unit which is multifunc</p><p> This paper describes the advantages of this method, and I design a set of Single-chip simulation system, w
8、hich replaced the traditional SCM experimental function. Firstly, software Proteus as a platform is introduced, including the superiority of it, and feasibility of its role as a teaching platform. Then, detailed descript
9、ion of the various experimental modules which are detached from the system is demonstrated. Later, how to make expanded experiments is described. And some programs can be tra</p><p> Keywords: Paper;Proteus
10、 ;Single-Chip ;Experimental System;simulation</p><p><b> 目 錄</b></p><p><b> 摘要I</b></p><p> AbstractII</p><p><b> 1緒論1</b>
11、</p><p><b> 1.1課題背景1</b></p><p> 1.2技術(shù)概況及發(fā)展趨勢(shì)1</p><p> 1.3課題解決的問(wèn)題2</p><p> 1.4課題的意義2</p><p><b> 2系統(tǒng)總體設(shè)計(jì)3</b></p>&
12、lt;p> 2.1系統(tǒng)設(shè)計(jì)目的3</p><p> 2.2單片機(jī)特點(diǎn)3</p><p> 2.2.1系統(tǒng)可編程特性3</p><p> 2.2.2代碼全速仿真3</p><p> 2.2.3資源的可重復(fù)利用性3</p><p> 2.2.4軟硬結(jié)合,操作簡(jiǎn)單方便3</p>&
13、lt;p> 2.3系統(tǒng)總體組成4</p><p> 2.4實(shí)驗(yàn)系統(tǒng)的功能特點(diǎn)4</p><p> 2.5本課題研究重點(diǎn)4</p><p> 2.5.1電路圖仿真部分5</p><p> 2.5.2程序編譯部分5</p><p><b> 3開(kāi)發(fā)工具介紹6</b><
14、;/p><p> 3.1 Proteus軟件6</p><p> 3.1.1 Proteus軟件工作過(guò)程6</p><p> 3.1.2 Proteus軟件所提供的調(diào)試手段7</p><p> 3.1.3 Proteus ISIS 原理圖設(shè)計(jì)7</p><p> 3.1.4 Proteus ISIS 軟件
15、界面介紹8</p><p> 3.2 Keil C51 uVision4軟件介紹9</p><p> 3.3 Proteus 與Keil的連接9</p><p> 4硬件電路詳細(xì)設(shè)計(jì)15</p><p> 4.1整體框圖設(shè)計(jì)15</p><p> 4.2電路各模塊詳細(xì)設(shè)計(jì)15</p>
16、<p> 4.2.1主芯片AT89C5115</p><p> 4.2.2 8位發(fā)光二極管17</p><p> 4.2.3 4×4 矩陣式鍵盤(pán)19</p><p> 4.2.4 A/D轉(zhuǎn)換電路20</p><p> 4.2.5 D/A轉(zhuǎn)換電路23</p><p> 5電路仿
17、真分析報(bào)告25</p><p> 5.1 8位發(fā)光二極管25</p><p> 5.1.2流水燈實(shí)驗(yàn)25</p><p> 5.1.2外部中斷實(shí)驗(yàn)26</p><p> 5.2 4×4矩陣式鍵盤(pán)27</p><p> 5.3 A/D轉(zhuǎn)換電路28</p><p>
18、 5.4 D/A轉(zhuǎn)換電路29</p><p><b> 6總結(jié)30</b></p><p><b> 參考文獻(xiàn)32</b></p><p><b> 致謝33</b></p><p><b> 1緒論</b></p><
19、p><b> 1.1課題背景</b></p><p> 1970 年微處理器研制成功之后,隨著就出現(xiàn)了單片機(jī)(即單片的微型計(jì)算機(jī))。1971 年美國(guó)的INTEL 公司生產(chǎn)的4 位單片機(jī)4004 和1972 年生產(chǎn)的雛形8 位單片機(jī)8008,特別是1976 年9 月INTEL 公司的MCS-48 單片機(jī)問(wèn)世以來(lái),在短短的十幾年間,經(jīng)歷了多次更新?lián)Q代,其發(fā)展速度大約每?jī)?、三年要更新一?/p>
20、,集成度增加一倍,功能翻一番。單片機(jī)發(fā)展速度之快、應(yīng)用范圍之廣已達(dá)到了驚人的地步,它已滲透到生產(chǎn)和生活的各個(gè)領(lǐng)域,應(yīng)用非常廣泛[2]。單片機(jī)的設(shè)計(jì)開(kāi)發(fā)具有廣闊的前景,估計(jì)近10年內(nèi)8位的單片機(jī)將仍是主流機(jī)型,其設(shè)計(jì)也是嵌入式產(chǎn)品開(kāi)發(fā)的基礎(chǔ)。所以,單片機(jī)的學(xué)習(xí)十分必要[2]。</p><p> 傳統(tǒng)的單片機(jī)教學(xué)實(shí)驗(yàn)中,采用硬件仿真器、實(shí)驗(yàn)箱或?qū)嶒?yàn)板,需采購(gòu)大量的、昂貴的硬件設(shè)備,而且設(shè)備維護(hù)工作量也非常大。由于單
21、片機(jī)應(yīng)用技術(shù)涉及到數(shù)字電子、模擬電子、計(jì)算機(jī)甚至通信等多學(xué)科的知識(shí),實(shí)踐性又很強(qiáng),在教學(xué)實(shí)驗(yàn)過(guò)程中必須軟件硬件結(jié)合,也就是將單片機(jī)程序和外圍電路相結(jié)合,若用實(shí)驗(yàn)箱則費(fèi)用高,又不能充分利用,若用實(shí)驗(yàn)板則開(kāi)發(fā)周期長(zhǎng),方案變更困難。 </p><p> 單片機(jī)應(yīng)用技術(shù)所涉及到的實(shí)驗(yàn)實(shí)踐環(huán)節(jié)比較多,而且硬件投入比較大。在具體的工程實(shí)踐中,如果因?yàn)榉桨赣姓`而進(jìn)行相應(yīng)的開(kāi)發(fā)設(shè)計(jì),會(huì)浪費(fèi)較多的時(shí)間和經(jīng)費(fèi)。</p>
22、<p> 這里我們利用Proteus仿真軟件,設(shè)計(jì)了純軟件的單片機(jī)虛擬實(shí)驗(yàn)系統(tǒng),既可調(diào)試單片機(jī)程序,也可仿真單片機(jī)外圍器件的工作情況;既能充分利用學(xué)校計(jì)算機(jī)房現(xiàn)有計(jì)算機(jī),減少硬件設(shè)備的維護(hù)工作量,還可為學(xué)生提供豐富的實(shí)驗(yàn)內(nèi)容。</p><p> 1.2技術(shù)概況及發(fā)展趨勢(shì)</p><p> 目前,嵌入式系統(tǒng)已經(jīng)廣泛地滲透到科學(xué)研究、工程設(shè)計(jì)、軍事技術(shù)、各類(lèi)產(chǎn)業(yè)和商業(yè)文化藝
23、術(shù)以及人們的日常生活等方方面面中。由于社會(huì)對(duì)掌握嵌入式技術(shù)人才的大量需求,使得嵌入式軟硬件工程師成為未來(lái)幾年內(nèi)最為熱門(mén)的職業(yè)之一,相當(dāng)一部分高校已開(kāi)設(shè)嵌入式系統(tǒng)的相關(guān)課程。 </p><p> 嵌入式系統(tǒng)是理論與實(shí)踐結(jié)合密切的課程。但對(duì)于嵌入式系統(tǒng)開(kāi)發(fā)的愛(ài)好者而言,往往沒(méi)有足夠的資金購(gòu)買(mǎi)昂貴的開(kāi)發(fā)板來(lái)進(jìn)行開(kāi)發(fā),這時(shí)可以選擇通過(guò)軟件仿真來(lái)學(xué)習(xí)嵌入式系統(tǒng)開(kāi)發(fā)。Proteus是目前最好的能夠虛擬嵌入式系統(tǒng)開(kāi)發(fā)中常用的
24、處理器和外圍器件的EDA工具。</p><p> Proteus與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)CPU的工作情況,也能仿真單片機(jī)外圍電路或沒(méi)有單片機(jī)參與的其它電路的工作情況。因此在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語(yǔ)句執(zhí)行時(shí)單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過(guò)程和結(jié)果。對(duì)于這樣的仿真實(shí)驗(yàn),從某種意義上講,是彌補(bǔ)了實(shí)驗(yàn)和工程應(yīng)用間脫節(jié)的矛盾和現(xiàn)象。</
25、p><p> 1.3課題解決的問(wèn)題</p><p> 以Proteus為軟件平臺(tái),設(shè)計(jì)制作一套51系列單片機(jī)實(shí)驗(yàn)系統(tǒng)。工作分為兩部分:一,對(duì)Proteus軟件進(jìn)行測(cè)試,設(shè)計(jì)各種實(shí)驗(yàn)驗(yàn)證其性能;二,設(shè)計(jì)開(kāi)發(fā)單片機(jī)實(shí)驗(yàn)系統(tǒng),并以實(shí)驗(yàn)系統(tǒng)為基礎(chǔ),學(xué)生可開(kāi)發(fā)設(shè)計(jì)新的作品。</p><p> 課題的核心是在Proteus平臺(tái)上設(shè)計(jì)一套51系列單片機(jī)實(shí)驗(yàn)系統(tǒng)。板上集成LED模
26、塊、蜂鳴器模塊、LCD模塊、A/D模塊、數(shù)碼顯示模塊、串口通信模塊、鍵盤(pán)模塊等。實(shí)驗(yàn)包括I/O口設(shè)計(jì)、中斷系統(tǒng)應(yīng)用、串口通信系統(tǒng)的應(yīng)用等。實(shí)驗(yàn)的難度從易到難,學(xué)生容易上手,并能對(duì)較復(fù)雜的項(xiàng)目有很直觀的認(rèn)識(shí)。以Proteus強(qiáng)大功能為支持,設(shè)計(jì)出的實(shí)驗(yàn)系統(tǒng)不僅具有一般硬件實(shí)物板的一切功能,而且具有很好的開(kāi)發(fā)性實(shí)驗(yàn)功能,學(xué)生可以在實(shí)驗(yàn)系統(tǒng)的基礎(chǔ)上設(shè)計(jì)出自己的電子產(chǎn)品[3]。</p><p><b> 1.
27、4課題的意義</b></p><p> 單片機(jī)技術(shù)是現(xiàn)代電子工程領(lǐng)域一門(mén)迅速發(fā)展的技術(shù),應(yīng)用于各種嵌入式系統(tǒng)中。單片機(jī)技術(shù)的發(fā)展和推廣極大地推動(dòng)了電子工業(yè)的發(fā)展,其在教學(xué)和產(chǎn)業(yè)界的技術(shù)推廣仍然是當(dāng)今業(yè)界的一個(gè)熱點(diǎn)。單片機(jī)技術(shù)是現(xiàn)代電子工業(yè)中不可缺少的一項(xiàng)技術(shù),掌握單片機(jī)技術(shù)是機(jī)械電子類(lèi)專(zhuān)業(yè)學(xué)生就業(yè)的一個(gè)基本條件。</p><p> 由于現(xiàn)代科技的發(fā)展,單片機(jī)促進(jìn)了計(jì)算機(jī)技術(shù)
28、在軟件和硬件上的飛速發(fā)展,利用計(jì)算機(jī)軟件的仿真技術(shù),可以充分地仿真諸如電路的工作等實(shí)際的工程問(wèn)題。</p><p> 本課題充分利用了Proteus軟件的功能,對(duì)各個(gè)電路部分進(jìn)行仿真。為進(jìn)行一些簡(jiǎn)單的單片機(jī)實(shí)驗(yàn)構(gòu)建一個(gè)虛擬硬件環(huán)境。</p><p><b> 2系統(tǒng)總體設(shè)計(jì)</b></p><p> 本章在通過(guò)對(duì)系統(tǒng)需求進(jìn)行詳細(xì)分析的基礎(chǔ)
29、上,綜合考慮各種設(shè)計(jì)因素,選擇了一種切實(shí)可行的方案。在設(shè)計(jì)方案確定后,闡述了系統(tǒng)的總體設(shè)計(jì)并對(duì)系統(tǒng)組成的各個(gè)功能模塊進(jìn)行介紹。</p><p><b> 2.1系統(tǒng)設(shè)計(jì)目的</b></p><p> 隨著科教事業(yè)的不斷發(fā)展,高校對(duì)單片機(jī)教學(xué)的要求越來(lái)越高,而過(guò)去的單片機(jī)實(shí)驗(yàn)教學(xué)存在著不可避免的弊端,為了讓學(xué)生能更深刻地理解單片機(jī)的結(jié)構(gòu),能夠更靈活自主地設(shè)計(jì)自己的單
30、片機(jī)設(shè)計(jì),我們提出了一種新的實(shí)驗(yàn)教學(xué)方法,即在實(shí)踐環(huán)節(jié)中引入EDA 技術(shù),提出了先在軟件環(huán)境中對(duì)元器件和系統(tǒng)進(jìn)行建模,然后仿真,最后在硬件電路中進(jìn)行調(diào)試的新方法。Proteus 正是這樣一款順應(yīng)時(shí)代需求的EDA 軟件。本文以Proteus 為平臺(tái),設(shè)計(jì)一套單片機(jī)學(xué)習(xí)系統(tǒng)以達(dá)到時(shí)代對(duì)單片機(jī)教學(xué)的要求。</p><p><b> 2.2單片機(jī)特點(diǎn)</b></p><p>
31、; 2.2.1系統(tǒng)可編程特性</p><p> 首開(kāi)用單片機(jī)學(xué)習(xí)開(kāi)發(fā)系統(tǒng),可方便地在系統(tǒng)實(shí)現(xiàn)程序下載,實(shí)時(shí)修改程序的不足之處,并立即從目標(biāo)系統(tǒng)中反映出修改的結(jié)果,大大縮短單片機(jī)學(xué)習(xí)開(kāi)發(fā)的周期,提高效率。</p><p> 2.2.2代碼全速仿真</p><p> 彌補(bǔ)傳統(tǒng)學(xué)習(xí)系統(tǒng)不能全速仿真的缺陷,使系統(tǒng)運(yùn)行的結(jié)果完全反映代碼的執(zhí)行情況,更切實(shí)地吻合教學(xué)儀器
32、的特點(diǎn)。其次,在軟件開(kāi)發(fā)前的仿真調(diào)試后,完全可燒寫(xiě)入目標(biāo)芯片,并能獲得完全一致的代碼執(zhí)行結(jié)果。是集學(xué)習(xí)、開(kāi)發(fā)于一身的優(yōu)良的目標(biāo)系統(tǒng)。</p><p> 2.2.3資源的可重復(fù)利用性</p><p> 目標(biāo)系統(tǒng)上的所有資源均能重復(fù)利用并能通過(guò)軟件調(diào)配或通過(guò)擴(kuò)展槽增加其它的功能提高系統(tǒng)的實(shí)用性。</p><p> 2.2.4軟硬結(jié)合,操作簡(jiǎn)單方便</p>
33、;<p> 我們不僅提供豐富的硬件資源,也提供良好的上位機(jī)控制軟件,只要通過(guò)軟件的功能操作就能實(shí)現(xiàn):源代碼的調(diào)試編譯,查找與修改錯(cuò)誤之處,在線代碼下載等功能,使單片機(jī)的學(xué)習(xí)與開(kāi)發(fā)一體化、集成化,更進(jìn)一步體現(xiàn)系統(tǒng)學(xué)習(xí)的優(yōu)越性。</p><p> 伴隨著計(jì)算機(jī)軟件和硬件技術(shù)的飛速發(fā)展,在各個(gè)領(lǐng)域都出現(xiàn)了各種仿真系統(tǒng),為各種實(shí)際系統(tǒng)的開(kāi)發(fā)提供了準(zhǔn)確可靠的保證,同時(shí)節(jié)約了大量的人力和物力。目前單片機(jī)的課
34、程除了主要開(kāi)設(shè)8051系列單片機(jī)課程之外,還開(kāi)設(shè)AVR系列、PIC等系列的選修課。為了保證相應(yīng)實(shí)驗(yàn)的開(kāi)設(shè),必須要有配套的實(shí)驗(yàn)系統(tǒng)。如果要保證一定的實(shí)驗(yàn)硬件設(shè)備套數(shù),將是一筆更大的開(kāi)支。所以在目前經(jīng)費(fèi)非常緊張的情況下,根據(jù)經(jīng)驗(yàn),引入單片機(jī)軟件仿真系統(tǒng)(Proteus,Keil)等軟件,就可以大大減少硬件設(shè)備的采購(gòu),同時(shí)降低對(duì)硬件設(shè)備進(jìn)行維護(hù)的工作量。</p><p> 這里我們利用Proteus仿真軟件,設(shè)計(jì)了純
35、軟件的單片機(jī)虛擬實(shí)驗(yàn)系統(tǒng),既可調(diào)試單片機(jī)程序,也可仿真單片機(jī)外圍器件的工作情況;既能充分利用學(xué)校計(jì)算機(jī)房現(xiàn)有計(jì)算機(jī),減少硬件設(shè)備的維護(hù)工作量,還可為學(xué)生提供豐富的實(shí)驗(yàn)內(nèi)容[4]。</p><p><b> 2.3系統(tǒng)總體組成</b></p><p> 由于 Proteus 強(qiáng)大的交互可視功能,本系統(tǒng)的實(shí)驗(yàn)相對(duì)于一般的實(shí)物板功能更強(qiáng)大,實(shí)驗(yàn)項(xiàng)目更復(fù)雜,實(shí)驗(yàn)項(xiàng)目更豐富
36、,且更容易進(jìn)行開(kāi)放性實(shí)驗(yàn)。</p><p> 該系統(tǒng)主要包括4X4鍵盤(pán)顯示、8位發(fā)光二極管流水燈顯示、A/D以及D/A轉(zhuǎn)換4個(gè)模塊,所有電路都是圍繞主芯片AT89C51來(lái)完成的。下圖為作者設(shè)計(jì)的電路的整體框圖,如圖2-1所示。</p><p> 圖2-1 系統(tǒng)電路圖</p><p> 2.4實(shí)驗(yàn)系統(tǒng)的功能特點(diǎn)</p><p> 1)實(shí)
37、驗(yàn)過(guò)程和結(jié)果清晰可見(jiàn),單片機(jī)的工作過(guò)程最大程度的得到體現(xiàn);</p><p> 2)實(shí)驗(yàn)系統(tǒng)軟硬件資源全面對(duì)用戶(hù)開(kāi)放;</p><p> 3)學(xué)生可在實(shí)驗(yàn)過(guò)程中可以靈活設(shè)計(jì)實(shí)驗(yàn)線路;</p><p> 4)實(shí)驗(yàn)?zāi)K可以靈活組合,構(gòu)成靈活的綜合性、設(shè)計(jì)性實(shí)驗(yàn);</p><p> 5)以 Windows 下的Proteus與Keil 為實(shí)驗(yàn)
38、平臺(tái),學(xué)習(xí)難度降低。</p><p> 2.5本課題研究重點(diǎn)</p><p> 本課題主要研究的是基于PROTEUS的單片機(jī)虛擬實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì),設(shè)計(jì)一個(gè)51系列單片機(jī)虛擬實(shí)驗(yàn)系統(tǒng)的硬件環(huán)境,具備鍵盤(pán)、顯示、A/D、D/A等人機(jī)通道、前向通道、后向通道,設(shè)計(jì)用該虛擬實(shí)驗(yàn)系統(tǒng)可以完成的單片機(jī)實(shí)驗(yàn)。</p><p> 2.5.1電路圖仿真部分</p>
39、<p> 電路圖仿真部分主要通過(guò)Proteus實(shí)現(xiàn),Proteus與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)CPU的工作情況,也能仿真單片機(jī)外圍電路或沒(méi)有單片機(jī)參與的其它電路的工作情況。因此在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語(yǔ)句執(zhí)行時(shí)單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過(guò)程和結(jié)果。對(duì)于這樣的仿真實(shí)驗(yàn),從某種意義上講,是彌補(bǔ)了實(shí)驗(yàn)和工程應(yīng)用間脫節(jié)的矛盾和現(xiàn)象。采用Proteus仿真
40、軟件進(jìn)行虛擬單片機(jī)實(shí)驗(yàn),具有比較明顯的優(yōu)勢(shì),如涉及到的實(shí)驗(yàn)實(shí)習(xí)內(nèi)容全面、硬件投入少、學(xué)生可自行實(shí)驗(yàn)、實(shí)驗(yàn)過(guò)程中損耗小、與工程實(shí)踐最為接近等。</p><p> 2.5.2程序編譯部分</p><p> Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編
41、語(yǔ)言后再使用C語(yǔ)言來(lái)開(kāi)發(fā),體會(huì)更加深刻。</p><p> 編譯部分主要通過(guò)Keil C51 uVision4來(lái)編譯,Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。</p>&
42、lt;p><b> 3開(kāi)發(fā)工具介紹</b></p><p> 3.1 Proteus軟件</p><p> Proteus 軟件是由英國(guó)Lab Center Electronics 公司開(kāi)發(fā)的EDA 工具軟件。Proteus軟件已有近20 年的歷史,在全球已得到廣泛使用。Proteus 軟件集成了高級(jí)原理布圖、混合模式SPICE 電路仿真、PCB 設(shè)計(jì)以及
43、自動(dòng)布線來(lái)實(shí)現(xiàn)一個(gè)完整的電子設(shè)計(jì)系統(tǒng)。如圖3-1 所示,Proteus 是一個(gè)完整的嵌入式系統(tǒng)軟、硬件平臺(tái)。 </p><p> 圖3-1 Proteus軟件工作模塊</p><p> Proteus與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)CPU的工作情況,也能仿真單片機(jī)外圍電路或沒(méi)有單片機(jī)參與的其它電路的工作情況。因此在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語(yǔ)句執(zhí)行時(shí)單片機(jī)寄存器
44、和存儲(chǔ)器內(nèi)容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過(guò)程和結(jié)果。對(duì)于這樣的仿真實(shí)驗(yàn),從某種意義上講,是彌補(bǔ)了實(shí)驗(yàn)和工程應(yīng)用間脫節(jié)的矛盾和現(xiàn)象。</p><p> Proteus運(yùn)行對(duì)硬件的要求:Proteus對(duì)PC的配置要求不高,對(duì)于一般性的小型實(shí)驗(yàn)只需要主頻1.2GHz 的CPU,256M內(nèi)存即可。但當(dāng)仿真的元件較多,設(shè)計(jì)規(guī)模較大時(shí),比如本文設(shè)計(jì)的實(shí)驗(yàn)系統(tǒng),需要主頻2.0GHz 以上的CPU,512
45、M內(nèi)存的PC才能很好地仿真,否則,系統(tǒng)運(yùn)行速度較慢。對(duì)于PC技術(shù)的發(fā)展,這一配置只是4 年前的主流配置,所以學(xué)校建立仿真實(shí)驗(yàn)室時(shí)在PC的選擇上不存在問(wèn)題[5]。</p><p> 3.1.1 Proteus軟件工作過(guò)程</p><p> 運(yùn)行Proteus的ISIS程序后,進(jìn)入該仿真軟件的主界面。在工作前,要設(shè)置view菜單下的捕捉對(duì)齊和system下的顏色、圖形界面大小等項(xiàng)目。通過(guò)工
46、具欄中的p(從庫(kù)中選擇元件命令)命令,在pick devices窗口中選擇電路所需的元件,放置元件并調(diào)整其相對(duì)位置,元件參數(shù)設(shè)置,元器件間連線,編寫(xiě)程序;在source菜單Define code generationtools菜單命令下,選擇程序編譯的工具、路徑、擴(kuò)展名等項(xiàng)目;在source菜單的Add/remove source files命令下,加入單片機(jī)硬件電路的對(duì)應(yīng)程序;通過(guò)de
47、bug菜單的相應(yīng)命令仿真程序和電路的運(yùn)行情況。</p><p> 3.1.2 Proteus軟件所提供的調(diào)試手段</p><p> Proteus提供了比較豐富的測(cè)試信號(hào)用于電路的測(cè)試。這些測(cè)試信號(hào)包括模擬信號(hào)和數(shù)字信號(hào)。</p><p> 對(duì)于單片機(jī)硬件電路和軟件的調(diào)試,Proteus 提供了兩種方法:一種是系統(tǒng)總體執(zhí)行效果,一種是對(duì)軟件的分步調(diào)試
48、以看具體的執(zhí)行情況。</p><p> 對(duì)于總體執(zhí)行效果的調(diào)試方法,只需要執(zhí)行debug菜單下的execute菜單項(xiàng)或F12快捷鍵啟動(dòng)執(zhí)行,用debug菜單下的pause animation菜單項(xiàng)或pause鍵暫停系統(tǒng)的運(yùn)行;或用debug菜單下的stop animation 菜單項(xiàng)或shift-break組合鍵停止系統(tǒng)的運(yùn)行。其運(yùn)行方式也可以選擇工具欄中的相應(yīng)工具進(jìn)行。</
49、p><p> 對(duì)于軟件的分步調(diào)試,應(yīng)先執(zhí)行debug菜單下的start/restart debugging 菜單項(xiàng)命令,此時(shí)可以選擇step over、step into和step out命令執(zhí)行程序(可以用快捷鍵F10、F11和ctrl+F11),執(zhí)行的效果是單句執(zhí)行、進(jìn)入子程序執(zhí)行和跳出子程序執(zhí)行。在執(zhí)行了start / restart
50、60;debuging命令后,在debug菜單的下面要出現(xiàn)仿真中所涉及到的軟件列表和單片機(jī)的系統(tǒng)資源等,可供調(diào)試時(shí)分析和查看[6]。</p><p> 3.1.3 Proteus ISIS 原理圖設(shè)計(jì)</p><p> ISIS具有智能原理圖輸出流程:</p><p> 1)設(shè)置編輯環(huán)境:用戶(hù)可以可自定義圖形外觀,包括線寬、填充類(lèi)型、字符等;</p>
51、;<p> 2)原理圖連線:點(diǎn)擊元件引腳或者先前連好的線,就能實(shí)現(xiàn)連線;也可使用自;</p><p><b> 動(dòng)連線工具連線;</b></p><p> 3)建立網(wǎng)絡(luò)表:網(wǎng)絡(luò)表是電路板與電路原理圖之間的紐帶。建立的網(wǎng)表用于</p><p><b> PCB制板;</b></p><
52、;p> 4)報(bào)表輸出:材料報(bào)表、ERC 報(bào)表等。</p><p> 圖 3-2 是ISIS原理圖輸出的流程圖,由此可見(jiàn)ISIS設(shè)計(jì)的智能性和人性化使原理圖的設(shè)計(jì)簡(jiǎn)明高效。 </p><p> 圖3-2 Proteus ISIS原理圖</p><p> 圖 3-2 ISIS 原理輸出流程圖</p><p> 3.1.4 Prot
53、eus ISIS 軟件界面介紹</p><p> Proteus的工作界面是一種標(biāo)準(zhǔn)的Windows界面,如圖3-3所示。包括:標(biāo)題欄、主菜單、標(biāo)準(zhǔn)工具欄、狀態(tài)欄、對(duì)象選擇按鈕、預(yù)覽對(duì)象方位控制按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對(duì)象選擇器窗口、圖形編輯窗口。</p><p> 圖 3-3 Proteus ISIS的工作界面</p><p> 3.2 Keil
54、C51 uVision4軟件介紹</p><p> Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。</p><p> 該軟件支持眾多不同公司的MCS51架構(gòu)的芯片,
55、集編輯、編譯和程序仿真等于一體,同時(shí)還支持PLM、匯編和C語(yǔ)言的程序設(shè)計(jì)。它的界面友好易學(xué),在調(diào)試程序、軟件仿真方面有很強(qiáng)大的功能,并且通過(guò)設(shè)置可與ISIS聯(lián)機(jī)調(diào)試單片機(jī)系統(tǒng)。</p><p> C51工具包的整體結(jié)構(gòu),所示,其中uVision與Ishell分別是C51 for Windows和for Dos的集成開(kāi)發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。以下我們也簡(jiǎn)單介紹一下在K
56、eil中調(diào)用Proteus進(jìn)行MCU外圍器件的仿真[7]。</p><p> 3.3 Proteus 與Keil的連接</p><p> Proteus 軟件包括匯編語(yǔ)言編譯系統(tǒng),可以在軟件平臺(tái)上對(duì)單片機(jī)進(jìn)行可視化調(diào)試。但是,現(xiàn)在的大部分的單片機(jī)研發(fā)人員都用C 語(yǔ)言對(duì)單片機(jī)進(jìn)行編程控制。應(yīng)用TCP/IP 協(xié)議,Proteus 與Keil 的聯(lián)調(diào)很好地解決了Proteus 自帶的編譯系統(tǒng)
57、無(wú)法對(duì)C 語(yǔ)言進(jìn)行編譯的問(wèn)題。其中,Keil 是目前世界上最好的51 單片機(jī)的C語(yǔ)言的開(kāi)發(fā)工具。以下是如何將C 語(yǔ)言的開(kāi)發(fā)環(huán)境移植到Proteus 的設(shè)計(jì)中的方法:</p><p> 首先,下載安裝這兩個(gè)軟件。</p><p> 第二步,安裝完畢,把 Proteus7 Professional\MODELS\目錄下的 VDM51.dll 文件復(fù)制到 Keil\C51\BIN 文件夾下。
58、</p><p> 第三步,用文本編譯器打開(kāi) Keil 根目錄下的 TOOLS.INI 文件,在[C51] 欄目下加入 TDRV3=BIN\VDM51.DLL ("Proteus VSM Monitor-51 Driver" ) ,其中“TDRV3” 中的 “3”要根據(jù)實(shí)際情況寫(xiě),不要和原來(lái)的重復(fù)。</p><p> 第四步,Keil 的設(shè)置。在Keil 中打開(kāi)一個(gè)
59、項(xiàng)目,在"option for target"中的Debug標(biāo)簽中選中 " Proteus VSM Monitor-51 Driver" 。再點(diǎn)擊"Setting"設(shè)置通信接口,在Host 后面添上"127.0.0.1",如果你是用的不是同一臺(tái)電腦,在這里添上另一臺(tái)電腦的IP 地址(另一臺(tái)電腦已安裝Proteus), 在 Port 后面添上"800
60、0",點(diǎn)擊"OK"按鈕即可等待編譯工程。</p><p> 第五步,Proteus 的設(shè)置。運(yùn)行Proteus 的ISIS,鼠標(biāo)左鍵點(diǎn)擊菜單"DEBUG",選中"use remote debug monitor"。按Ctrl+F5 進(jìn)入調(diào)試界面或者點(diǎn)擊工具欄的調(diào)試按鈕。</p><p> 連接成功以后,在 Keil
61、調(diào)試程序,單步、全速調(diào)試,設(shè)置斷點(diǎn),觀察變量的值等,而Proteus 界面中電路開(kāi)始運(yùn)行,各種仿真元件的電器性質(zhì)發(fā)生變化;當(dāng)Proteus做硬件方面的模擬,如按按鍵、改變可調(diào)電阻的阻值等時(shí),Keil 中的調(diào)試窗口中監(jiān)控的寄存器也會(huì)有相應(yīng)的變化。如果程序錯(cuò)誤,設(shè)計(jì)人員很容易發(fā)現(xiàn)出錯(cuò)的代碼段;并且,學(xué)生也可以很清晰地觀察到每句程序?qū)纹瑱C(jī)電路的控制。</p><p> 我們能過(guò)一個(gè)例子來(lái)看如何在Keil中設(shè)置調(diào)試選
62、項(xiàng),并演示Proteus與Keil協(xié)同工作完成一個(gè)虛擬硬件仿真工作。</p><p> 1)先建立一個(gè)工程目錄,在這里取名New project,然后運(yùn)行Keil并在此目錄建立一個(gè)名為New project程,如下圖3-4所示。</p><p> 圖3-4建立工程界面</p><p> 2)這時(shí)會(huì)彈出一個(gè)對(duì)話(huà)框,要求你選擇單片機(jī)的型號(hào),你可以根據(jù)你使用的單片機(jī)
63、來(lái)選擇,keil c51 幾乎支持所有的51系列的單片機(jī),我這里還是以大家用的比較多的Atmel 的89C51 來(lái)說(shuō)明,如下圖所示,選擇89C51 之后,右邊欄是對(duì)這個(gè)單片機(jī)的基本的說(shuō)明,然后點(diǎn)擊確定。如下圖3-5所示。</p><p> 圖3-5 選擇89C51界面</p><p> 3)完成上一步驟后,屏幕如下圖3-6所示。</p><p> 圖3-6 完
64、成進(jìn)入C51界面</p><p> 4)然后右鍵SourceGroup1,選擇加入文件選項(xiàng)。如下圖3-7所示。</p><p> 圖3-7 添加程序界面</p><p> 5)然后加所要用到的程序添加進(jìn)來(lái),然后點(diǎn)擊編譯鏈接。完成之后我們就可以進(jìn)行DEBUG選項(xiàng)并開(kāi)始虛擬硬件仿真了。右鍵Target1,選擇Option for Target‘ Target1’,
65、如下圖3-7所示。</p><p> 圖3-8 準(zhǔn)備設(shè)置Target1界面</p><p> 在打開(kāi)的選項(xiàng)對(duì)話(huà)筐中選擇Debug選項(xiàng)卡,如下圖3-9所示。</p><p> 圖3-9 設(shè)置Debug界面</p><p> 6)點(diǎn)擊開(kāi)始->程序->Proteus7->ISIS7,運(yùn)行Proteus軟件,然后在PROTE
66、US環(huán)境中選擇Debug->Use Remote Debug Monitor如下圖3-10所示。</p><p> 圖3-10進(jìn)入Proteus界面</p><p> 這樣所有的連接就設(shè)好了,就可以進(jìn)行仿真工作了。</p><p><b> 4硬件電路詳細(xì)設(shè)計(jì)</b></p><p><b> 4
67、.1整體框圖設(shè)計(jì)</b></p><p> 我們所設(shè)計(jì)的電路是圍繞芯片AT89C51來(lái)設(shè)計(jì)的,下圖為在Proteus中的電路總圖設(shè)計(jì),如圖4-1所示。下一節(jié)我們將重點(diǎn)介紹各電路模塊的設(shè)計(jì)。</p><p> 圖4-1 電路總設(shè)計(jì)圖</p><p> 4.2電路各模塊詳細(xì)設(shè)計(jì)</p><p> 4.2.1主芯片AT89C51
68、</p><p> 本設(shè)計(jì)主要是圍繞芯片AT89C51來(lái)設(shè)計(jì)的,下圖為芯片AT89C51引腳的具體說(shuō)明,如圖4-2所示。</p><p> 圖4-2 AT89C51芯片</p><p> 1)AT89C51介紹</p><p> AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Falsh Programmabl
69、e and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱(chēng)單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多 功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。<
70、/p><p> 2)AT89C51管腳說(shuō)明 </p><p><b> VCC:供電電壓。</b></p><p><b> GND:接地。</b></p><p> P0口:P0口為一個(gè)8位開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。當(dāng)P1口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。P0能夠用于外
71、部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。</p><p> P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門(mén)電流。P1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作 輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P
72、1口作為第八位地址接收。 </p><p> P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻 拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存 儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)
73、外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能寄存器 的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 </p><p> P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門(mén)電流。當(dāng)P3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 </p><p>
74、 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p> ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE 端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器 時(shí),將跳過(guò)一個(gè)ALE
75、脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。 </p><p> PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。</p><p>
76、 EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí), /EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p> XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p> XTAL2:來(lái)自
77、反向振蕩器的輸出。</p><p> 4.2.2 8位發(fā)光二極管</p><p> 以AT89C51為主芯片設(shè)計(jì)的一個(gè)8位發(fā)光二極管以流水燈的形式顯示的基本電路,首先,7個(gè)發(fā)光二極管的輸入端是和AT89C51的P1口從P1.0到P1.7端相接,形成7個(gè)輸入端口,其次,在發(fā)光二極管和主芯片之間串聯(lián)一個(gè)150的電阻,是用來(lái)防止發(fā)光二極管在電壓過(guò)大的情況下燒壞的,然后在發(fā)光二極管的另一端接的
78、是高電平VCC,這樣就形成了7個(gè)閉合回路。跑馬燈實(shí)驗(yàn)看似簡(jiǎn)單,但其包含了單片機(jī)最小系統(tǒng)的設(shè)計(jì)和 I/O 口的控制,是單片機(jī)學(xué)習(xí)的入門(mén)級(jí)實(shí)驗(yàn)[8]。如下圖4-3所示。</p><p> 圖4-3 8位發(fā)光二極管電路</p><p><b> 1)電路接法</b></p><p> 8位發(fā)光二極管一端接的是Vcc,其次在另一端接的是AT89C
79、V52的P1口,然后在二極管和P1之間串聯(lián)一個(gè)電阻,如果Vcc為5V,而流過(guò)二極管的電流為3mA,設(shè)我用的二極管為硅管,所以我選用的電阻為150。</p><p> 2)8位發(fā)光二極管原理</p><p> 因?yàn)槎O管左邊接的是Vcc作為高電平,所以如果要二極管亮的話(huà)P1口必須輸入低電平,就一條通路而言,在P1.0輸入低電平后,D1導(dǎo)通,所以D1就亮了,然后在后面加上延遲,也就是亮的時(shí)
80、間后再輸入P1.1口為低電平,D2二極管就發(fā)亮,同理而言,就實(shí)現(xiàn)了流水燈的實(shí)驗(yàn)。</p><p><b> 3)外部中斷實(shí)驗(yàn)</b></p><p> 一般的單片機(jī)觸發(fā)方式有兩種:低電平觸發(fā)IT0=0(或中斷1的IT1=0)和下降沿觸發(fā)IT1=1。IT0或IT1不設(shè)置也行,默認(rèn)為0即低電平觸發(fā),只要中斷IO管腳輸入電平為0,即低電平觸發(fā)進(jìn)入中斷,但前提是EA=1而
81、且ET0=1(EA為打開(kāi)總中斷,ET0是允許進(jìn)入中斷函數(shù)),這個(gè)時(shí)候會(huì)停止主函數(shù),轉(zhuǎn)而進(jìn)入中斷函數(shù)處理,處理完中斷函數(shù)后返回原來(lái)停止的地址繼續(xù)執(zhí)行主函數(shù)。原理圖如圖4-4所示。</p><p> 圖4-4 外部中斷實(shí)驗(yàn)原理圖</p><p> 4.2.3 4×4 矩陣式鍵盤(pán)</p><p> 鍵盤(pán)電路是用AT89S51 的并行口P3 接4×
82、4 矩陣鍵盤(pán),以P3.0-P3.3作輸入線,以P3.4-P3.7作輸出線;數(shù)碼管的a,b,c,d,e,f,g 7個(gè)端口分別連接主芯片AT89C51的P2.0到P2.6端口,在數(shù)碼管上顯示每個(gè)按鍵的“0-F”序號(hào)。如下圖4-5 所示。</p><p> 圖4-5 鍵盤(pán)顯示電路</p><p><b> 1)接口說(shuō)明</b></p><p>
83、 接口P3.0控制0號(hào),1號(hào),2號(hào),3號(hào)開(kāi)關(guān);</p><p> 接口P3.1控制4號(hào),5號(hào),6號(hào),7號(hào)開(kāi)關(guān);</p><p> 接口P3.2控制8號(hào),9號(hào),A號(hào),B號(hào)開(kāi)關(guān);</p><p> 接口P3.3控制C號(hào),D號(hào),E號(hào),F(xiàn)號(hào)開(kāi)關(guān);</p><p> P3.4-P3.7則為輸出。</p><p> 當(dāng)按
84、下0號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘0111111’;</p><p> 當(dāng)按下1號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘1111001’;</p><p> 當(dāng)按下2號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘0110111’;</p><p> 當(dāng)按下3號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘1001111’;</p><p> 當(dāng)按下4號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘1100110’;</
85、p><p> 當(dāng)按下5號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘1101101’;</p><p> 當(dāng)按下6號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘1111101’;</p><p> 當(dāng)按下7號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘0000111’;</p><p> 當(dāng)按下8號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘1111111’;</p><p> 當(dāng)按下9號(hào)開(kāi)關(guān)時(shí),數(shù)
86、碼管顯示為‘1101111’;</p><p> 當(dāng)按下A號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘1110111’;</p><p> 當(dāng)按下B號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘1111100’;</p><p> 當(dāng)按下C號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘0111001’;</p><p> 當(dāng)按下D號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘1011110’;</p>&
87、lt;p> 當(dāng)按下E號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘1111001’;</p><p> 當(dāng)按下F號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘1110001’。</p><p> 2)4×4 矩陣鍵盤(pán)工作原理</p><p> 矩陣鍵盤(pán)又稱(chēng)為行列式鍵盤(pán),它是用4條I/O線作為行線,4條I/O線作為列線組成的鍵盤(pán)。在行線和列線的每一個(gè)交叉點(diǎn)上,設(shè)置一個(gè)按鍵。這樣鍵盤(pán)中按鍵
88、的個(gè)數(shù)是4×4個(gè)。這種行列式鍵盤(pán)結(jié)構(gòu)能夠有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。</p><p> 4.2.4 A/D轉(zhuǎn)換電路</p><p> A/D 轉(zhuǎn)換器(ADC)的作用就是把模擬量轉(zhuǎn)化成數(shù)字量,以便于計(jì)算機(jī)進(jìn)行處理。隨著超大規(guī)模集成電路技術(shù)的飛速發(fā)展,A/D 轉(zhuǎn)換器的新設(shè)計(jì)思想和制造技術(shù)層出不窮。為滿(mǎn)足各種不同的檢測(cè)及控制任務(wù),大量結(jié)構(gòu)不同、性能各異的A/D 轉(zhuǎn)換芯片
89、應(yīng)運(yùn)而生。根據(jù)A/D 轉(zhuǎn)換器的原理可將A/D 轉(zhuǎn)換器分成兩大類(lèi):一類(lèi)是直接型A/D 轉(zhuǎn)換器,另一類(lèi)是間接型A/D 轉(zhuǎn)換器。在直接型A/D 轉(zhuǎn)換器中,輸入的模擬電壓被直接轉(zhuǎn)換成數(shù)字代碼,不經(jīng)任何中間變量;在間接型A/D 轉(zhuǎn)換器中,首先把輸入的模擬電壓轉(zhuǎn)換成某種中間變量(時(shí)間、頻率、脈沖寬度等等),然后再把這個(gè)中間變量轉(zhuǎn)換為數(shù)字代碼輸出。盡管 A/D 轉(zhuǎn)換器的種類(lèi)很多,但目前應(yīng)用于教學(xué)的主要有以下幾種類(lèi)型:逐次逼近式轉(zhuǎn)換器、雙積分式轉(zhuǎn)換器和
90、V/F 轉(zhuǎn)換器。</p><p> 本實(shí)驗(yàn)使用逐次逼近式 A/D 轉(zhuǎn)換器,它在精度、速度和價(jià)格上都適中,是最常用的A/D 轉(zhuǎn)換器[9]。</p><p> 實(shí)驗(yàn)?zāi)康模赫莆?MCS-51 與A/D 轉(zhuǎn)換器接口設(shè)計(jì)與應(yīng)用。</p><p> 實(shí)驗(yàn)的功能:將 ADC0808 采集到的模擬信號(hào)轉(zhuǎn)換生成數(shù)字信號(hào),將數(shù)字信號(hào)發(fā)送給單片機(jī),并將該信號(hào)的數(shù)值在數(shù)碼管上顯示出來(lái)
91、。</p><p> 1) ADC0808芯片</p><p> ADC0808 是帶有8 位A/D 轉(zhuǎn)換器、8 路多路開(kāi)關(guān)、及微處理機(jī)兼容的控制邏輯的CMOS 器件。它是逐次逼近式A/D 轉(zhuǎn)換器,可以和單片機(jī)直接連接。</p><p> ADC0808 由一個(gè)8 路模擬開(kāi)關(guān)、一個(gè)地址鎖存器、一個(gè)A/D 轉(zhuǎn)換器和一個(gè)三態(tài)緩沖器組成。多路開(kāi)關(guān)可選通8 個(gè)模擬通道
92、,允許8 路模擬量分時(shí)輸入,公用A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。三態(tài)輸出鎖存器用于鎖存A/D 轉(zhuǎn)換完的數(shù)字量,當(dāng)OE 端為高電平時(shí),才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。ADC0808 引腳圖如圖4-6 所示。</p><p><b> ·</b></p><p> 圖4-6 ADC0808 引腳圖</p><p> ADC0808模數(shù)
93、轉(zhuǎn)換器的引腳功能:</p><p> IN0~I(xiàn)N7: 8路模擬量輸入。</p><p> OUT1-OUT8:8位數(shù)字量輸出端口。</p><p> ADD A、ADD B、ADD C: 3位地址輸入,2個(gè)地址輸入端的不同組合選擇八路模擬量輸入。</p><p> ALE:地址鎖存啟動(dòng)信號(hào),在ALE的上升沿,將A、B、C上的通道地址
94、鎖存到內(nèi)部的地址鎖存器。</p><p> OE:允許輸出信號(hào)。當(dāng)OE=1時(shí),即為高電平,允許輸出鎖存器輸出數(shù)據(jù)。</p><p> START:啟動(dòng)信號(hào)輸入端,START為正脈沖,其上升沿清除ADC0808的內(nèi)部的各寄存器,其下降沿啟動(dòng)A/D開(kāi)始轉(zhuǎn)換。</p><p> EOC:轉(zhuǎn)換完成信號(hào),當(dāng)EOC上升為高電平時(shí),表明內(nèi)部A/D轉(zhuǎn)換已完成。OE端的電平由低
95、變高,打開(kāi)三態(tài)輸出鎖存器,將轉(zhuǎn)換的結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。</p><p> CLOCK:時(shí)鐘輸入信號(hào),0809的時(shí)鐘頻率范圍在10~1200kHz,典型值為640kHz。</p><p> REF(+)、REF(-):基準(zhǔn)電壓。</p><p> Vcc:電源電壓,+5V。</p><p> GND:地線輸入端。</p&
96、gt;<p> 2)A/D轉(zhuǎn)換電路設(shè)計(jì)</p><p> 利用ADC0808芯片,我們?cè)O(shè)計(jì)了一個(gè)簡(jiǎn)單的A/D轉(zhuǎn)換電路,如下圖4-7所示。數(shù)碼管的輸入口接的是主芯片的P0口從P0.0到P0.6端,而DP口則是用P0口的P0.7口來(lái)控制的,數(shù)碼管的使用也是由P2口的P2.0到P2.3端來(lái)控制的。</p><p> 圖4-7 A/D轉(zhuǎn)換電路圖</p><p
97、><b> 電路說(shuō)明:</b></p><p> 1)ADC0808內(nèi)部帶有輸出鎖存器,可以與AT89S51單片機(jī)直接相連。</p><p> 2)初始化時(shí),使ST和OE信號(hào)全為低電平。</p><p> 3)送要轉(zhuǎn)換的哪一通道的地址到A,B,C端口上。</p><p> 4)在ST端給出一個(gè)至少有100
98、ns寬的正脈沖信號(hào)。</p><p> 5)是否轉(zhuǎn)換完畢,我們根據(jù)EOC信號(hào)來(lái)判斷。</p><p> 6)當(dāng)EOC變?yōu)楦唠娖綍r(shí),這時(shí)給OE為高電平,轉(zhuǎn)換的數(shù)據(jù)就輸出給單片機(jī)了。</p><p> 4.2.5 D/A轉(zhuǎn)換電路</p><p> 1)DAC0832芯片介紹</p><p> 這里我們主要介紹一下
99、DAC0832芯片,如下圖4-8所示。DAC0832是雙列直插式8位D/A轉(zhuǎn)換器。能完成數(shù)字量輸入到模擬量(電流)輸出的轉(zhuǎn)換。其主要參數(shù)如下:分辨率為8位,轉(zhuǎn)換時(shí)間為1μs,滿(mǎn)量程誤差為±1LSB,參考電壓為(+10~-10)V,供電電源為(+5~+15)V,邏輯電平輸入與TTL兼容。在DAC0832中有兩級(jí)鎖存器,第一級(jí)鎖存器稱(chēng)為輸入寄存器,它的允許鎖存信號(hào)為ILE,第二級(jí)鎖存器稱(chēng)為DAC寄存器,它的鎖存信號(hào)也稱(chēng)為通道控制信
100、號(hào) /XFER。</p><p> 圖4-8 DAC0832引腳圖</p><p><b> 引腳說(shuō)明如下:</b></p><p> DI0~DI7:8位數(shù)據(jù)輸入線。</p><p> :片選信號(hào)輸入,低電平有效。</p><p> ILE:數(shù)據(jù)鎖存允許控制信號(hào),高電平有效。</
101、p><p> :輸入寄存器寫(xiě)選通輸入信號(hào),低電平有效。</p><p> ?。篋AC寄存器寫(xiě)選通信號(hào)(輸入),低電平有效。</p><p> ?。簲?shù)據(jù)傳送控制信號(hào)(輸入),低電平有效。</p><p> Ioutl、Iout2:電流輸出,Ioutl+Iout2=常數(shù)。</p><p> Rf b:反饋電阻端。內(nèi)部接反
102、饋電阻,外部通過(guò)該引腳接運(yùn)放輸出端。</p><p> VREF:基準(zhǔn)電壓,其值為-l0V~+l0V。</p><p> AGND:模擬地,為模擬信號(hào)和基準(zhǔn)電源的參考地。</p><p> DGND::數(shù)字地,為工作電源地和數(shù)字邏輯地,兩種地線可在基準(zhǔn)電源處進(jìn)行單</p><p><b> 點(diǎn)共地。</b><
103、;/p><p> Vcc:芯片工作電源,其值為+5V~+l5V。</p><p> 2)根據(jù)DAC0832芯片,我們?cè)O(shè)計(jì)了一個(gè)簡(jiǎn)單的D/A轉(zhuǎn)換電路,如下圖4-9所示。</p><p> DAC0832芯片的8位輸入口接的是主芯片的P1口從P1.0到P1.7口,而CS(低電平有效)、WR1和WR2(低電平有效)、GND、XFER(低電平有效)一系列低電平都接地,然后
104、VCC、VREF、ILE端都與高電平相連,最后,我們把IOUT1和IOUT2兩個(gè)輸出口接了一個(gè)電壓運(yùn)放器。</p><p> 圖4-9 D/A轉(zhuǎn)換電路圖</p><p><b> 5電路仿真分析報(bào)告</b></p><p> 5.1 8位發(fā)光二極管</p><p> 5.1.2流水燈實(shí)驗(yàn)</p>&
105、lt;p> 有了對(duì)于8位發(fā)光二極管的原理的了解后,現(xiàn)在我們將二極管以流水燈形式顯示出來(lái)以下是二極管在Keil中的程序,如下圖5-1所示。</p><p> 圖5-1 LED在Keil中的程序演示</p><p> 當(dāng)我們運(yùn)行程序時(shí)仿真結(jié)果如下圖5-2所示。</p><p> 圖5-2流水燈仿真結(jié)果演示圖</p><p> 5.
106、1.2外部中斷實(shí)驗(yàn)</p><p> 外部中斷實(shí)驗(yàn)在Keil中編譯的程序如圖5-3所示。</p><p> 圖5-3外部中斷實(shí)驗(yàn)在Keil中的程序演示</p><p> 仿真結(jié)果如圖5-4所示,每按下K1,LED燈按D1-D8方向跳轉(zhuǎn)點(diǎn)亮,每按下K2,跳轉(zhuǎn)方向相反。</p><p> 圖5-4外部中斷實(shí)驗(yàn)仿真演示圖</p>
107、<p> 5.2 4×4矩陣式鍵盤(pán)</p><p> 我們?cè)贙eil中生成程序如下圖5-5所示。</p><p><b> 、</b></p><p> 圖5-5 4X4鍵盤(pán)在Keil中的程序演示</p><p> 仿真結(jié)果:我們將他與Proteus聯(lián)調(diào),當(dāng)我們按下A鍵時(shí),顯示效果如下圖
108、5-6所示。</p><p> 圖5-6 4X4鍵盤(pán)仿真結(jié)果演示圖</p><p> 5.3 A/D轉(zhuǎn)換電路</p><p> 下圖為A/D轉(zhuǎn)換電路在Keil中編譯的程序,如下圖5-7所示。</p><p> 圖5-7 A/D在Keil中的程序演示</p><p> 仿真結(jié)果如下圖5-8所示。</p&
109、gt;<p> 圖5-8 A/D仿真結(jié)果演示圖</p><p> 5.4 D/A轉(zhuǎn)換電路</p><p> 下圖為D/A轉(zhuǎn)換電路在Keil中編譯的程序,如下圖5-9所示。</p><p><b> 、</b></p><p> 圖5-9 D/A在Keil中的程序演示</p>&l
110、t;p> 仿真結(jié)果如下圖5-10所示。</p><p> 圖5-10 D/A仿真結(jié)果演示圖</p><p><b> 6總結(jié)</b></p><p> 剛拿到這個(gè)課題,雖然以前接觸過(guò)類(lèi)似的實(shí)驗(yàn),但對(duì)于Proteus和Keil軟件的使用還不是太熟練,對(duì)于此虛擬系統(tǒng)電路的設(shè)計(jì)也不是很了解,對(duì)一些主要的電路設(shè)計(jì)也不是很了解。但能過(guò)自己
111、不斷的做一些小的實(shí)驗(yàn),以及xx老師不辭辛勞的為我們找了幾個(gè)小系統(tǒng)讓我們學(xué)著調(diào)試,我們慢慢的學(xué)著做,不懂的就問(wèn)問(wèn)同學(xué)和老師,我們最終對(duì)軟件的使用和對(duì)電路的仿真都有了比以前長(zhǎng)遠(yuǎn)的進(jìn)步。</p><p> 在電路設(shè)計(jì)中,我們遇到了好多的困難。以前以為畫(huà)電路圖是件很簡(jiǎn)單的事,但經(jīng)過(guò)這次對(duì)課題的設(shè)計(jì),我發(fā)現(xiàn)原來(lái)有很多地方還是值得我們學(xué)習(xí)的,有很多地方我們還是有待于提高的。在鍵盤(pán)電路設(shè)計(jì)中,由于圖上的連線比較復(fù)雜,所以我們
112、要運(yùn)用簡(jiǎn)單連線法使圖表現(xiàn)的更加清晰。但是,參考圖上表示線上的圓圈和在線上標(biāo)記字樣的形式卻不會(huì)。原來(lái)此元件就是在工具欄中Terminals Mode中的DEFAULT元件,知道了這點(diǎn)之后,在同學(xué)的幫助下,我又了解到了在線上標(biāo)記字樣的方法,原來(lái)選中此線之后右擊然后找到Place wrie Label屬性,打開(kāi)以后在里面輸入相應(yīng)的名字就行了。在設(shè)計(jì)總電路中,由于很多部件要與主芯片的接口相接,突然發(fā)現(xiàn)主芯片沒(méi)有那么多的接口。后來(lái)在xx老師的提點(diǎn)
113、下,原來(lái)遇到這個(gè)問(wèn)題,可以很簡(jiǎn)單的就解決的,就是在要與主芯片接口相接的部件上用上一種可以連線的工具就可以了。在這次電路設(shè)計(jì)中,我們確實(shí)遇到了不少的問(wèn)題,不過(guò)在老師和同學(xué)的幫助下,以及自己的努力下,我們還是完成了電路的設(shè)計(jì)。</p><p> 在做仿真結(jié)果前,我們還要做一步很重要的工作,就是PROTEUS和KEIL的聯(lián)調(diào)工作,但我們搞了很久還是不能實(shí)現(xiàn)聯(lián)調(diào)工作,在我們心急如焚的時(shí)候,老師和同學(xué)給于了我們有效的幫助
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--顯示電路
- proteus仿真單片機(jī)實(shí)驗(yàn)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---單片機(jī)秒表系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)病房呼叫系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)轉(zhuǎn)速測(cè)量系統(tǒng)
- 51單片機(jī)課程設(shè)計(jì)--基于51單片機(jī)開(kāi)發(fā)系統(tǒng)的pcb電路板
- 單片機(jī)課程設(shè)計(jì)彩燈實(shí)驗(yàn)
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)溫度測(cè)量系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---單片機(jī)控制秒表系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的秒表系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的純水機(jī)控制電路板設(shè)計(jì)
- 簡(jiǎn)論單片機(jī)課程中單片機(jī)實(shí)驗(yàn)教學(xué)探究
- 單片機(jī)課程設(shè)計(jì)--基于stc單片機(jī)的實(shí)驗(yàn)板開(kāi)發(fā)與設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)門(mén)禁系統(tǒng)的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)60秒計(jì)時(shí)器的設(shè)計(jì)與仿真
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)串行通訊
- 單片機(jī)秒表單片機(jī)課程設(shè)計(jì)
- 課程設(shè)計(jì)---單片機(jī)打鈴系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)——單片機(jī)控制步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論