中图分类号:G642 文献标识码:A 文章编号:1009-3044(2012)36-8730-03
“微机原理与接口技术”是计算机、电子信息、自动化等专业的一门专业基础课,该课程要求学员掌握微型计算机的硬件组成及使用,学会运用指令系统和汇编语言进行程序设计,熟悉各种典型的接口芯片和接口技术及其具体的应用,全面培养学员的微机软、硬件设计与应用能力,培养工程意识、工程素质、实践能力和创新能力。该课程概念抽象,知识点多,实践性强,并具有理论与实践、硬件与软件相结合等特点。因此教学过程中除课堂的理论学习外,还需要良好的实践性教学环节与之配合。优质实验课不仅可以提高学员的学习兴趣,进一步加深对微机结构、汇编语言等知识的理解,还使学员对计算机内部原理和一些芯片的工作流程有了更直接的感性认识。实验教学在对学员动手能力、创新能力和综合素质的培养方面起着理论教学不可替代的作用。该文论述了采用Proteus仿真技术进行微机原理实验教学的教改新思路,并结合实例介绍了具体实验方法。
1 微机原理实验教学现状分析
“微机原理与接口技术”实验主要分单板机操作、汇编语言程序设计练习和接口电路实验三大部分。其中接口电路实验主要有:存储器读写实验、基本输入输出实验、中断实验、8255A芯片实验、8253芯片实验、串行接口实验、DMA实验、D/A和A/D转换实验等[1]。
目前接口电路实验主要是通过硬件实验箱如TPC-H的操作来完成。这种方式存在着如下的限制[2-3]:
1)灵活性限制。实验箱的线路、芯片多已固定,多开展验证性的实验,而学员只要按照固定的步骤进行就可,不能灵活自由的设计实验,这就导致学员缺乏主动学习的积极性。
2)创新性限制。由于实验箱硬件的限制,实验步骤和内容常常很难扩展。实验的个数有限,内容固定,很难紧跟技术的发展进行创新和更新。每个学员的实验内容千篇一律,学员就得不到拓展应用以及创新设计的机会,从而缺乏对学员创新意识的培养。
3)开放性限制。由于实验箱数量少和维护难等原因,硬件实验室的开放性受到了限制,因此学生很难在实验课前进行很好的准备工作。同样学员也很难利用实验室进行电子设计竞赛和毕业设计等课外科技活动。
4)经济性限制。实验箱价格非常昂贵,且极易受到损坏,维护也比较困难,必需专门人员管理。由于价格因素,实验箱数量少,实验课常常要分很多批次才能展开,实验保障困难。经费问题也制约了实验课内容的更新和该课程的建设。
建立Proteus仿真软件实验平台是突破“微机原理与接口技术”实验教学现状中的诸多限制一种可行的教改方法。另外,还可借助网上实验教学功能使该实验平台具有更高的推广使用价值,发挥出最大的教学效益。
2 Proteus仿真软件简介[2-5]
Proteus是英国Labcenter electronics公司开发的EDA工具软件,最新版本为Proteus 8.0。该软件的原理图布图、代码调试到CPU与外围电路协同仿真,一键切换到PCB 设计,真正实现了从概念到产品的完整设计。Proteus是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、AVR、ARM、MSP 430、8086等。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
2009年Labcenter公司推出了VSM for 8086平台及Proteus 7.5 SP3软件,支持8086微处理器与8255A、8253、8259、8251等接口芯片的系统仿真。基于此软件建立“微机原理与接口技术”课的仿真实验平台如同一个设备齐全的的实验室。教员可借助此平台进行实验教学,学员也可以在课程设计、电子设计竞赛和毕业设计等方面得到此仿真实验平台的帮助。
3 基于Proteus的实验教学实例
“微机原理与接口技术”课程要求学员熟练掌握8255A的功能、结构组成和工作方式;掌握8255A接口电路设计,工作方式选用和方式控制字设置、初始化编程及应用程序的设计。目前使用实验箱进行的8255A实验主要有8255A与七段数码管、8255A控制继电器和交通灯控制等几个实验[1]。实验中教员把程序编写好,学员照着教员的步骤连接好各种线路,再把程序录入、调试运行,观察结果写出实验报告就行了。由于操作流程单一,学员的实验报告都是一个结论,实验效果不佳。这造成学员对实验兴趣不够,束缚了学员的创新思维。
这里给出基于Proteus的8255A的接口扩展电路仿真实验的实例——设计实现3-路抢答器。通过该实例可以简单了解到基于Proteus仿真在“微机原理与接口技术”实验课程教学中的应用方法和仿真过程。与传统实验的对比可以深切体会Proteus仿真实验教学的优点。
3.1 实例的设计任务与要求
实验实例的设计任务是:利用数码管等设计完成3-路抢答器。要求能显示哪路抢答成功,并能清除显示,以备下次使用。
实验实例的设计要求:1)能控制抢答是否开始;2)锁定显示最先抢答的选手号;3)能在一段时间以后发出报警信号;4)报警结束后数码管清零,等待下次抢答开始。
这个实例需要一片8255A和一片8253。
3.3实例的软件设计
程序主要通过读取8255A端口A的数据,判断PA0值确定抢答是否开始,再使用查询方式读取PA1-PA3数据判断是哪一个选手成功抢答。向8255A端口B输出成功抢答选手的编号,通过延时程序利用数码管显示成功抢答选手的编号。具体算法和程序参考相关教材和资料。源程序的流程图如图2所示。
3.4实例的调试与运行
Proteus本身未提供8086编译器,而是通过添加外部代码编译器,将编写好的源程序加入工程,编译并生成可执行程序。本实例采用EMU8086软件提供的编译环境进行程序的编写和编译。EMU8086是一款基于Windows的8086汇编语言编译、调试软件,其界面友好、操作简单,得到了较为广泛的应用[6-7]。程序编译正确后,将生成.COM格式的可执行文件。
Proteus支持多种程序调试方式,Proteus中的8086模型能直接加载BIN、COM和EXE格式的文件到内部RAM中去,而不需要DOS,并且允许对Microsoft(Codeview)和Borland格式中包含了调试信息的程序可以进行源和/或反汇编级别的调试[2,3]。一种简单的程序调试方法是:进入Proteus软件的ISIS环境,将程序
文件加载到8086模型中;点击运行键,仿真电路开始运行,通过观察运行效果判断硬、软件设计的正确性。
在该实例的调试过程中遇到的主要问题是:抢答问题,即一个人先按下则其他选手按下无效的问题。这里可以利用数码管显示抢答选手编号,并判定PA0值,若闭合(未开始新的抢答)则循环一直显示前次抢答成功的选手编号。
4 结论
在上面的实验教学实例的开展过程中,Proteus仿真软件很好地克服了实验箱结构固定、操作流程单一的缺点,学员的电路设计和程序设计都有多种方案。还可以从3-路抢答器自由扩展为4-路或更多路。这些都给了学员更多的实践和锻炼的机会,让他们在掌握各种接口芯片使用方法的基础上,设计开发多种应用系统,培养了整机概念、创新思维以及软硬件开发的综合能力。学员在实验过程中可以发现Proteus仿真软件具有使用方便,操作简单,不需要实际电路板、芯片、线路焊接,并且调试方便,实验结果一目了然等特点。
同时,基于Proteus仿真软件进行实验,仅需一台安装了Proteus软件的电脑就可以。这方便了学员在宿舍、机房等地不受时间和空间的限制开展“微机原理与接口技术”课程实验,课程设计,毕业设计和电子设计竞赛等。而且,网上资料很多,可以开展的实验很丰富,实验内容由简到繁,由浅入深,循序渐进,既可以进行验证性实验,也可以进行设计性实验和综合性实验。目前使用实验箱进行的8255A实验都能利用Proteus仿真软件开展,而反之则不行。
总之,基于Proteus仿真的“微机原理与接口技术”实验教学为本课程的实践教学提供了教改思路,不仅有助于提高教学质量,改善实践教学效果,而且有助于改善学员的学习主动性和提高学员对本课程的兴趣性。这对学员的综合设计能力和创新能力的提高帮助很大。
参考文献:
[1] 周明德.微型计算机系统原理及应用(第4版)习题集、习题解答与实验指导(修订版)[M].北京:清华大学出版社,2005:159,172-176.
[2] 李现国,张艳.Proteus仿真在微机原理及接口技术教学中的应用[J].实验技术与管理,2010(12).
[3] 张洁,梁惺彦,陈越.Proteus仿真软件在微机原理教学中的应用[J].福建电脑,2010(10).
[4] 陈越,顾晖,梁惺彦.虚拟仿真在微机原理教学中的应用[J].电子技术应用,2012(1).
[5] 田社平,俞水锋,方向忠,等.Proteus在微机原理课程教学中的应用[J].电气电子教学学报,2011(5).
[6] 胡建波.微机原理与接口技术实验:基于Proteus仿真[M].北京:机械工业出版社,2011:103-108.
[7] 顾晖,陈越,梁惺彦,等.微机原理与接口技术-基于8086+Proteus仿真[M].北京:电子工业出版社,2011:127-129.