單片機虛擬實(shí)驗室的建立
摘要:單片機應用技術(shù)所涉及到的實(shí)驗實(shí)踐環(huán)節比較多,而且硬件投入比較大。在具體的工程實(shí)踐中,如果因為方案有誤而進(jìn)行相應的開(kāi)發(fā)設計,會(huì )浪費較多的時(shí)間和經(jīng)費。本文以學(xué)校單片機課程的實(shí)驗教學(xué)為背景,較為全面地闡述采用仿真實(shí)驗的方法。 關(guān)鍵詞:proteus軟件 單片機 仿真 虛擬實(shí)驗室 引 言 單片機課程是機電、自動(dòng)化等專(zhuān)業(yè)的一門(mén)重要課程,可以充分體現學(xué)生利用已學(xué)知識解決實(shí)際工程問(wèn)題的能力。由于該學(xué)科是多基礎、多理論的實(shí)踐性學(xué)科,在教學(xué)過(guò)程中必須軟件硬件結合,因此有學(xué)生感到難學(xué),教師感到難教這樣的尷尬。 現代科技的發(fā)展,促進(jìn)了計算機技術(shù)在軟件和硬件上的飛速發(fā)展,利用計算機軟件的仿真技術(shù),可以充分地仿真諸如電路的工作等實(shí)際的工程問(wèn)題。作者無(wú)意中找到一款軟件Proteus,解決了許多的問(wèn)題,而單片機虛擬實(shí)驗室也是以該軟件為核心建立起來(lái)的。 1 Proteus介紹 Proteus與其它單片機仿真軟件不同的是,它不僅能仿真單片機CPU的工作情況,也能仿真單片機外圍電路或沒(méi)有單片機參與的其它電路的工作情況。因此在仿真和程序調試時(shí),關(guān)心的不再是某些語(yǔ)句執行時(shí)單片機寄存器和存儲器內容的改變,而是從工程的角度直接看程序運行和電路工作的過(guò)程和結果。對于這樣的仿真實(shí)驗,從某種意義上講,是彌補了實(shí)驗和工程應用間脫節的矛盾和現象。 (1)proteus的工作過(guò)程 運行proteus的ISIS程序后,進(jìn)入該仿真軟件的主界面。在工作前,要設置view菜單下的捕捉對齊和system下的顏色、圖形界面大小等項目。通過(guò)工具欄中的p(從庫中選擇元件命令)命令,在pick devices窗口中選擇電路所需的元件,放置元件并調整其相對位置,元件參數設置,元器件間連線(xiàn),編寫(xiě)程序;在source菜單的Define code generation tools菜單命令下,選擇程序編譯的工具、路徑、擴展名等項目;在source菜單的Add/remove source files命令下,加入單片機硬件電路的對應程序;通過(guò)debug菜單的相應命令仿真程序和電路的運行情況。 (2)Proteus軟件所提供的元件資源 Proteus 軟件所提供了30多個(gè)元件庫,數千種元件。元件涉及到數字和模擬、交流和直流等,具體情況如表1所列?! ?/p>本文引用地址:http://dyxdggzs.com/article/201610/307526.htm

對于單片機硬件電路和軟件的調試,Proteus 提供了兩種方法:一種是系統總體執行效果,一種是對軟件的分步調試以看具體的執行情況。 對于總體執行效果的調試方法,只需要執行debug菜單下的execute菜單項或F12快捷鍵啟動(dòng)執行,用debug菜單下的pause animation菜單項或pause鍵暫停系統的運行;或用debug菜單下的stop animation 菜單項或shift-break組合鍵停止系統的運行。其運行方式也可以選擇工具欄中的相應工具進(jìn)行。 對于軟件的分步調試,應先執行debug菜單下的start/restart debugging 菜單項命令,此時(shí)可以選擇step over 、step into 和 step out命令執行程序(可以用快捷鍵F10、F11和ctrl+F11),執行的效果是單句執行、進(jìn)入子程序執行和跳出子程序執行。在執行了start / restart debuging命令后,在debug菜單的下面要出現仿真中所涉及到的軟件列表和單片機的系統資源等,可供調試時(shí)分析和查看。 2 實(shí)驗的組織 在單片機的理論教學(xué)和實(shí)驗中,所涉及到的內容包括了四方面,即單片機系統資源、軟件技術(shù)、硬件接口電路、軟件和硬件結合的應用系統。因此教師在進(jìn)行教學(xué)時(shí),應該充分考慮課程的特點(diǎn)并作合理的模塊劃分,在每次實(shí)驗課程前作適當的準備工作,以使教學(xué)任務(wù)能集中和突出。以下例子中所涉及到的單片機均為51系列。 (1)系統資源的實(shí)驗教學(xué) 任何一種單片機均提供了一定的系統資源。對于51系列單片機來(lái)講,其所提供的資源是以寄存器和存儲器的方式體現出來(lái)的。對于寄存器內容的查看,可以采用多種可以模擬仿真51單片機的軟件來(lái)實(shí)現。對于Proteus 軟件來(lái)講,可以執行在debug菜單下registers菜單項命令打開(kāi)相應的窗口。對于系統內部存儲器的查看,同樣是執行debug 菜單下的 internal memory 菜單項命令打開(kāi)相應的窗口。 (2)軟件技術(shù) 在軟件技術(shù)的實(shí)驗中所涉及到的內容主要包括對語(yǔ)言中具體語(yǔ)句的執行效果驗證、算法的具體實(shí)現、程序中語(yǔ)法錯誤的檢查和邏輯錯誤的驗證等內容。對于純軟件的實(shí)驗教學(xué)內容,教師在實(shí)驗設置時(shí)應充分考慮到學(xué)生的能力并作好具體的準備工作,以達到預期的教學(xué)目的。 例如,對于兩個(gè)16位二進(jìn)制數的乘法運算R4R5%26;#215;R6R7=R3R4R5R6R7的匯編語(yǔ)言實(shí)現。為了較為直觀(guān)地驗證程序執行的正確性,教師在之前應該設計一個(gè)硬件電路,能完成數據的輸入(帶顯示)和結果的輸出(顯示),并設計主程序、bcd碼到二進(jìn)制的轉換、二進(jìn)制碼到bcd碼的轉換、bcd碼到顯示碼的轉換、顯示等程序的設計,學(xué)生只在實(shí)驗中進(jìn)行乘法運算的算法設計并作為子程序加入系統中即可。 (3)硬件接口電路 單片機的接口電路所涉及到的知識涵蓋了電子電路設計的相關(guān)領(lǐng)域,也涉及到單片機應用系統具體的工作需要。接口電路部分涉及到線(xiàn)路的連接、元器件的選擇、工作方式的設置、電路工作的穩定性和可靠性、電路的空間需求等等許多方面的知識和內容;但就學(xué)生實(shí)驗來(lái)講,所涉及到的并不需要這么全面。作為 Proteus 仿真軟件,其仿真電路時(shí)所模擬的元件真實(shí)工作情況,和單片機應用系統的實(shí)際工作環(huán)境還是有一定的差別。因此只能根據教學(xué)的需要,讓學(xué)生自行設計電路并設置其工作方式。其實(shí)驗可以通過(guò)兩種方式組織實(shí)施,一是根據具體的要求,讓學(xué)生設計接口電路并編寫(xiě)相應的程序;一是根據程序的要求,設計單片機接口電路。 例如,對于鍵盤(pán)輸入和顯示(數碼管)接口電路的設計,可以采用比較多的方法來(lái)實(shí)現。選擇何種方法,與鍵盤(pán)中鍵的數量和數碼管的個(gè)數以及顯示的方式等都有關(guān)系。選擇一種采用幾種方法都能實(shí)現的鍵盤(pán)鍵數(如12個(gè))和顯示位數(如4位或4位半),提出具體的諸如必須預留的口地址、成本控制等要求,讓學(xué)生自行設計接口電路。當然,對于如A/D轉換等接口電路的設計,教師應該在事先設計出單片機電路的其它部分,并以模塊的方式進(jìn)行處理,給學(xué)生提供電路的接口信號。 (4)軟件和硬件結合的應用系統 軟件和硬件的結合,就是一個(gè)單片機的應用系統了。這一步的實(shí)驗可以在課程設計中以課題的方式提出來(lái)處理,也可以將其分解成不同的接口部分在接口電路的多次實(shí)驗中分次完成。在這一階段,硬件電路的設計已經(jīng)不是最為關(guān)鍵的了,而軟件系統的設計、調試和運行才是實(shí)驗的主要內容。因此可以以建議性的意見(jiàn)給出具體的硬件電路,并提出該電路所需要完成的具體工作,由學(xué)生進(jìn)行軟件的設計和調試。 (5)觀(guān)摩實(shí)驗 學(xué)生自行設計的硬件系統和軟件,一般存在著(zhù)某方面的不足,當給出了相應的實(shí)驗設計任務(wù)后,學(xué)生就算能順利的完成,但其中所涉及到的有些方式方法并不能在自己的設計中充分領(lǐng)悟。Protues系統提供了相應的一些范例,比如單片機系統中的計算器示例,當教師講述了其中涉及到的所有(子)程序的功能并將其合理地組織在一起的時(shí)候,結合該系統的硬件,將對學(xué)生進(jìn)行程序的設計和系統硬件的設計方法,產(chǎn)生比較大的影響。 3 用Proteus軟件虛擬單片機實(shí)驗的優(yōu)點(diǎn) 采用Proteus 仿真軟件進(jìn)行虛擬單片機實(shí)驗,具有比較明顯的優(yōu)勢,如涉及到的實(shí)驗實(shí)習內容全面、硬件投入少、學(xué)生可自行實(shí)驗、實(shí)驗過(guò)程中損耗小、與工程實(shí)踐最為接近等。當然其存在的缺點(diǎn)也是有的。 (1)內容全面 內容全面包括其能實(shí)驗的內容包括軟件部分的匯編、C51等語(yǔ)言的調試過(guò)程,也包括硬件接口電路中的大部分類(lèi)型。對同一類(lèi)功能的接口電路,可以采用不同的硬件來(lái)搭建完成,因此采用Protues仿真軟件進(jìn)行實(shí)驗教學(xué),克服了用單片機實(shí)驗教學(xué)板教學(xué)中硬件電路固定、學(xué)生不能更改、實(shí)驗內容固定等方面的局限性,可以擴展學(xué)生的思路和提高學(xué)生的學(xué)習興趣。 (2)硬件投入少,經(jīng)濟優(yōu)勢明顯 對于傳統的采用單片機實(shí)驗教學(xué)板的教學(xué)實(shí)驗,由于硬件電路的固定,也就將單片機的CPU和具體的接口電路固定了下來(lái)。在單片機的實(shí)際教學(xué)中,如果要涉及到51系列,也要涉及到PIC16系列,那么為了教學(xué)必然要投入兩種單片機的實(shí)驗教學(xué)板;同時(shí)在教學(xué)過(guò)程中所涉及到的接口電路,也需要有較大的投入和儲備,以利于實(shí)驗的進(jìn)行和在實(shí)驗過(guò)程中元件損毀后的更換。Protues所提供的元件庫中,大部分可以直接用于接口電路的搭建,同時(shí)該軟件所提供的儀表,不管在質(zhì)量還是數量上,都是可靠和經(jīng)濟的。如果在實(shí)驗教學(xué)中投入這樣的真實(shí)的儀器儀表,僅儀表的維護來(lái)講,其工作量也是比較大的。因此采用軟件的方式進(jìn)行教學(xué),其經(jīng)濟優(yōu)勢是比較明顯的。 (3)學(xué)生可自行實(shí)驗,鍛煉解決實(shí)際工程問(wèn)題的能力 實(shí)驗能力和實(shí)驗設計能力的培養,是工科學(xué)生解決實(shí)際工程問(wèn)題能力中較為重要的。傳統的實(shí)驗教學(xué)中,忽視了學(xué)生實(shí)驗能力的培養,對于實(shí)驗設計能力的培養,則很少涉及到。因此學(xué)生學(xué)習了理論,要想將其應用到實(shí)際的工程實(shí)踐中,其難度是比較大的。還有,學(xué)生畢業(yè)后想對單片機控制技術(shù)或智能儀表等有較深的研究和學(xué)習,如果采用傳統的實(shí)驗教學(xué)方法,則學(xué)生需要購置的設備比較多,增加了他們學(xué)習和研究的投入。采用仿真軟件后,學(xué)習的投入變得比較的小,而實(shí)際工程問(wèn)題的研究,也可以先在軟件環(huán)境中模擬通過(guò),再進(jìn)行硬件的投入,這樣處理,不僅省時(shí)省力,也可以節省因方案不正確所造成的硬件投入的浪費。 (4)實(shí)驗過(guò)程中損耗小,基本沒(méi)有元器件的損耗問(wèn)題 在傳統的實(shí)驗教學(xué)過(guò)程中,都涉及到因操作不當而造成的元器件和儀器儀表的損毀,也涉及到儀器儀表等工作時(shí)所造成的能源消耗。采用Protues仿真軟件進(jìn)行的實(shí)驗教學(xué),則不存在上述的問(wèn)題,其在實(shí)驗的過(guò)程中是比較安全的。 (5)與工程實(shí)踐最為接近,可以了解實(shí)際問(wèn)題的解決過(guò)程 在進(jìn)行課程設計或進(jìn)行大實(shí)驗的時(shí)候,可以具體的在Protues中做一個(gè)工程項目,并將其最后移植到一個(gè)具體的硬件電路中,讓學(xué)生了解將仿真軟件和具體的工程實(shí)踐如何結合起來(lái),利于學(xué)生對工程實(shí)踐過(guò)程的了解和學(xué)習。 (6)大量的范例,可供學(xué)生參考處理 在系統的設計時(shí),存在對已有資源的借鑒和引用處理,而該仿真系統所提供的較多的比較完善的系統設計方法和設計范例,可供學(xué)生參考和借鑒。同時(shí)也可以在原設計上進(jìn)行修改處理。 (7)協(xié)作能力的培養和鍛煉 一個(gè)比較大的工程設計項目,是由一個(gè)開(kāi)發(fā)小組協(xié)作完成的。了解和把握別人的設計意圖和思維模式,是團結協(xié)作的基礎。在Proteus中進(jìn)行仿真實(shí)驗時(shí),所涉及到的內容并不全是學(xué)生獨立設計完成的,因此對于鍛煉學(xué)生的團結協(xié)作意識,是有好處的。 4 一個(gè)具體的課程實(shí)踐 該實(shí)驗為對8051單片機外圍電路進(jìn)行寫(xiě)數據仿真的電路。課程要求學(xué)生設計電路并提供仿真和驗證的方法。 (1)電 路 為了簡(jiǎn)化電路,將單片機的時(shí)鐘電路直接用CLOCK信號處理;對于數據的寫(xiě)入,采用邏輯分析的方法進(jìn)行,電路如圖1所示?!?
評論