Keil和Proteus联合虚拟仿真技术在单片机教学中的应用_张晓峰

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2007年第12期总第129期
林区教学
TeachingofForestryRegion
No.122007
GeneralNo.129
Keil和Proteus联合虚拟仿真技术在单片机教学中的应用
张晓峰
(黑龙江农业工程职业学院信息工程系,哈尔滨150088)
摘 要:对于单片机技术的学习,不少学生感到难以入门,学习效果不佳。

针对这一问题,介绍了在单片机教学中采用“Keil和Proteus软件联合虚拟仿真技术”进行改革的一些观点和做法,可以使单片机的教学形象、直观,并能
够激发学生的学习兴趣,提高教学的质量和效率。

关键词:单片机;Keil;Proteus;虚拟仿真中图分类号:TP368.1 文献标志码:A 文章编号:1008-6714(2007)12-0069-03
收稿日期:2007-11-15
作者简介:张晓峰(1964-),男,吉林怀德人,副教授,从事嵌入式系统、EDA技术研究。

一、单片机教学中存在的双重困惑
“单片机技术”是当今电子信息领域广泛应用的一门技术,也是本科、高职高专及中职院校电子、电气、计算机、自动化等专业学生应掌握的一项基本技能。

然而各层次的学生普遍感到这门课比较难学,同时单片机课程教师也感觉难教,教学效果一般都不够理想。

造成教师难教、学生难学的双重困惑的原因究竟是什么?
第一,来自单片机课程本身。

单片机技术是一门实用性、综合性很强的学科,具有理论与实践结合、软件与硬件结合等特点。

单片机的开发者除了应具有单片机本身的专业知识外,还必须要有扎实的硬件电路功底、较强的动手能力,还要掌握计算机编程的一般方法。

第二,单片机教材不合适与教学方法不合理。

目前市场上令人眼花缭乱的教材中多数缺少实用案例,实践性不强,书学完了却不会应用,由于脱离实践环境,单一靠纯粹理论知识的学习,很难掌握单片机技术,学生需要的是更多的和计算机、实验台(仪)、仿真器进行交互式和协作式的学习活动。

另外,难以进行单片机实物课堂演示,因为要用计算机、仿真器、实验电路板、电源等多种设备,其中仿真器或编程器要与计算机相连,也要与电路板相连,电源要接到实验电路板上,教师要花较长的时间准备。

如果用编程器写芯片的方法来验证运行结果,又得多次在实验板与编程器之间拔、插芯片,非常麻烦。

即使演示成功也因为实验板太小,学生很难看清楚有关的现象。

第三,学生方面的单片机实验也存在诸多问题。

除了教师在课堂上演示的一些实验外,还必须给学生安排相应的课外实验以加深对理论知识的理解。

从这一意义上来说,尽管是开设了若干课外实验,对这样一类难学的课程来说仍是远远不够的,应该给学生创造条件让他们能在课后独立做实验,但是传统的单片机实验室不容易做到这一点。

还有就是设备数量不足与老化问题,单片机新技术层出不穷,一般仿真器二到三年即换代,而学校单片机实验室设备十年不换也很常见。

二、虚拟仿真软件平台环境介绍
现代科技的发展,促进了计算机技术在软件和硬件上的飞速发展,利用计算机软件的虚拟仿真技术,可以充分地仿真诸如电路的工作等实际的工程问题。

如果将计算机软件的虚拟仿真技术应用于单片机理论教学、实验、实训教学过程中,可达到直观、形象、生动、具体等效果,是单片机技术教学与学习中省时、省力、实用、高效的好方法,是对传统教学方法的一种有益补充,是今后教学手段改革的方向。

开发软件:单片机系统是软硬件的结合体,编程、下载、仿真均需有相应的软硬件平台环境,目前可供选用的51系列开发软件有很多种,如国产的有Wave、MedWin、TKStudio、Dais、AEDK等,国外的有Keil、Aspier、SiliconLa-boratories及IAR等,但笔者还是推崇Keil,因为它集编辑、编译、仿真、调试于一体,支持汇编、PLM和C程序设计,界面友好,易学易用。

Keil目前最新版本是V8.08(截至2007年3月),它提供了更加强大的编辑功能,支持的MCU型号更新更多,是目前世界上最优秀、最强大的51核MCU开发平台。

仿真软件:Proteus软件是来自英国Labcenterelectron-ics公司的EDA工具软件,它除了具有和其他EDA工具一样的原理图设计、PCB布线及电路仿真功能外,更主要的是包含了革命性的VSM(虚拟系统模型)技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。

ProteusVSM将处理器模型、Prospice混合电路仿真、虚拟仪器、高级图形仿真、动态器件库和外设模型、处理器仿真器、第三方的编译器和调试器等有机结合起来,第一次实现了在计算机上完成从原理图设计、电路分析与仿真、处理器代码调试及实时仿真、系统测试及功能验证到生成PCB的整个开发过程。

Proteus软件在全球拥有众多用户,如HP、ST、AD、SONY、Panasonic等一些知名公司,也包括像剑桥大学、斯坦福大学等许多大学用户,广泛用于这些院校的大学或研究生电子学教学与实验中。

世界著名电子杂志《电子世界(EWW)》曾将Proteus软件评为最好的产品。


69—
Proteus软件由于其强大、直观、完善、全面的功能,非常适合教学,目前已为越来越多国内大学作为电工电子虚拟实验平台、单片机设计与虚拟仿真实验室、嵌入式系统设计与仿真实验室和创新实验平台等电类综合实验平台,为教学改革、创新和科研开发提供了良好的软件支撑。

Proteus可以仿真51、AVR、PIC、MC68HC11等系列常用的MCU及其外围电路(如LCD,RAM,ROM,KEYBOARD,MOTOR,LED,AD/DA,部分SPI、I2C等器件),还支持ARM7的仿真,它不必使用真正的开发板就可以通过软件虚拟仿真看到项目产品的执行结果。

目前,Proteus的最新版本为Proteus7.2,其实Proteus与multisim类似,只不过它可以仿真MCU,但最新的multisim10也可以仿真单片机了。

Proteus和KeilIDE之间,可通过VDM(VirtualDebugMonitor)协议通讯实现源码级的调试(Debug)。

两者相结合,在KeiluVision3中调用ProteusISISProfessional进行MCU外围器件的虚拟仿真,实现在不使用真正开发板的情况下,通过Keil对该仿真电路进行源码级的Debug。

三、Keil和Proteus软件联合虚拟仿真技术在教学中典型应用实例
1.软件环境
操作系统:WindowsXP。

硬件仿真系统:ProteusISISProfessionalRelease6.9SP4withAdvancedSimulation。

编译、Debug环境:KeiluVision3(V8.06)。

2.初次设置
(1)确认已经安装TCP/IP协议。

使用“Ping”命令确认是否正确安装了TCP/IP协议。

点击“开始程序附件
命令提示符”,打开Ping对话框,输入Ping127.0.0.1(自己电脑的IP地址)后回车,查看结果(一般是没问题的,显示“Requesttimedout”时才表示不通)。

(2)从Proteus安装目录复制“VDM51.dll”文件到Keil的BIN目录下。

通常两者分别位于C:ProgramFilesLab-centerElectronicsProteus6ProfessionalMODELS和C:KEILC51BIN目录中。

但Proteus6.9的MODELS下没有“VDM51.dll”文件,可以将较早的一个版本如Proteus6.7中的“VDM51.dll”文件复制到Proteus6.9的MODELS中。

(3)修改Keil安装目录下的TOOLS.INI文件并保存。

用记事本打开Keil的配置文件TOOLS.INI,该文件通常位于C:Keil目录下。

在[C51]字段下面,找到“TDRV[?] =*”格式的命令行的最后一行,在其后添加一行:TDRV[?+1]=BINVDM51.DLL(“ProteusVSMMonitor-51Driver”)。

这里的“[?]”、“[?+1]”均表示从0开始的数字。

已经用了某些数字,请按照已经使用的最大数字加1作为新的序号。

如:TDRV8=BINVDM51.DLL(“Pro-teusVSMMonitor-51Driver”),实际上“TDRV[?]”中的数字“[?]”只要不与原来已有的重复即可。

(4)保存文件并关闭记事本。

3.联合虚拟仿真步骤
下面以00~99计数器虚拟仿真为例,介绍联合调试的步骤。

利用AT89C51单片机制作一个手动计数器,在单片机的P3.7引脚接一个轻触按键,作为手动计数按钮,在P2.0~P2.7引脚接一个共阴极数码管,作为计数器的个位数显示,P0.0~P0.7接的数码管作为十位数显示。

每按一次键后,显示值加1,加到99后,再次按键则返回0重新开始计数。

(1)打开ProteusISIS,画出相应电路如图1所示。

在Proteus的Debug菜单中选中“UseRemoteDebugMonitor”。

(2)在Keil中编写单片机00~99计数器程序(C51及汇编均可),程序略。

主要步骤为:新建一个工程文件,从器件库中选择目标器件,配置工具设置;用汇编语言或C语言创建源程序并保存;添加源程序文件到工程中;编译文件,修改源程序中的错误;进入仿真状态,调试运行程序。

Keil与Proteus的联合调试时,Keil作为软件调试界面,Proteus作为硬件仿真调试界面。

(3)打开Keil的Project菜单,选择“OptionforTarget`Target1'”,打开对话框,单击Debug选项卡,通常默认Debug模式为“UseSimulator”,表示使用Keil本身的软件仿真。

这里选择Debug菜单选项中右栏上部的Use:,并在其右边的下拉菜单选中“ProteusVSMMonitor-51Driver”选项。

如果没出现此选项,则说明是TOOLS.INI文件设置或VDM51.DLL文件未正确装入问题,需重新进行调整。

接下来进入Settings选项,在“VDM51Targetsetup”对话框中,本机默认的IP为127.0.0.1,端口号为8000,一般不需修改。

如不是同一台机器(可在一台机器上运行Keil,另一台上运行Proteus进行远程仿真)则要填入另一台机器的IP地址,但端口号不变。

多数情况下,还要选中下面的“LoadApplicationatStartup”和“GoUntilMain”两个选项,特别是用C51编程时。

(4)使用KeilC51进行Debug。

到此为止已经做好了Debug前的准备工作,在Keil里对汇编(或C51)源程序进行编译、连接后,就可以像在仿真器上一样设置断点、单步、全速调试了,随时都可以观察软硬件的互动工作的过程,特别是在Proteus中查看直观的结果。

结合Proteus里的虚拟仪表可以观测数据和波形,或者利用计算机的扬声器听到声音。

在Debug过程中可以看到“ProteusISIS”下方提示栏有实时的时间显示。

注意:运行Keil前,请确认已经运行ProteusISIS并选中了“UseRemoteDebugMonitor”,若有防火墙要设置允许访问TCPPort8000,另外,迅雷软件可能占用这个端口,要先启动Proteus后启动迅雷。

如果不想联合虚拟仿真而只在Proteus中观察运行结果,则可在Keil的“OptionforTarget`Target1'”的选项卡“Output”中选中“CreateHexFile”选项,并重新编译源程序后生成*.Hex文件,转到ProteusISIS中,用鼠标右键选中AT89C51并单击左键打开“EditComponent”对话框,设置单片机的晶振频率为12MHz或其他值,在此窗口中的“ProgramFile”栏中,点击文件夹浏览按钮,选择已经生成的“*.Hex”文件并点击“OK”,分别单击以下四个按钮
可以实现启动仿真、单步仿真、暂停仿真和停止仿真。

实时仿真运行的过程中,每个管脚的旁边会出

70—
现一个小正方形的指示,红色代表高电平,蓝色代表低电平,灰色代表不确定,不用虚拟工具测量也能直观地看到每个管脚的电平变化,便于对程序的运行作出最基本的判断。

在程序运行状态,用鼠标按下一次键后,显示指示值加1,获得了预期效果。

四、结论
通过以上实例可以看出,从最初的设计到最后的实现都是通过运行计算机上的软件来实现的。

利用开发软件、仿真软件和现有的多媒体教学设备(一台电脑和一台投影仪),便能在课堂中完成软件、硬件和系统集成等内容的教学,并让学生在有限的时间内理解掌握,这是以往很难做到的。

在教学过程中,教师可多设计一些问题,让学生讨论解决方案,利用仿真软件,验证方案的正确性,并加以分析与解释,将教与学逐步推向深入。

如果在多媒体机房上课,全部学生还可自己绘制电路原理图,自己编制程序,在仿真软件里进行调试。

自主设计和实施电路仿真,有利于系统、科学、有效地培养学生的专业实践能力。

学生在调试过程中经常会出现一些意想不到的问题,教师通过引导学生解决这些问题,提高学生解决实际问题的能力。

运用Keil和Proteus的联合虚拟仿真调试的方法,由于不涉及硬件,没有任何危险,不需要教师现场指导,学生可以利用个人配置的计算机来完成单片机学习与实践,实现了从传统教学地点学习知识到不受时间、空间和资金等方面局限的跨越。

所选择的实现方案可以相互不同,有利于发挥其创新能力。

实践证明,利用联合虚拟仿真技术组织教学能够激发学生的学习兴趣,丰富教学内容,获得良好的教学效果。

因此,完全可以说:
Proteus是电类课程教学,特别是单片机课程教学的先进手段;
Proteus是电类课程实验,特别是单片机实验教学的虚拟平台;
Proteus是单片机课程设计、毕业设计和实习、实训的创作园地;
Proteus是单片机产品研发快速、灵活、经济的设计方法;
Proteus提供了电类课程,特别是单片机课程教改的新思路。

当然,主张实验、实训及教学采用软件仿真技术并不否定传统的实物实验,毕竟我们真正应用的是实实在在的元器件,并且虚拟仿真也存在一些不可避免的缺陷,如,国内常用的一些芯片器件库中有的没有,传感器的器件模型还很少,实时性比较差等。

学生实际动手能力不能因此而削弱,关键问题是将虚拟与现实有机融合到一起,采取让学生先学会实物实验的基本操作,然后即转向以这两种软件为主的虚拟仿真设计当中,仿真成功后,如果需要,再回到实物中实现,这样可以大大提高成功率,并能有效减少不必要的损失。

参考文献:
[1]严天峰.单片机应用系统设计与仿真调试[M].北京:北
京航空航天大学出版社,2005.
[2]周润景,等.Proteus在MCS-51&ARM7系统中的应用百
例[M].北京:电子工业出版社,2006.
[3]张靖武.单片机系统的PROTEUS设计与仿真[M].北京:
电子工业出版社,2007.
[4]周坚.单片机轻松入门[M].北京:北京航空航天大学出
版社,2004.
[5]马刚,李向仓.用Proteus与Keil整合构建单片机虚拟仿
真平台[J].现代电子技术,2006,(24).
〔责任编辑:李海波〕

71
—。

相关文档
最新文档