文獻(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.