張 軍,葉 敏
(長安大學(xué) 道路施工技術(shù)與裝備教育部重點實驗室,西安 710064)
Proteus和Emu8086在微機原理實驗教學(xué)中的應(yīng)用
張 軍,葉 敏
(長安大學(xué) 道路施工技術(shù)與裝備教育部重點實驗室,西安 710064)
微機原理是實踐性強的課程。解決工程實踐問題對改善微機原理教學(xué)和提高學(xué)生動手能力、創(chuàng)新能力具有重要意義。文中分析了目前微機原理教學(xué)中存在的問題,提出用Proteus和Emu8086構(gòu)建聯(lián)合仿真實驗解決實踐難的問題,以8086和8255A構(gòu)建了交通燈仿真實例進(jìn)行驗證。仿真實驗表明,構(gòu)建的交通燈虛擬仿真實驗可實現(xiàn)8086的模擬仿真,為解決微機原理實驗困難和進(jìn)行教學(xué)改革提供了一種新的方法。
微機原理;教學(xué)改革;Proteus軟件;Emu8086軟件;仿真實驗
微機原理與接口技術(shù)(簡稱“微機原理”)課程是電氣信息類、自動化類、機械類等專業(yè)學(xué)生的重要專業(yè)基礎(chǔ)課程,是學(xué)好后續(xù)課程,如單片機、ARM、DSP等的必備基礎(chǔ)和重要前提[1-2]。
該課程的理論性和實踐性都很強,需要較強的電路知識與程序設(shè)計能力,加上8086使用匯編語言,增加了機械類學(xué)生的學(xué)習(xí)難度。實驗教學(xué)可以彌補學(xué)生相關(guān)知識的欠缺,加強對微機原理結(jié)構(gòu)和工作原理的認(rèn)識與理解,提高學(xué)生分析問題和解決問題的能力。在傳統(tǒng)的實驗教學(xué)中,學(xué)生只能按照實驗箱進(jìn)行驗證性實驗,學(xué)生實驗完成后對系統(tǒng)和芯片的工作原理與程序認(rèn)識不清,無法提高積極性。
針對微機原理教學(xué)存在的問題,很多學(xué)者針對教材和教學(xué)方法提出了改革方案[3-5],如增設(shè)開放實驗室等。這些方案能緩解教學(xué)難的問題,但仍不能解決學(xué)生自主動手、提升創(chuàng)新能力等問題。
隨著軟件技術(shù)的發(fā)展,出現(xiàn)了大量的仿真軟件代替硬件進(jìn)行學(xué)習(xí),如Matlab用于自動控制課程、Proteus用于單片機課程[6-9],Emu8086用于匯編程序設(shè)計等,取得了較好效果。
目前,在微機原理教學(xué)中結(jié)合原理圖設(shè)計和程序聯(lián)合仿真實驗的應(yīng)用較少。Proteus現(xiàn)已支持8086的實驗仿真,并支持與Emu8086平臺的聯(lián)合調(diào)試,對解決微機原理教學(xué)和實踐難以及實驗設(shè)備缺乏等問題提供了一種新的解決方法。
筆者在教學(xué)中使用Emu8086進(jìn)行匯編語言的教學(xué),聯(lián)合Proteus開展了接口芯片如8255A,8253,8251,ADC0809和DAC0832的實驗,激發(fā)了學(xué)生的學(xué)習(xí)興趣,加強了對芯片使用方法和電路設(shè)計的理解。本文主要分析基于Proteus和Emu8086的聯(lián)合仿真在微機原理課程中的使用方法,探討仿真軟件應(yīng)用于微機原理工程實踐項目教學(xué)的可能性。
1.1 Proteus概況
Proteus是基于電路和微處理器仿真的EDA軟件,能直接在基于原理圖的虛擬原型上進(jìn)行處理器編程調(diào)試、功能驗證。它能對8086、單片機、ARM等微處理仿真,也能仿真外圍電路的工作情況。用它可構(gòu)建基于8086的虛擬仿真實驗,完成各種驗證性、設(shè)計性和綜合性實驗,既解決實驗設(shè)備缺乏問題,又提高學(xué)生的動手和創(chuàng)新能力,讓學(xué)生具備程序設(shè)計和電路設(shè)計的綜合設(shè)計能力。
1.2 Proteus在8086仿真實驗中的使用方法
由于Emu8086專門應(yīng)用于8086的程序仿真,簡化了與段相關(guān)的定義,只需要關(guān)注功能程序,圖形化界面,學(xué)生易掌握匯編語言的開發(fā)技術(shù),利于微機原理教學(xué)中匯編語言相關(guān)教學(xué)工作。
圖1 仿真實驗步驟
圖2 在Proteus的8086中導(dǎo)入.com文件
聯(lián)合仿真過程是在Proteus中繪制硬件原理圖,在Emu8086編譯器中編寫和調(diào)試程序,生成可執(zhí)行.com或.exe文件,導(dǎo)入Proteus繪制原理圖的8086中即可開展仿真實驗調(diào)試和觀察。仿真實驗步驟如圖1所示,導(dǎo)入.com文件到Proteus原理圖中的步驟如圖2所示。
微機原理課程的難點和重點在于將匯編語言和接口技術(shù)聯(lián)合應(yīng)用。下面以基于8086和8255A控制的交通燈為例,介紹Proteus的實驗使用過程。這也為開展微機原理實驗教學(xué)提供一種新的方法。
2.1 實驗?zāi)康?/p>
完成基于Proteus的8086交通燈仿真實驗,達(dá)到掌握8086和8255芯片的內(nèi)部原理和使用方法,掌握芯片的尋址方式,掌握總線使用方法,掌握模擬仿真實驗的使用方法。
2.2 實驗方法
在Proteus中繪制交通燈的硬件原理圖,需要的元件包括微處理器8086、并行芯片8255A、地址鎖存器74LS373、3-8譯碼芯片74LS138、與非門、非門和LED交通指示燈。在Emu8086中完成程序編寫,調(diào)試成功后生成.com文件并導(dǎo)入Proteus的原理圖8086中。
圖3為交通燈的硬件原理圖,其中地址鎖存器74LS373、譯碼芯片74LS138和與非門完成8255A的芯片尋址和端口操作。由于本例只需要8255A工作于輸出狀態(tài),因此,對8255A的操作主要是片選和將PB口置方式0輸出,設(shè)計交通燈規(guī)則通過PB口點亮LED燈。
8255A的片選由74LS138的Y4決定,工作中電平0代表低電平,1 代表高電平。只有當(dāng)74LS138片選芯片端口的電平組合ABC為100,E2為0,E1為1,且在8086寫I/O操作時才能保證Y4有效。由交通燈原理圖知8255A的物理選通地址組合為A7A6A5A4A3A2A1A0=11110××0=0F0H-0F6H,其中×表示所對應(yīng)位電平不受限,即可為1也可為0實現(xiàn)片選功能。8255A上的A0,A1口決定了其工作方式和選定端口,A1A0為11時選擇控制字,A1A0為01時選擇PB口。由于8255A的A1A0接鎖存器上的A2A1上,因此,8255A的控制字地址為0F6H,PB口地址為0F2H。
8255A的PB端口輸出數(shù)據(jù),分別控制南北方向和東西方向的交通燈。由于8255A的3個并行輸出端口PA、PB、PC的初始輸出均為1,為防止芯片初始化時6盞燈同時亮,每個燈都接一個反相器。
圖3 交通燈的硬件原理圖
2.3 程序設(shè)計
由于Emu8086軟件的要求,編程地址必須從100H開始。交通燈控制主要是通過延時來控制燈的交替,交通燈的控制流程如圖4所示。
圖4 交通燈控制流程圖
8086的延時程序是根據(jù)各指令的執(zhí)行時鐘周期,通過循環(huán)次數(shù)確定延時。假如系統(tǒng)用的是8 MHz的晶振,則每個時鐘節(jié)拍需要0.125 μs,PUSHF和POPF指令為10個和8個時鐘節(jié)拍,LOOP指令為3.4個時鐘節(jié)拍,累計21.4拍。因此,可根據(jù)下式算出循環(huán)次數(shù)X:
X=延時時間/一次循環(huán)時間=
1 ms/21.4×0.125 μs=374次
換算成十六進(jìn)制數(shù)為176H。
延時1 ms程序如下:
delay_1ms PROC;定義過程名
PUSH CX;壓棧使用變量
A1:MOV CX,176H
A2:PUSHF
POPF
LOOP A2
DEC BX
JNZ A1
POP CX
RET
delay_1ms ENDP
基于同樣的目的,通過增加外循環(huán)或者跳轉(zhuǎn)程序來增加延時時間,實現(xiàn)1 s或3 s等延時功能。
2.4 實驗結(jié)果
在Emu8086中調(diào)試程序,編譯結(jié)果如圖5所示,將編譯好的.com文件導(dǎo)入到原理圖中,運行結(jié)果如圖6所示,可知所設(shè)計的交通燈程序正確,且Proteus圖形界面較好,程序執(zhí)行過程可觀察芯片選中情況和執(zhí)行效果。
圖5 交通燈程序編譯和調(diào)試
圖6 交通燈仿真實驗結(jié)果
1)分析了微機原理課程教學(xué)的難點,給出了基于Poteus和Emu8086聯(lián)合使用構(gòu)建虛擬實驗的方法,解決微機原理工程實踐難的問題。
2)給出了Proteus用于8086仿真實驗的使用方法,以8086和8255A構(gòu)建了交通燈實驗案例,實現(xiàn)了基于Proteus的8086仿真實驗。
3)文中不僅給出了實例,還給出了構(gòu)建8086仿真實驗的方法,為擴展8086仿真實驗和培養(yǎng)學(xué)生的自主動手能力、創(chuàng)新能力提供了一種實踐方法。
4)Proteus軟件可實現(xiàn)8086微處理器的仿真,但對微機原理課程的學(xué)習(xí)還得有教師和學(xué)生互動才能提高教學(xué)效果。
[1]張紅民, 王艷.微機原理及應(yīng)用教材與教學(xué)內(nèi)容改革思考[J]. 理工高教研究,2009, 28(5): 105-108.
[2]成運, 謝四蓮. 微機原理與接口技術(shù)課堂教學(xué)改革初探[J]. 湖南人文科技學(xué)院學(xué)報,2008 (4): 127-129.
[3]彭善瓊, 魏鵬, 肖龍. 研究型教學(xué)模式與實施方法的探討——基于微機原理與接口技術(shù)課程[J]. 信息系統(tǒng)工程,2009(10): 118-120.
[4]王志松. 關(guān)于微機原理實驗課改革的幾點體會[J].教學(xué)研究 (河北),2000, 23(4): 361-362.
[5]謝勤嵐. 微機原理課程教學(xué)改革的探討[J]. 理工高教研究,2009,28(4):135-136.
[6]陳龍, 張亞君. Proteus 仿真軟件在單片機實驗教學(xué)中的應(yīng)用[J]. 實驗技術(shù)與管理,2009, 26(8): 73-75.
[7]劉燎原, 孫秋波. Proteus 軟件在單片機項目教學(xué)中的應(yīng)用[J]. 徐州建筑職業(yè)技術(shù)學(xué)院學(xué)報,2009, 9(2): 63-65.
[8]唐勇波, 徐東輝. 基于 Proteus 的單片機課程教學(xué)與實驗改革初探[J]. 宜春學(xué)院學(xué)報,2009(4): 147-149.
[9]周靈彬. Proteus在電子技術(shù)教學(xué)中的應(yīng)用[J]. 中北大學(xué)學(xué)報:社會科學(xué)版,2007, 23(12): 179-181.
Experiment on Microcomputer Principles Course Teaching Based on Proteus and Emu8086
ZHANG Jun, YE Min
(Key Laboratory for Highway Construction Technology and Equipment of Ministry of Education, Chang'an University, Xi’an 710064, China)
The microcomputer principles is a practical course, it is urgent to solve the problem of its course practice to improve the course teaching effect and enhance the student’s experiment ability and innovation ability. The shortcoming of teaching of this course was analyzed, the simulation software of Proteus and Emu8086 was introduced to design simulation experiment to solve the problem of practice and teaching. Traffic light experiment with 8086 and 8255A was employed to carry into simulation experiment of 8086. It is indicated that the traffic light simulation experiment reach the simulation of 8086, which solve the problem of practice of microcomputer principles and provide a new method to improve the teaching skill of this course.
microcomputer principles; teaching reform; Proteus software; Emu8086 software; simulation experiment
2014-05-08;修改日期: 2014-09-09
長安大學(xué)2013教學(xué)改革研究基金資助項目(1307)。
張 軍(1980-),男,博士,講師,主要從事智能化檢測與控制技術(shù)的研究工作。
TP391.9;G642.0
A
10.3969/j.issn.1672-4550.2015.02.013