摘要:文章描述了使用Proteus软件与Keil uVision3软件建立联合仿真的方法,并用实例说明联合仿真的方法和过程。
关键词:Proteus软件;Keil uVision3软件
目前,单片机技术在实际工程中得到了广泛应用,Proteus软件与Keil uVision3软件的联合仿真在实际的单片机系统开发中被普遍应用。为此,在单片机课程教学过程中,教师一定要结合工程实际做到软件和硬件相结合,实现理论教学与工程实践紧密结合,在传授理论知识的同时,教会学生如何使用实际工程所应用的相关软件进行单片机系统开发。
Proteus软件与Keil uVision3软件简介
Proteus软件的介绍Proteus软件是英国LabcenterElectronics公司开发的电子设计自动化(EDA)工具软件。该软件主要由实现原理图编辑及仿真的ISIS模块和实现PCB板设计及自动布线的ARES模块组成。Proteus不但具有其他EDA软件的模拟电子和数字电子仿真功能,而且还具有其他EDA软件所没有的单片机系统硬件仿真功能。它可以仿真MS51系列单片机、AVR单片机、PIC单片机和ARM7微处理器,可以直接在电路原理图上实现硬件的虚拟仿真,实现程序的调试,并提供进行测试与分析的虚拟示波器、逻辑分析仪等虚拟仪器及仿真图表。
Keil uVision3软件的介绍Keil uVision3软件是德国的嵌入式开发工具专业制造商Keil公司开发的单片机开发软件平台。首先,该软件不但可以进行软件仿真,而且还可以通过其内嵌模块Keil-Monitor-51,实现在不需要连接硬件仿真器的条件下,通过下载线连接硬件系统对项目进行实时仿真。其次,可以与Proteus单片机仿真软件联合实现虚拟硬件仿真。再次,Keil uVision3软件具有良好的调试界面,操作不复杂,具有优秀的编译效果,丰富的学习资料。目前,Keil uVision3软件的用户非常庞大,几乎所有的嵌入式开发工程师都使用该软件。
Proteus软件与Keil uVision3软件联合仿真的建立
Proteus软件与Keil uVision3软件之间可有相互独立和相互联合两种方式进行单片机系统的虚拟仿真。如用Proteus软件独立进行虚拟仿真,就是用Keil uVision3软件的编辑控制程序,在Keil uVision3软件的Option for Target “Target1”选项卡Output中选择Create HEX File选项,然后进行编译,生成*.HEX文件。然后,将该文件转到Proteus的ISIS模块中,在所仿真的电路中打开单片机的编辑对话框Edit Component,在此窗口中的Program File栏中,选择通过编译生成的*.HEX文件,并在Clock Frequency栏中设置单片机的晶振频率,点击OK完成Edit Component窗口的设置。最后,点击Proteus软件的仿真启动按钮实现电路的仿真。
Proteus软件与Keil uVision3软件之间的联合虚拟仿真,指Keil uVision3软件将Proteus软件打开的单片机系统看成一个虚拟的硬件电路,使用Keil uVision3软件对程序进行编译、调试时自动连接Proteus软件中的虚拟单片机系统,虚拟单片机系统的状态随Keil uVision3软件对程序调试实时变化。这样,可实现用Proteus软件与Keil uVision3软件联合虚拟硬件仿真。要实现联合虚拟硬件仿真就必须对Proteus软件与Keil uVision3软件进行如下设置:
1.安装好Proteus软件和Keil uVision3软件后,安装压缩包中的vdmagdi.exe文件,此时在路径为Keilc51in的文件夹里有VDM51.DLL文件。
2.将压缩包中的Prospice.dll文件复制到Proteus6.9根目录的BIN文件夹中,并将原来的文件覆盖。
3.在Proteus软件中打开要仿真的单片机系统原理图,并在Debug菜单中选择Use remote debug monitor。
4.在Keil uVision3软件中打开要进行联合仿真的项目和程序,点击Project并在Option for Target“Target1”选项卡Debug中选择Use Proteus VSM Simulator。然后,点击Setting按钮进入Host IP和端口Port的设置,如果在同一台计算机上进行联合仿真,则Host IP地址为127.0.0.1,端口设置为8000。如果两台计算机通过互联网进行联合仿真,则Host IP地址为这台计算机的网上IP地址,端口也为8000,这样,就可以实现一台计算机的Keil uVision3软件平台通过互联网去连接远程的另一台计算机,并远程控制另一台计算机的Proteus软件实现虚拟仿真。
按上述的步骤进行设置后,Proteus软件和Keil uVision3软件之间即可进行联合仿真。
Proteus软件与Keil uVision3软件联合仿真实例
下面通过一个实例来进一步说明用Proteus软件与Keil uVision3软件联合仿真来调试程序的过程。该实例是用一个8×8的LED点阵块来显示字符。启动Proteus软件的ISIS模块设计如图所示的仿真电路原理图。
用单片机的串行口输出显示数据,用74HC595芯片将单片机发出的串行数据转换成并行数据,并送给LED显示屏;单片机的P1.0~P1.2管脚输出LED显示屏的行选编码,并通过74HC138芯片译码产生行选信号,实现LED显示屏行扫描显示。用设计好的仿真电路原理图实现显示字符“↑”。根据电路实现的功能要求用Keil uVision3编辑软件编写如下源程序:
ORG 0000H
MOV SCON,#00H;串行口工作方式0
START:MOVR1,#00H
MOVR2,#00H
MOVR3,#8
MOVDPTR,#TABLE;显示字符的数据表首地址送DPTR
E1:MOVA,R1;查表索引值送R1
MOVCA,@A+DPTR;查字符数据表
MOVSBUF,A;串行发送
JNBTI,$;一帧发送完毕吗?
0CLRTI
SETBP2.1;关闭显示器,消隐
MOVA,R2
MOVP1,A;送行选信号
CLRP2.0;产生74HC595的数据锁存信号(上升沿)
NOP;保证数据锁存信号有一定的脉冲宽度
NOP
SETBP2.0
CLRP2.1;74HC595数据输出给显示器
INCR1;准备读取字符的下一行数据
INCR2;准备扫描下一行
MOVR4,#250;每行的显示时间
DJNZR4,$;
DJNZR3,E1
AJMPSTART
TABLE:DB 10H,20H,40H,0FFH,40H,20H,10H,00H;
END
完成源程序的编写后,用Proteus软件打开要仿真的电路,在Keil uVision3编辑平台下选择主菜单Project下的Build target命令对源程序进行编译,如果程序没有语法错误,继续选择主菜单Debug下的Start/stop debug session命令运行源程序,此时,Proteus软件中的仿真电路图已处在单步执行的运行状态。然后,可以在Keil uVision3软件或在Proteus软件中Debug菜单下的命令对源程序进行调试,同时在Proteus软件中可以很直观地查看结果,这样即可像使用仿真器一样调试程序。
Proteus软件与Keil uVision软件联合仿真教学的效果
近年,笔者将Proteus软件与Keil uVision软件联合仿真应用于单片机接口技术的课程教学,收到了良好的教学效果,教学质量得到明显提高,喜欢学习单片机的学生明显增多。在教学过程中,每个实例都采用Proteus软件与Keil uVision软件联合仿真对程序都像仿真器一样调试,同时在屏幕上学生可以直观地看到电路输出状态,比较容易读懂并理解所调试的程序。这在一定程度上降低了学生学习单片机的难度,也提高了学生学习单片机的兴趣。学生可以只用一部电脑完成一个单片机系统设计、调试等操作,解决了学生想学好单片机但又缺乏硬件条件的问题;用Proteus软件与Keil uVision软件联合仿真技术进行单片机课堂实验演示极大地提高了课堂效率,克服了用传统仿真器进行实验演示时教师要准备很多硬件设备、要进行接线等操作的缺点。在实际工程中,Proteus软件与Keil uVision软件联合仿真技术也被广泛应用,用仿真器仿真调试电路程序将逐渐被淘汰。这样,使用Proteus软件与Keil uVision软件联合仿真技术进行教学可充分做到教学与实际工作需要不脱节,使学生在校学习期间就掌握了实际工作中需要的知识,培养了实际工作需要的单片机开发技能,可提高学生就业成功率,并能够缩短毕业生适应相关工作岗位的时间。
参考文献:
[1]张晓峰. Keil与Proteus联合虚拟仿真技术在单片机教学中的应用[J].林区教学,2007,(12).
[2]马刚.Proteus与Keil整合构建单片机虚拟仿真平台[J].现代电子技术,2006,(24).
作者简介:
侯继红(1975—),男,硕士,广州科技贸易职业学院讲师,研究方向为单片机应用及电子EDA技术应用。