文献标识码: A
文章编号: 0258-7998(2012)01-0106-03
微机原理课程是高等学校工科电工电子类的重要专业基础课程,是一门理论性和实践性都较强的课程。传统的教学都是通过理论教学和有限的实验进行。微机原理的知识构成抽象,理解困难,而实验内容固定,缺乏新意。因此,在教学过程中,很难激发学生的学习兴趣,学生的创新思维和综合开发能力也难以培养和提高。本文论述了采用Proteus虚拟仿真技术进行微机原理教学实践的新思路和具体方法。
1 Proteus+8086虚拟实验平台
Proteus是英国Labcenter公司开发的电路分析与实物仿真及印制电路板设计软件,它应用于Windows操作系统,可以仿真、分析各种模拟电路与集成电路。该软件提供了大量模拟与数字元器件、外部设备及各种虚拟仪器,并具有对常用控制芯片及其外围电路组成的综合系统的交互仿真功能[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强大的设计与仿真功能被广泛应用在数字电路、模拟电路、单片机、嵌入式系统等多门课程的教学和实验中。但是,Proteus在微机原理教学中的应用却鲜有报道,这主要是因为以往的Proteus版本缺乏对微机原理课程所涉及芯片的支持。直至2009年,Labcenter公司推出了VSM for 8086平台及Proteus 7.5 SP3软件,支持8086微处理器与8255、8253、8259、8251等接口芯片的系统仿真[2]。
Proteus为8086微处理器设定了一些默认值,同时也可以通过“编辑元器件”功能对8086模型的多种属性进行修改,如表1所示。此外,8086模型支持将源代码的编辑和编译整合到同一设计环境中,用户可以在设计中直接编辑代码,也可以非常容易地修改源程序并查看仿真结果。
特别需要指示的是,8086模型支持直接加载BIN,COM和EXE格式的文件到内部RAM中,而不需要DOS,并且允许对Microsoft(Codeview)和Borland格式中包含了调试住处的程序可以进行源和/或反汇编级别的调试,因此源码编译和链接过程的参数相当重要。
应用Proteus进行8086接口技术仿真,主要是在Proteus ISIS中通过以下步骤完成:编辑电路原理图、设置外部代码编译器、编写和添加源代码及仿真调试。
2 基于Proteus的微机原理教学设计
微机原理课程由汇编语言程序设计和接口技术两大知识块构成,汇编语言是接口技术开发设计的基础,整门课偏重硬件系统的设计和应用。汇编语言程序设计,主要介绍汇编语句及程序设计的方法。以往的课堂教学和实验通常采用MASM软件在PC上进行程序编写和调试,满足了教学和实践的需求。在Proteus环境下,亦可进行一些简单的汇编程序设计,而其虚拟仿真的优势更主要地体现在接口技术部分的教学与实践环节。
接口技术的内容包括存储器设计、I/O编址、I/O接口芯片的控制方式及其与CPU的连接等,具体涉及到的有可编程并行接口芯片8255A、可编程定时器/计数器芯片8253、中断控制器8259A、可编程串行口芯片8251A以及A/D和D/A转换器ADC0808/0809、DAC0832等。这些接口芯片的工作方式复杂,引脚数目多,连接繁琐。学生们在学习过程中,往往缺乏感性认识,使得理解和掌握知识点存在困难,从而失去了学习兴趣,达不到很好的教学效果。
采用Proteus软件,利用其动态仿真的优势,一方面可以在课堂上边讲解理论知识,边进行实例演示,并针对性地展示各基本模块的硬件连线和软件控制的方法,做到理论与实践相结合,给学生直观的认知,激发学习兴趣;另一方面,通过教学研究,对知识点进行拆分和综合,可以设计出基于Proteus仿真的实验项目和综合实训课题,如图1所示。在实验过程中,Proteus很好地克服了硬件实验箱结构固定、资源有限的缺点,给学生更多实践和锻炼的机会,让他们能够在掌握各接口芯片使用方法的基础上,设计开发各种应用系统,培养了整机概念、创新思维以及软硬件开发的综合能力。
实践证明,将Proteus引入到微机原理教学中,教学方法直观,达到感性和理性认识的结合,激发了学生的学习热情,加深对课程知识点的理解,更快地掌握新内容,教学效果有了显著的提高。
3 Proteus仿真实例
以基于8086和8255A的“按键与数码管显示”实验为例,说明Proteus虚拟仿真在微机原理课程中的应用方法和仿真过程。
3.1 功能设计
要求设计一个4×4的矩阵键盘,对键盘进行按键扫描和判断,并通过数码管显示键值。根据要求,使用可编程并行接口芯片8255A进行接口电路扩展。对8255的并行口进行分配,A口驱动数码管,B口连接LED电路,C口进行键盘扫描。
3.2 电路设计
在设计Proteus仿真电路时,可由CPU、键盘电路、显示电路3个主要模块实现。CPU模块由8086CPU、地址锁存逻辑和I/O译码电路构成, 8255的起始地址为30 H;按键输入使用4×4的矩阵键盘,C口的低四位和高四位分别连接4×4键盘的行、列信号线;显示模块由7段数码管和LED构成,数码管采用静态共阴接法。核心电路如图2所示。
3.3 软件设计
程序整体采用查询方式,通过不断扫描键盘,读取键码,换算键值,最终通过显示模块读出结果。如果读出的键码非法,则重新扫描。键盘扫描采用翻转法,具体算法可参考相关教材和资料。源代码的流程设计如图3所示。
3.4 仿真调试与运行
Proteus本身并未提供8086编译器,而是通过添加外部代码编译器,将编写好的源代码加入工程,编译并生成可执行程序。点击Proteus窗口左下角的运行按钮,系统进入仿真状态。当某一按键按下时,数码管显示其按键值,LED显示键值对应二进制编码。
点击暂停按钮可使电路从仿真状态切换到调试状态。在默认设置下系统会弹出两个窗口:源程序调试窗口和寄存器窗口。可以在源程序调试窗口设置断点,进行单步等多种调试方式,并通过寄存器窗口监视寄存器的变化,以校验指令的运行。需要注意的是,由于PROTEUS是器件级的仿真过程,因此,汇编程序的运行仿真是在无操作系统支持的状态下进行的。所以,仿真时在汇编程序中不再支持DOS和BIOS调用。
4 教学实践的体会和经验
Proteus的引入给教学实践带来了很多新思路、新方法。
(1) 教学效果的提高
Proteus+8086虚拟实验平台建设成本较低,设备维护简单;实验器件丰富,灵活性好。学生在学习和实践过程中可以充分发挥主观能动性,可灵活地从各类元件库里找到适合设计目标的器件来构建自己的电路。
Proteus除了提供对8086微处理器及相关接口芯片的支持,同时还提供很多虚拟仪器(如示波器、逻辑分析仪、信号发生器等),可以用于微机原理课程的相关应用中。学生可以从小到大、从局部到整体、从小型实例到较大系统,随时进行调试、检测,及时修改设计中的偏差,提高效率。还可以利用Proteus ARES工具布线,生成PCB电路板的3D视图,实验效果更加直观。
(2) 学生创新思维的培养
在微机原理的教学过程中引入Proteus仿真技术,克服了原有硬件实验箱由于是成品,学生很难参与其中的细节设计和扩展设计的缺点,给学生提供了一个进行创新设计的开放平台。
(3) Proteus+8086虚拟实验平台应用于教学的经验
①应使学生认识到仿真电路与实际电路之间的差别[3]。实际电路运行时表现出的各种电气特征是由芯片、元器件、电路连线、运行环境等多种因素共同决定的,而Proteus则是通过软件模拟这些电路特性,其表现取决于仿真软件设计、计算机运算速度等因素。因此在Proteus环境下能够正常运行的仿真系统,其电路设计未必能够进行实际应用,例如8255实例,实际电路中还需考虑机械式键盘的去抖操作。而且,当前Proteus VSM for 8086的仿真还不是十分完善,例如,8086仅支持最小组态,8259A需要做适当修改才能仿真,常用的Intel 2114存储芯片、ADC0809、8237等尚未支持。
②应使学生意识到知识点的正确应用比仿真效果更重要。在教学中发现,部分同学过于关注系统仿真运行的效果,并以此来判断自己设计系统的合理性。这些电路虽然能正常运行,但不符合逻辑以及实际电路的设计要求,使学生产生了认知错误。因此,应帮助学生培养良好的设计思路和习惯,提高设计的合理性。
基于Proteus+8086的虚拟仿真,作为传统微机原理教学的有效改进和创新,不仅有助力提高教学质量,改善教学效果,也使学生的综合设计能力和创新能力得到了培养。
参考文献
[1] 顾晖,陈越,梁惺彦,等.微机原理与接口技术-基于8086+Proteus仿真[M].北京:电子工业出版社,2011.
[2] 吉向东,李新鄂.基于Proteus的微机原理实验仿真[J].信息技术,2010(2):36-39.
[3] 潘辉.Proteus虚拟实验环境在单片机教学中的应用[J].计算机教育,2010(20):143-146.