文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)01-0106-03
微機(jī)原理課程是高等學(xué)校工科電工電子類的重要專業(yè)基礎(chǔ)課程,是一門理論性和實(shí)踐性都較強(qiáng)的課程。傳統(tǒng)的教學(xué)都是通過理論教學(xué)和有限的實(shí)驗(yàn)進(jìn)行。微機(jī)原理的知識(shí)構(gòu)成抽象,理解困難,而實(shí)驗(yàn)內(nèi)容固定,缺乏新意。因此,在教學(xué)過程中,很難激發(fā)學(xué)生的學(xué)習(xí)興趣,學(xué)生的創(chuàng)新思維和綜合開發(fā)能力也難以培養(yǎng)和提高。本文論述了采用Proteus虛擬仿真技術(shù)進(jìn)行微機(jī)原理教學(xué)實(shí)踐的新思路和具體方法。
1 Proteus+8086虛擬實(shí)驗(yàn)平臺(tái)
Proteus是英國(guó)Labcenter公司開發(fā)的電路分析與實(shí)物仿真及印制電路板設(shè)計(jì)軟件,它應(yīng)用于Windows操作系統(tǒng),可以仿真、分析各種模擬電路與集成電路。該軟件提供了大量模擬與數(shù)字元器件、外部設(shè)備及各種虛擬儀器,并具有對(duì)常用控制芯片及其外圍電路組成的綜合系統(tǒng)的交互仿真功能[1]。
Proteus提供多種類型的虛擬仿真模型,例如VSM for 8051、VSM for AVR、VSM for ARM7/LPC2000、VSM for PIC11/12/16/18/24/33、VSM for HC11及VSM for MSP430等。Proteus強(qiáng)大的設(shè)計(jì)與仿真功能被廣泛應(yīng)用在數(shù)字電路、模擬電路、單片機(jī)、嵌入式系統(tǒng)等多門課程的教學(xué)和實(shí)驗(yàn)中。但是,Proteus在微機(jī)原理教學(xué)中的應(yīng)用卻鮮有報(bào)道,這主要是因?yàn)橐酝腜roteus版本缺乏對(duì)微機(jī)原理課程所涉及芯片的支持。直至2009年,Labcenter公司推出了VSM for 8086平臺(tái)及Proteus 7.5 SP3軟件,支持8086微處理器與8255、8253、8259、8251等接口芯片的系統(tǒng)仿真[2]。
Proteus為8086微處理器設(shè)定了一些默認(rèn)值,同時(shí)也可以通過“編輯元器件”功能對(duì)8086模型的多種屬性進(jìn)行修改,如表1所示。此外,8086模型支持將源代碼的編輯和編譯整合到同一設(shè)計(jì)環(huán)境中,用戶可以在設(shè)計(jì)中直接編輯代碼,也可以非常容易地修改源程序并查看仿真結(jié)果。
特別需要指示的是,8086模型支持直接加載BIN,COM和EXE格式的文件到內(nèi)部RAM中,而不需要DOS,并且允許對(duì)Microsoft(Codeview)和Borland格式中包含了調(diào)試住處的程序可以進(jìn)行源和/或反匯編級(jí)別的調(diào)試,因此源碼編譯和鏈接過程的參數(shù)相當(dāng)重要。
應(yīng)用Proteus進(jìn)行8086接口技術(shù)仿真,主要是在Proteus ISIS中通過以下步驟完成:編輯電路原理圖、設(shè)置外部代碼編譯器、編寫和添加源代碼及仿真調(diào)試。
2 基于Proteus的微機(jī)原理教學(xué)設(shè)計(jì)
微機(jī)原理課程由匯編語(yǔ)言程序設(shè)計(jì)和接口技術(shù)兩大知識(shí)塊構(gòu)成,匯編語(yǔ)言是接口技術(shù)開發(fā)設(shè)計(jì)的基礎(chǔ),整門課偏重硬件系統(tǒng)的設(shè)計(jì)和應(yīng)用。匯編語(yǔ)言程序設(shè)計(jì),主要介紹匯編語(yǔ)句及程序設(shè)計(jì)的方法。以往的課堂教學(xué)和實(shí)驗(yàn)通常采用MASM軟件在PC上進(jìn)行程序編寫和調(diào)試,滿足了教學(xué)和實(shí)踐的需求。在Proteus環(huán)境下,亦可進(jìn)行一些簡(jiǎn)單的匯編程序設(shè)計(jì),而其虛擬仿真的優(yōu)勢(shì)更主要地體現(xiàn)在接口技術(shù)部分的教學(xué)與實(shí)踐環(huán)節(jié)。
接口技術(shù)的內(nèi)容包括存儲(chǔ)器設(shè)計(jì)、I/O編址、I/O接口芯片的控制方式及其與CPU的連接等,具體涉及到的有可編程并行接口芯片8255A、可編程定時(shí)器/計(jì)數(shù)器芯片8253、中斷控制器8259A、可編程串行口芯片8251A以及A/D和D/A轉(zhuǎn)換器ADC0808/0809、DAC0832等。這些接口芯片的工作方式復(fù)雜,引腳數(shù)目多,連接繁瑣。學(xué)生們?cè)趯W(xué)習(xí)過程中,往往缺乏感性認(rèn)識(shí),使得理解和掌握知識(shí)點(diǎn)存在困難,從而失去了學(xué)習(xí)興趣,達(dá)不到很好的教學(xué)效果。
采用Proteus軟件,利用其動(dòng)態(tài)仿真的優(yōu)勢(shì),一方面可以在課堂上邊講解理論知識(shí),邊進(jìn)行實(shí)例演示,并針對(duì)性地展示各基本模塊的硬件連線和軟件控制的方法,做到理論與實(shí)踐相結(jié)合,給學(xué)生直觀的認(rèn)知,激發(fā)學(xué)習(xí)興趣;另一方面,通過教學(xué)研究,對(duì)知識(shí)點(diǎn)進(jìn)行拆分和綜合,可以設(shè)計(jì)出基于Proteus仿真的實(shí)驗(yàn)項(xiàng)目和綜合實(shí)訓(xùn)課題,如圖1所示。在實(shí)驗(yàn)過程中,Proteus很好地克服了硬件實(shí)驗(yàn)箱結(jié)構(gòu)固定、資源有限的缺點(diǎn),給學(xué)生更多實(shí)踐和鍛煉的機(jī)會(huì),讓他們能夠在掌握各接口芯片使用方法的基礎(chǔ)上,設(shè)計(jì)開發(fā)各種應(yīng)用系統(tǒng),培養(yǎng)了整機(jī)概念、創(chuàng)新思維以及軟硬件開發(fā)的綜合能力。
實(shí)踐證明,將Proteus引入到微機(jī)原理教學(xué)中,教學(xué)方法直觀,達(dá)到感性和理性認(rèn)識(shí)的結(jié)合,激發(fā)了學(xué)生的學(xué)習(xí)熱情,加深對(duì)課程知識(shí)點(diǎn)的理解,更快地掌握新內(nèi)容,教學(xué)效果有了顯著的提高。
3 Proteus仿真實(shí)例
以基于8086和8255A的“按鍵與數(shù)碼管顯示”實(shí)驗(yàn)為例,說明Proteus虛擬仿真在微機(jī)原理課程中的應(yīng)用方法和仿真過程。
3.1 功能設(shè)計(jì)
要求設(shè)計(jì)一個(gè)4×4的矩陣鍵盤,對(duì)鍵盤進(jìn)行按鍵掃描和判斷,并通過數(shù)碼管顯示鍵值。根據(jù)要求,使用可編程并行接口芯片8255A進(jìn)行接口電路擴(kuò)展。對(duì)8255的并行口進(jìn)行分配,A口驅(qū)動(dòng)數(shù)碼管,B口連接LED電路,C口進(jìn)行鍵盤掃描。
3.2 電路設(shè)計(jì)
在設(shè)計(jì)Proteus仿真電路時(shí),可由CPU、鍵盤電路、顯示電路3個(gè)主要模塊實(shí)現(xiàn)。CPU模塊由8086CPU、地址鎖存邏輯和I/O譯碼電路構(gòu)成, 8255的起始地址為30 H;按鍵輸入使用4×4的矩陣鍵盤,C口的低四位和高四位分別連接4×4鍵盤的行、列信號(hào)線;顯示模塊由7段數(shù)碼管和LED構(gòu)成,數(shù)碼管采用靜態(tài)共陰接法。核心電路如圖2所示。
3.3 軟件設(shè)計(jì)
程序整體采用查詢方式,通過不斷掃描鍵盤,讀取鍵碼,換算鍵值,最終通過顯示模塊讀出結(jié)果。如果讀出的鍵碼非法,則重新掃描。鍵盤掃描采用翻轉(zhuǎn)法,具體算法可參考相關(guān)教材和資料。源代碼的流程設(shè)計(jì)如圖3所示。
3.4 仿真調(diào)試與運(yùn)行
Proteus本身并未提供8086編譯器,而是通過添加外部代碼編譯器,將編寫好的源代碼加入工程,編譯并生成可執(zhí)行程序。點(diǎn)擊Proteus窗口左下角的運(yùn)行按鈕,系統(tǒng)進(jìn)入仿真狀態(tài)。當(dāng)某一按鍵按下時(shí),數(shù)碼管顯示其按鍵值,LED顯示鍵值對(duì)應(yīng)二進(jìn)制編碼。
點(diǎn)擊暫停按鈕可使電路從仿真狀態(tài)切換到調(diào)試狀態(tài)。在默認(rèn)設(shè)置下系統(tǒng)會(huì)彈出兩個(gè)窗口:源程序調(diào)試窗口和寄存器窗口??梢栽谠闯绦蛘{(diào)試窗口設(shè)置斷點(diǎn),進(jìn)行單步等多種調(diào)試方式,并通過寄存器窗口監(jiān)視寄存器的變化,以校驗(yàn)指令的運(yùn)行。需要注意的是,由于PROTEUS是器件級(jí)的仿真過程,因此,匯編程序的運(yùn)行仿真是在無(wú)操作系統(tǒng)支持的狀態(tài)下進(jìn)行的。所以,仿真時(shí)在匯編程序中不再支持DOS和BIOS調(diào)用。
4 教學(xué)實(shí)踐的體會(huì)和經(jīng)驗(yàn)
Proteus的引入給教學(xué)實(shí)踐帶來了很多新思路、新方法。
(1) 教學(xué)效果的提高
Proteus+8086虛擬實(shí)驗(yàn)平臺(tái)建設(shè)成本較低,設(shè)備維護(hù)簡(jiǎn)單;實(shí)驗(yàn)器件豐富,靈活性好。學(xué)生在學(xué)習(xí)和實(shí)踐過程中可以充分發(fā)揮主觀能動(dòng)性,可靈活地從各類元件庫(kù)里找到適合設(shè)計(jì)目標(biāo)的器件來構(gòu)建自己的電路。
Proteus除了提供對(duì)8086微處理器及相關(guān)接口芯片的支持,同時(shí)還提供很多虛擬儀器(如示波器、邏輯分析儀、信號(hào)發(fā)生器等),可以用于微機(jī)原理課程的相關(guān)應(yīng)用中。學(xué)生可以從小到大、從局部到整體、從小型實(shí)例到較大系統(tǒng),隨時(shí)進(jìn)行調(diào)試、檢測(cè),及時(shí)修改設(shè)計(jì)中的偏差,提高效率。還可以利用Proteus ARES工具布線,生成PCB電路板的3D視圖,實(shí)驗(yàn)效果更加直觀。
(2) 學(xué)生創(chuàng)新思維的培養(yǎng)
在微機(jī)原理的教學(xué)過程中引入Proteus仿真技術(shù),克服了原有硬件實(shí)驗(yàn)箱由于是成品,學(xué)生很難參與其中的細(xì)節(jié)設(shè)計(jì)和擴(kuò)展設(shè)計(jì)的缺點(diǎn),給學(xué)生提供了一個(gè)進(jìn)行創(chuàng)新設(shè)計(jì)的開放平臺(tái)。
(3) Proteus+8086虛擬實(shí)驗(yàn)平臺(tái)應(yīng)用于教學(xué)的經(jīng)驗(yàn)
①應(yīng)使學(xué)生認(rèn)識(shí)到仿真電路與實(shí)際電路之間的差別[3]。實(shí)際電路運(yùn)行時(shí)表現(xiàn)出的各種電氣特征是由芯片、元器件、電路連線、運(yùn)行環(huán)境等多種因素共同決定的,而Proteus則是通過軟件模擬這些電路特性,其表現(xiàn)取決于仿真軟件設(shè)計(jì)、計(jì)算機(jī)運(yùn)算速度等因素。因此在Proteus環(huán)境下能夠正常運(yùn)行的仿真系統(tǒng),其電路設(shè)計(jì)未必能夠進(jìn)行實(shí)際應(yīng)用,例如8255實(shí)例,實(shí)際電路中還需考慮機(jī)械式鍵盤的去抖操作。而且,當(dāng)前Proteus VSM for 8086的仿真還不是十分完善,例如,8086僅支持最小組態(tài),8259A需要做適當(dāng)修改才能仿真,常用的Intel 2114存儲(chǔ)芯片、ADC0809、8237等尚未支持。
②應(yīng)使學(xué)生意識(shí)到知識(shí)點(diǎn)的正確應(yīng)用比仿真效果更重要。在教學(xué)中發(fā)現(xiàn),部分同學(xué)過于關(guān)注系統(tǒng)仿真運(yùn)行的效果,并以此來判斷自己設(shè)計(jì)系統(tǒng)的合理性。這些電路雖然能正常運(yùn)行,但不符合邏輯以及實(shí)際電路的設(shè)計(jì)要求,使學(xué)生產(chǎn)生了認(rèn)知錯(cuò)誤。因此,應(yīng)幫助學(xué)生培養(yǎng)良好的設(shè)計(jì)思路和習(xí)慣,提高設(shè)計(jì)的合理性。
基于Proteus+8086的虛擬仿真,作為傳統(tǒng)微機(jī)原理教學(xué)的有效改進(jìn)和創(chuàng)新,不僅有助力提高教學(xué)質(zhì)量,改善教學(xué)效果,也使學(xué)生的綜合設(shè)計(jì)能力和創(chuàng)新能力得到了培養(yǎng)。
參考文獻(xiàn)
[1] 顧暉,陳越,梁惺彥,等.微機(jī)原理與接口技術(shù)-基于8086+Proteus仿真[M].北京:電子工業(yè)出版社,2011.
[2] 吉向東,李新鄂.基于Proteus的微機(jī)原理實(shí)驗(yàn)仿真[J].信息技術(shù),2010(2):36-39.
[3] 潘輝.Proteus虛擬實(shí)驗(yàn)環(huán)境在單片機(jī)教學(xué)中的應(yīng)用[J].計(jì)算機(jī)教育,2010(20):143-146.