石东新、柴剑平、王晖
(中国传媒大学信息工程学院广播电视工程系)
摘要:Proteus是一款非常优秀的具有单片机仿真功能的软件,将其引入单片机实践教学,对提升教学效果有很大的帮助。本文结合教学实践,论述了结合Proteus进行实践教学的方式方法,并总结了经验。
关键词:Proteus、单片机、KeilC、实践、实验、教学
一、引言
单片机原理与应用(以下简称单片机)是一门多基础、多理论、重实践的课程。实践是这门课程的重中之重,而提高学生实践开发能力和学习效果的一个重要环节就是上机实习和训练。无论是学习汇编语言程序设计,还是学习专用控制模块和外设的连接,或者掌握单片机应用系统,不通过勤加动手难以培养学生利用已学知识解决工程实际问题的能力。传统的教学模式多为理论加实践,应该说该模式符合单片机的课程特点。然而在实际操作过程中会遇到许多问题,如实践课时少、实验设备易损及实验场地不足等问题,这些都为实验课程的开设带来了不少困难。
Proteus软件为单片机课程实践和应用系统的开发,提供了非常好的平台。Proteus是英国Lab center electronics公司研发的EDA工具软件,不仅是模/数字电路的设计仿真平台,更是目前世界上最好的多种型号单片机系统的设计仿真平台。仿真过程中,用鼠标单击开关、键盘、电位计、可调电阻等动态外设模型,使单片机系统根据输入信号做出相应的响应,并将响应处理结果实时地显示在LED、LCD等动态显示器件上,实现了实时交互式仿真。整个过程与真实的软件、硬件调试过程非常相似。目前,全世界众多高校和科研机构都在使用Proteus进行教学和研究。[1]
二、实验课程安排和设计
1.程序设计IDE的选择
硬件开发平台(单片机硬件仿真器)厂家往往都会提供独立研发的程序设计IDE(集成开发环境)。如果更换硬件开发平台,则需要重新学习使用新的IDE环境,这就给教学的持续性带来了麻烦。所幸的是,Proteus软件支持51系列单片机的KeilC集成开发环境。
KeilC 51μVision 2集成开发环境是目前使用最广泛的51单片机的C语言开发环境,支持软件代码的仿真,很多硬件仿真器也都支持KeilC开发环境。其C编译工具在产生代码的准确性和效率方面达到了较高的水平,在开发大型项目时非常理想。KeilC 51软件界面友好,易学易用,特点是高效率C语言编译和便捷的调试环境,但是KeilC对汇编语言也同样支持。用过汇编语言后再使用C来开发,更易于上手。因此,单片机的实践课程采用KeilC环境是一个非常理想的选择。[2]
2.KeilC和Proteus的配合
KeilC提供了丰富的调试功能,其调试工具和调试方法与Visual C++非常类似。我们使用KeilC就是要完成程序的编写和调试,如果程序不涉及输入输出操作,即不考虑单片机的外围电路,那么这样的程序完全在KeilC中编写调试就可以。单片机课程中“MCS-51单片机指令系统”和“汇编语言设计基础”这两章都涉及51汇编语言,重在让学生熟悉指令,培养学生的编程能力。这一部分的全部实践内容都能在KeilC下很好地完成。由于是软件开发环境,学生可以在个人电脑上安装,便于自学。
单片机后续的实践内容,涉及内部的硬件功能模块和输入输出,此时就需要使用Proteus仿真环境。安装专用的动态链接库,可以将KeilC和Proteus这两个环境连接起来。Proteus用于模拟单片机的硬件应用系统,KeilC用于硬件开发平台。两个环境提供了很好的链接性,如同真实的开发一样,如LED的亮灭、数码管的显示和按键的输入等。
Proteus还提供虚拟示波器、逻辑分析仪等用以监测波形。总之,KeilC和Proteus相结合,提供了非常好的单片机模拟实验平台。
3.软件的学习和使用
KeilC和Proteus这两款软件都非常易学易用。为了节省上课讲解的课时,我们用专门的Flash录制软件分别制作了KeilC和Proteus的安装和使用录像,供学生自学。
每一款软件的安装录像都详细记录了软件的完整安装过程和注意事项。KeilC使用录像则以一个汇编例程,详细讲解了环境设置、工程建立、文件加载、程序调试的每一个过程。
Proteus的使用录像记录了搭建一个单片机应用系统的所有步骤,以及KeilC联调的方法和虚拟示波器的使用。
4.实践课程的安排
为了让实验顺利有序地进行,我们结合Proteus、KeilC的特点和单片机教学实践的内容,制作了详细的实验指导书,努力做到学生学习并按照指导手册就能将所有的实验完成。我们按照教学大纲和以前实验教学的经验,设计了将近20个软硬件的实验,并结合KeilC和Proteus的使用,编写了“单片机原理与应用实验指导书”。该指导书分为五部分:第一部分是“基于KeilC的单片机编程实验”,介绍了KeilC开发环境并结合例程对KeilC的使用做了详细介绍,这一部分包括8个软件实验;第二部分是“单片机系统的Proteus设计与仿真”,介绍了Proteus的开发环境和详细的使用方法,包括10个硬件仿真实验和1个综合实验;第三部分是“Proteus绘制PCB图”,这一部分结合第二部分的综合实验内容,给出了实现Proteus绘制PCB的全部流程,便于学生自学制作电路板;第四部分则是“51单片机的C语言编程”,给出了学习使用C语言编写51单片机程序的浅显易懂的入门介绍;最后一部分是“51系列单片机指令系统”,我们根据多年的讲义整理出51系列单片机指令系统的详细介绍,作为附录,提供给学生作参考使用。
值得一提的是,第二部分和第三部分分别有8个软件实验和10个硬件实验,都是比较基础的实验,但是需要熟练掌握。考虑到每个实验2个学时的要求,个别实验主题性比较强但又比较简单的,可以和其他实验一起做,但基本都可在2个小时内完成。同时,还需要教师布置学生做好课前充分的预习工作。为了让学生进一步掌握单片机应用系统的实际开发,提高难度,我们专门设计了一个电子时钟温度计的综合实验。通过这个实验,可以让学生设计搭建一个较为复杂实用的系统,基本可以涵盖单片机所学的全部知识。
实验指导书中的每一个软件实验都包括了背景知识、实验内容、实验目的、实验要求、源程序设计和实验结果这几项。除此以外,硬件实验还包括Proteus电路设计和Proteus仿真。其中背景知识提供了本次实验所用到的所有知识,不用借助课本,学生就能全面掌握。
三、基于Proteus的单片机实践教学优势
单片机实践教学引入Proteus,为教学带来了很多的便利。
1.解决实践不足
目前学生拥有个人电脑的情况非常普遍,Proteus软件可以方便地安装在PC和便携式电脑上。学生可以进行充分的课前准备以及课下实验。以前难以开展的个性化系统设计实验也很容易实现,实验学时不足将不再是问题。
2.解决实验设备
由于资金有限,实验室设备更新往往滞后,而且配套设备难以满足一人一套的需求,降低了学生实验的兴趣和积极性。Proteus软件最大优势就是一台PC机就可以解决问题。Proteus的软件库能够提供很多新的芯片器件,能够设计和仿真非常复杂的系统,并且一直在更新。
3.解决场地
硬件实验需要的实验设备较多,设备体积较大,相应的每个人占用的实验场地较大。
一般院校适合硬件实验的机房不多。单片机作为工科专业必修的专业基础课,实验环节所占课时较多。并且像示波器等设备,需要较大场地,难以放置,严重影响了实验效果,不利于学生实践能力的真正提高。Proteus软件的仿真教学仅需要一般的计算机机房就行,这在目前的高校里,没有任何困难,很容易推广。
4.降低损耗
硬件设备需要更新,随着设备使用时间的增加,设备的老化和故障难以避免。学生对设备使用不规范,更是加速了设备的损耗和老化。引入Proteus后,除了使用计算机,不会带来任何附加的硬件损耗问题。
5.解决远程教学
单片机原理课程在远程授课时,开展实验非常困难,硬件部分的实验基本无法实现。
对这门实践性很强的课程来说,这是个极大的缺陷。但只要教会学生安装、使用Proteus软件,学生就可以按照教师的要求完成实验,通过网络检查实验结果,使学生得到良好的实践训练。
在引入Proteus的实际教学过程中,学生编写程序的兴趣提高了,对课程的理解也加深了。有的同学甚至参照实验指导书自学后面的实验,远远超过了教学进度。课程结束时,我们询问过不少学生,普遍认为实验效果很好。
四、存在的问题
虽然Proteus提供了很好的单片机仿真开发环境,但毕竟不能替代真实的开发过程,仿真程度距离真实情况还存在差距。如高速运行状态下存在信号干扰,个别单片机指令无法模拟真实的时序,仿真环境下单片机无须外部振荡电路和复位电路就可正常运行等。另外,Proteus元件库不支持的元件也无法使用。这些原因都促使我们必须用实际硬件开发系统让学生做实验。最好的方式是,制作同仿真实验系统一致的硬件实验系统,这样,学生在仿真系统中完成的程序,就可以直接在实际硬件系统中加以验证。这种情况下硬件实验系统并不需要人手一套,这样既解决了硬件设备不足、易损的问题,又达到了学习体验实际开发的效果。
五、结论
将Proteus仿真环境引入单片机实践教学是件一举多得的好事,Proteus配合KeilC集成开发环境,对单片机实践教学效果有了很大的提升。另外,Proteus对数字电路课程的实践环节也有很好的效果,可以大力推广使用。
参考文献
[1]张靖武,周灵彬。单片机系统的PROTEUS设计与仿真。电子工业出版社,2007.
[2]李刚,李斌勤。利用PROTEUS VSM建立单片机虚拟实验室。重庆电力高等专科学校学报,2005(3):22-26.