《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > Proteus虛擬仿真在微機(jī)原理教學(xué)中的應(yīng)用
Proteus虛擬仿真在微機(jī)原理教學(xué)中的應(yīng)用
來源:電子技術(shù)應(yīng)用2012年第1期
陳 越, 顧 暉, 梁惺彥
南通大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 江蘇 南通226019
摘要: 基于Proteus和8086微處理器的虛擬實(shí)驗(yàn)平臺(tái),闡述了通過Proteus仿真軟件進(jìn)行微機(jī)原理實(shí)踐教學(xué)的新思路和具體方法。實(shí)踐表明,該方法能深化學(xué)生對(duì)知識(shí)點(diǎn)的理解,激發(fā)學(xué)生的學(xué)習(xí)熱情和創(chuàng)造力,提高學(xué)生進(jìn)行軟硬件開發(fā)的綜合能力。
關(guān)鍵詞: Proteus 仿真 微機(jī)原理 8086
中圖分類號(hào): G642
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)01-0106-03
The application of Proteus virtual simulation in microcomputer principle teaching
Chen Yue, Gu Hui, Liang Xingyan
School of Computer Science & Technology, Nantong University, Nantong 226019, China
Abstract: A virtual experiment platform is constructed by Proteus and 8086 microprocessor. This paper discusses the idea and methods of microcomputer principle experiment teaching based on Proteus simulation. The practice has proved that this method deepens students’ comprehension, stimulates their interest and creativity, and improves their comprehensive ability of developing software and hardware.
Key words : Proteus; simulation; microcomputer principle; 8086

    微機(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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。