文獻(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ī)原理課程由匯編語言程序設(shè)計(jì)和接口技術(shù)兩大知識(shí)塊構(gòu)成,,匯編語言是接口技術(shù)開發(fā)設(shè)計(jì)的基礎(chǔ),整門課偏重硬件系統(tǒng)的設(shè)計(jì)和應(yīng)用,。匯編語言程序設(shè)計(jì),,主要介紹匯編語句及程序設(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)行仿真是在無操作系統(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)性,,可靈活地從各類元件庫里找到適合設(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.