第三节 仿真软件
PROTEUS是英国Labcenter electronics公司研发的多功能EDA软件,它具有功能很强的ISIS智能原理图输入系统,有非常友好的人—机互动窗口界面和丰富的操作菜单与工具。在ISIS编辑区中,能方便地完成单片机系统的硬件设计、软件设计、单片机源代码级调试与仿真。
PROTEUS有30多个元器件库,拥有数千种元器件仿真模型和形象生动的动态器件库、外设库,特别是有从8051系列8位单片机至ARM7 32位单片机的多种单片机类型库。支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片,它们是单片机系统设计与仿真的基础。
单片机应用产品的PROTEUS开发主要分为以下4个步骤:
(1)在PROTEUS平台上进行单片机系统电路设计、选择元器件、接插件、连接电路和电气检测等即PROTEUS电路设计。
(2)在PROTEUS平台上进行单片机系统源程序设计、编辑、汇编编译、调试,最后生成目标代码文件(*.hex)。
(3)在PROTEUS平台上将目标代码文件加载到单片机系统中,并实现单片机系统的实时交互、协同仿真。
(4)仿真正确后,制作、安装实际单片机系统电路,并将目标代码文件(*.hex)下载到实际单片机中运行、调试。若在调试过程中出现问题,可与PROTEUS软件相互配合调试,直至运行成功。
Proteus ISIS的工作界面是一种标准的Windows界面,如图8-19所示,主要包括:主菜单、标准工具栏、绘图工具栏、对象选择按钮、旋转控制按钮、仿真进程控制按钮、预览窗口、对象选择窗口、图形编辑窗口。
下面将列举一个实例讲解KeilC与Proteus相结合的仿真过程。如图8-20所示,电路的核心是单片机AT89C51。单片机的P1.0~P1.7引脚分别连接LCD显示器的段选码(a、b、c、d、e、f、g、dp)引脚,单片机的P2.0~P2.5引脚分别连接LCD显示器的位选码(1、2、3、4、5、6)引脚,其中电阻R1~R8起限流作用。
1.元器件查找
首先将所需元器件加入到对象选择器窗口,单击对象选择器按钮,如图8-21所示,弹出“Pick Devices”页面,在“Keywords”输入AT89C51,系统会在对象库中进行搜索查找,并将搜索结果显示在“Results”中,如图8-22所示。在“Results”栏中的列表项中,双击“AT89C51”,则可将“AT89C51”添加至对象选择器窗口。
图8-19 Proteus ISIS工作界面图
图8-20 实例电路图
图8-21 对象选择器按钮
重复以上步骤分别查找6位共阳七段显示器7SEGMPX6-CA和电阻RES并添加至对象选择器窗口。
图8-22 元件库搜索界面图
2.放置元器件至图形编辑窗口
在对象选择器窗口中,选中7SEGMPX6-CA,将鼠标置于图形编辑窗口中该对象的欲放位置并单击鼠标左键,该对象被完成放置。同样,将AT89C51和RES放置到图形编辑窗口中,如图8-23所示。
图8-23 元件放置图
若需要移动对象位置,将鼠标移到该对象上,单击鼠标右键,此时注意到该对象的颜色已变至红色,表明该对象已被选中,单击鼠标左键,拖动鼠标将对象移至新位置后,松开鼠标完成移动操作。
3.元器件之间的连线
Proteus的智能化可以在画线的时候进行自动检测。在操作将电阻R1的右端连接到LCD显示器的A端过程中,当鼠标的指针靠近R1右端的连接点时,跟随着鼠标的指针就会出现一个符号“×”表明找到了R1的连接点,单击鼠标左键并移动鼠标(不用拖动鼠标)至LED显示器的A端的连接点,跟随着鼠标的指针也会出现符号“×”表明找到了LED显示器的连接点,同时屏幕上出现了粉红色的连接线,单击鼠标左键,粉红色的连接线就会变成了深绿色,并且线形由直线自动变成了90°的折线,这是因为选中了线路自动路径功能。
Proteus具有线路自动路径功能(简称WAR),当选中两个连接点后,WAR将选择一个合适的路径连线。WAR可通过使用标准工具栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。
按上述过程完成电路其他连线。在此过程的任何时刻,都可以按ESC键或者单击鼠标的右键来放弃画线。至此便完成了整个电路图的绘制。
4.KeilC与Proteus连接调试
(1)将KeilC与Proteus都正确安装在C:\Program Files的目录里,把C:\Program Files\Labcenter Electronics\Proteus 6 Professional\MODELS\VDM51.dll文件复制到C:\Program Files\keilC\C51\BIN目录中。
(2)用记事本打开C:\Program Files\keilC\C51\TOOLS.INI文件,在[C51]栏目下加入:TDRV5=BIN\VDM51.DLL(“Proteus VSM Monitor-51 Driver”),其中“TDRV5”中的“5”要根据实际情况写,不要和原来的重复。(步骤1和步骤2只需在初次使用设置。)
(3)进入KeilCμVision2开发集成环境,创建一个新项目(Project),并为该项目选定单片机CPU器件:Atmel公司的AT89C51,并为该项目加入KeilC源程序。
(4)单击“Project菜单/Options for Target”选项或者点击工具栏的“option for target”按钮弹出输出控制界面,点击“Debug”按钮并在仿真软件当中选择Proteus VSM Monitor-51 Driver,如图8-24所示。
点击仿真软件设置“Setting”按钮设置通信接口,在“Host”栏中填入“127.0.0.1”,如果使用的不是同一台电脑,则需要在这里添加另一台电脑的IP地址(另一台电脑也应安装Proteus)并在“Port”栏中填入“8000”,如图8-25所示。最后将工程编译,进入调试状态,并运行。
5.Proteus的设置
进入Proteus的ISIS,鼠标左键点击菜单“Debug”,选中“use romote debuger monitor”,如图8-26所示。完成此步骤后即可实现KeilC与Proteus连接调试。
6.KeilC与Proteus连接仿真调试
单击仿真运行开始按钮,可清楚地观察到每一个引脚的电平变化,红色代表高电平,蓝色代表低电平。
图8-24 输出控制界面设置
图8-25 通信接口设置图
图8-26 远程调试器选择图