Proteus和Emu8086在微机原理实验教学中的应用

2015-05-08 06:48军,叶
实验科学与技术 2015年2期
关键词:交通灯微机原理图

张 军,叶 敏

(长安大学 道路施工技术与装备教育部重点实验室,西安 710064)

Proteus和Emu8086在微机原理实验教学中的应用

张 军,叶 敏

(长安大学 道路施工技术与装备教育部重点实验室,西安 710064)

微机原理是实践性强的课程。解决工程实践问题对改善微机原理教学和提高学生动手能力、创新能力具有重要意义。文中分析了目前微机原理教学中存在的问题,提出用Proteus和Emu8086构建联合仿真实验解决实践难的问题,以8086和8255A构建了交通灯仿真实例进行验证。仿真实验表明,构建的交通灯虚拟仿真实验可实现8086的模拟仿真,为解决微机原理实验困难和进行教学改革提供了一种新的方法。

微机原理;教学改革;Proteus软件;Emu8086软件;仿真实验

微机原理与接口技术(简称“微机原理”)课程是电气信息类、自动化类、机械类等专业学生的重要专业基础课程,是学好后续课程,如单片机、ARM、DSP等的必备基础和重要前提[1-2]。

该课程的理论性和实践性都很强,需要较强的电路知识与程序设计能力,加上8086使用汇编语言,增加了机械类学生的学习难度。实验教学可以弥补学生相关知识的欠缺,加强对微机原理结构和工作原理的认识与理解,提高学生分析问题和解决问题的能力。在传统的实验教学中,学生只能按照实验箱进行验证性实验,学生实验完成后对系统和芯片的工作原理与程序认识不清,无法提高积极性。

针对微机原理教学存在的问题,很多学者针对教材和教学方法提出了改革方案[3-5],如增设开放实验室等。这些方案能缓解教学难的问题,但仍不能解决学生自主动手、提升创新能力等问题。

随着软件技术的发展,出现了大量的仿真软件代替硬件进行学习,如Matlab用于自动控制课程、Proteus用于单片机课程[6-9],Emu8086用于汇编程序设计等,取得了较好效果。

目前,在微机原理教学中结合原理图设计和程序联合仿真实验的应用较少。Proteus现已支持8086的实验仿真,并支持与Emu8086平台的联合调试,对解决微机原理教学和实践难以及实验设备缺乏等问题提供了一种新的解决方法。

笔者在教学中使用Emu8086进行汇编语言的教学,联合Proteus开展了接口芯片如8255A,8253,8251,ADC0809和DAC0832的实验,激发了学生的学习兴趣,加强了对芯片使用方法和电路设计的理解。本文主要分析基于Proteus和Emu8086的联合仿真在微机原理课程中的使用方法,探讨仿真软件应用于微机原理工程实践项目教学的可能性。

1 Proteus概况和使用方法

1.1 Proteus概况

Proteus是基于电路和微处理器仿真的EDA软件,能直接在基于原理图的虚拟原型上进行处理器编程调试、功能验证。它能对8086、单片机、ARM等微处理仿真,也能仿真外围电路的工作情况。用它可构建基于8086的虚拟仿真实验,完成各种验证性、设计性和综合性实验,既解决实验设备缺乏问题,又提高学生的动手和创新能力,让学生具备程序设计和电路设计的综合设计能力。

1.2 Proteus在8086仿真实验中的使用方法

由于Emu8086专门应用于8086的程序仿真,简化了与段相关的定义,只需要关注功能程序,图形化界面,学生易掌握汇编语言的开发技术,利于微机原理教学中汇编语言相关教学工作。

图1 仿真实验步骤

图2 在Proteus的8086中导入.com文件

联合仿真过程是在Proteus中绘制硬件原理图,在Emu8086编译器中编写和调试程序,生成可执行.com或.exe文件,导入Proteus绘制原理图的8086中即可开展仿真实验调试和观察。仿真实验步骤如图1所示,导入.com文件到Proteus原理图中的步骤如图2所示。

2 Proteus仿真实验案例

微机原理课程的难点和重点在于将汇编语言和接口技术联合应用。下面以基于8086和8255A控制的交通灯为例,介绍Proteus的实验使用过程。这也为开展微机原理实验教学提供一种新的方法。

2.1 实验目的

完成基于Proteus的8086交通灯仿真实验,达到掌握8086和8255芯片的内部原理和使用方法,掌握芯片的寻址方式,掌握总线使用方法,掌握模拟仿真实验的使用方法。

2.2 实验方法

在Proteus中绘制交通灯的硬件原理图,需要的元件包括微处理器8086、并行芯片8255A、地址锁存器74LS373、3-8译码芯片74LS138、与非门、非门和LED交通指示灯。在Emu8086中完成程序编写,调试成功后生成.com文件并导入Proteus的原理图8086中。

图3为交通灯的硬件原理图,其中地址锁存器74LS373、译码芯片74LS138和与非门完成8255A的芯片寻址和端口操作。由于本例只需要8255A工作于输出状态,因此,对8255A的操作主要是片选和将PB口置方式0输出,设计交通灯规则通过PB口点亮LED灯。

8255A的片选由74LS138的Y4决定,工作中电平0代表低电平,1 代表高电平。只有当74LS138片选芯片端口的电平组合ABC为100,E2为0,E1为1,且在8086写I/O操作时才能保证Y4有效。由交通灯原理图知8255A的物理选通地址组合为A7A6A5A4A3A2A1A0=11110××0=0F0H-0F6H,其中×表示所对应位电平不受限,即可为1也可为0实现片选功能。8255A上的A0,A1口决定了其工作方式和选定端口,A1A0为11时选择控制字,A1A0为01时选择PB口。由于8255A的A1A0接锁存器上的A2A1上,因此,8255A的控制字地址为0F6H,PB口地址为0F2H。

8255A的PB端口输出数据,分别控制南北方向和东西方向的交通灯。由于8255A的3个并行输出端口PA、PB、PC的初始输出均为1,为防止芯片初始化时6盏灯同时亮,每个灯都接一个反相器。

图3 交通灯的硬件原理图

2.3 程序设计

由于Emu8086软件的要求,编程地址必须从100H开始。交通灯控制主要是通过延时来控制灯的交替,交通灯的控制流程如图4所示。

图4 交通灯控制流程图

8086的延时程序是根据各指令的执行时钟周期,通过循环次数确定延时。假如系统用的是8 MHz的晶振,则每个时钟节拍需要0.125 μs,PUSHF和POPF指令为10个和8个时钟节拍,LOOP指令为3.4个时钟节拍,累计21.4拍。因此,可根据下式算出循环次数X:

X=延时时间/一次循环时间=

1 ms/21.4×0.125 μs=374次

换算成十六进制数为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

基于同样的目的,通过增加外循环或者跳转程序来增加延时时间,实现1 s或3 s等延时功能。

2.4 实验结果

在Emu8086中调试程序,编译结果如图5所示,将编译好的.com文件导入到原理图中,运行结果如图6所示,可知所设计的交通灯程序正确,且Proteus图形界面较好,程序执行过程可观察芯片选中情况和执行效果。

图5 交通灯程序编译和调试

图6 交通灯仿真实验结果

3 结束语

1)分析了微机原理课程教学的难点,给出了基于Poteus和Emu8086联合使用构建虚拟实验的方法,解决微机原理工程实践难的问题。

2)给出了Proteus用于8086仿真实验的使用方法,以8086和8255A构建了交通灯实验案例,实现了基于Proteus的8086仿真实验。

3)文中不仅给出了实例,还给出了构建8086仿真实验的方法,为扩展8086仿真实验和培养学生的自主动手能力、创新能力提供了一种实践方法。

4)Proteus软件可实现8086微处理器的仿真,但对微机原理课程的学习还得有教师和学生互动才能提高教学效果。

[1]张红民, 王艳.微机原理及应用教材与教学内容改革思考[J]. 理工高教研究,2009, 28(5): 105-108.

[2]成运, 谢四莲. 微机原理与接口技术课堂教学改革初探[J]. 湖南人文科技学院学报,2008 (4): 127-129.

[3]彭善琼, 魏鹏, 肖龙. 研究型教学模式与实施方法的探讨——基于微机原理与接口技术课程[J]. 信息系统工程,2009(10): 118-120.

[4]王志松. 关于微机原理实验课改革的几点体会[J].教学研究 (河北),2000, 23(4): 361-362.

[5]谢勤岚. 微机原理课程教学改革的探讨[J]. 理工高教研究,2009,28(4):135-136.

[6]陈龙, 张亚君. Proteus 仿真软件在单片机实验教学中的应用[J]. 实验技术与管理,2009, 26(8): 73-75.

[7]刘燎原, 孙秋波. Proteus 软件在单片机项目教学中的应用[J]. 徐州建筑职业技术学院学报,2009, 9(2): 63-65.

[8]唐勇波, 徐东辉. 基于 Proteus 的单片机课程教学与实验改革初探[J]. 宜春学院学报,2009(4): 147-149.

[9]周灵彬. Proteus在电子技术教学中的应用[J]. 中北大学学报:社会科学版,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

长安大学2013教学改革研究基金资助项目(1307)。

张 军(1980-),男,博士,讲师,主要从事智能化检测与控制技术的研究工作。

TP391.9;G642.0

A

10.3969/j.issn.1672-4550.2015.02.013

猜你喜欢
交通灯微机原理图
浅谈STM32核心板原理图设计
电路原理图自动布图系统的设计与实现
基于Protel DXP 2004层次原理图的设计
Fuzzy Search for Multiple Chinese Keywords in Cloud Environment
基于单片机的交通灯模糊控制器研究
TDJ微机可控顶调速系统在平顶山东站的应用
为什么交通灯是红黄蓝三种颜色?
一直飘红的交通灯
电力系统微机保护装置的抗干扰措施
基于单片机的LED模拟交通灯设计