首页 理论教育 Proteus虚拟仿真平台在单片机与微机应用实验实

Proteus虚拟仿真平台在单片机与微机应用实验实

时间:2023-10-18 理论教育 版权反馈
【摘要】:Proteus是英国Lab Center Electronics公司于1989年推出的完全使用软件手段来对单片机应用系统进行虚拟仿真的软件开发平台。Proteus提供了各种信号源、虚拟仿真仪器,并能对电路原理图的关键点进行虚拟测试。Proteus提供了丰富的调试功能。按要求把Proteus安装在PC机上。

Proteus虚拟仿真平台在单片机与微机应用实验实

Proteus是英国Lab Center Electronics公司于1989年推出的完全使用软件手段来对单片机应用系统进行虚拟仿真的软件开发平台。

1. Proteus功能简介

Proteus是目前支持嵌入式处理器的虚拟仿真平台之一,除可仿真模拟电路、数字电路外,还可仿真8051、PIC12/16/18系列、AVR系列、MSP430等各主流系列单片机,以及各种外围可编程接口芯片。此外,它还支持ARM7、ARM9等型号的嵌入式微处理器的仿真。

Proteus不需要用户硬件样机就可直接在PC(个人计算机)上对单片机系统进行虚拟仿真,将系统的功能及运行过程形象化,并可以像焊接好的电路板一样看到单片机系统的执行效果。

Proteus元件库中有几万种元件模型,可直接对单片机的各种外围元件及电路进行仿真,如RAM、ROM、总线驱动器、各种可编程外围接口芯片、LED数码管显示器、LCD显示模块、矩阵式键盘以及多种D/A和A/D转换器等。此外,它还可对RS232总线、I2C总线、SPI总线进行动态仿真。

Proteus提供了各种信号源、虚拟仿真仪器,并能对电路原理图的关键点进行虚拟测试。

Proteus提供了丰富的调试功能。在虚拟仿真中具有全速、单步、设置断点等调试功能,同时可支持观察各变量、寄存器的当前状态。

目前,Proteus已在包括剑桥大学、斯坦福大学牛津大学、加州大学在内的全球数千所高校以及世界各大研发公司得到广泛应用。

尽管Proteus具有开发效率高、不需要附加的硬件开发装置成本等优点,但是它不能进行用户样机硬件的诊断,所以在单片机系统的设计开发中,一般是先在Proteus环境下绘出系统的硬件原理电路图,在Keil C51环境下书写并编译程序,接着在Proteus环境下仿真并通过,然后依照仿真结果来完成实际的硬件设计,并把仿真通过的程序代码通过编程器或在线烧录到单片机的程序存储器中,最后运行程序并观察用户样机的运行结果,如有问题,再连接硬件仿真器或直接在线修改程序以进行分析、调试。

2. Proteus ISIS的虚拟仿真

Proteus ISIS(智能原理图输入)用来绘制单片机系统的电路原理图,还可直接实现单片机系统的虚拟仿真,可模拟产生声、光及各种动作等逼真的效果。

当电路连接无误后,单击单片机芯片载入经Keil C51调试编译后生成的.hex文件,点击仿真运行按钮,即可检验电路硬件及软件的设计正确与否。

按要求把Proteus安装在PC机上。安装完后,单击桌面上的ISIS运行界面图标,即可出现如图2.2所示的Proteus ISIS原理电路图绘制界面(以汉化7.5版本为例)。

整个屏幕界面分为若干个区域,由原理图编辑窗口、预览窗口、工具箱、主菜单栏、主工具栏等组成。

3. ISIS各窗口简介

ISIS界面主要有3个窗口:原理图编辑窗口、预览窗口和对象选择窗口,如图2.2所示。

1)原理图编辑窗口

该窗口用来绘制电路原理图,设计电路以及各种符号模型的区域,蓝色方框内为可编辑区,元件放置、电路设置尽量在此框中完成。

图2.2 Proteus ISIS的界面

2)预览窗口

该窗口可对选中的元器件进行预览,也可对原理图编辑窗口进行预览,如图2.3所示。可显示两个内容:

(1)如单击元件列表中的元件时,预览窗口会显示该元件符号。

图2.3 预览窗口调整原理图的可视范围

(2)当鼠标焦点落在原理图编辑窗口时(即放置元件到原理图编辑窗口后或在原理图编辑窗口中点击鼠标后),它会显示整张原理图的缩略图,并会显示一个绿色方框,框里的内容就是当前原理图窗口中显示的内容。

单击绿色方框中的某一点,就可拖动鼠标来改变绿色方框的位置,从而改变原理图的可视范围,最后在绿色方框内单击鼠标,绿色方框就不再移动,使得原理图的可视范围固定。

3)对象选择窗口

该窗口用来选择元器件、终端等对象。该窗口中的元件列表区用来表明当前所处模式以及其中的对象列表,如图2.4所示。窗口中两个按钮:“P”为器件选择按钮,“L”为库管理按钮。在图中可以看到元件列表,即已经选择的AT89C51单片机、电容电阻、晶振、发光二极管等各种元器件。

图2.4 元件列表

4. 主菜单栏

图2.2最上面一行为主菜单栏,包含如下命令:文件、查看、编辑、工具、设计、绘图、源代码、调试、库、模板、系统和帮助。单击任意菜单命令后,都将弹出其下拉的子菜单命令列表。

1)文件(File)菜单

文件菜单包括工程的新建设计、打开设计、导入位图、导入区域、导出区域和打印等操作,如图2.5所示。ISIS下的文件主要是设计文件(Design Files),文件扩展名为“.DSN”,它包括一个单片机硬件系统的原理电路图及其所有信息,用于虚拟仿真。

图2.5 文件菜单

下面介绍文件菜单下的新建设计命令。

点击“文件”→“新建设计”,出现一个空的界面,新设计的默认名为“UNTITLED.DSN”。该命令会把该设计以这个名字存入磁盘文件中,文件的其他选项也会使用它作为默认名。

如想进行新的设计,即需给该设计命名并保存,然后点击“文件”→“保存设计”(也可直接点击主工具栏中的快捷图标),输入新的文件名保存即可。

2)工具(Tools)菜单

工具菜单如图2.6所示。菜单中的“自动连线(W)”命令图标,在绘制电路原理图中会用到,在绘制电路原理图时会出现,按下快捷图标即进入自动连线状态。

图2.6 工具菜单

3)调试(Debug)菜单

调试菜单如图2.7所示,主要完成单步运行、断点设置等功能。

图2.7 调试菜单

5. 主工具栏

主工具栏位于主菜单下面,以图标形式给出,栏中共有38个快捷图标按钮:

每一个图标按钮都对应一个具体的菜单命令,主要目的是快捷方便地使用这些命令。下面把38个图标分为4组,简要介绍快捷图标命令的功能。

图标的功能如下:

:新建一个设计文件;

:打开一个已存在的设计文件;

:保存当前的电路图设计;

:将一个局部文件导入ISIS中;

:将当前选中的对象导出为一个局部文件;

:打印当前设计文件;

:选择打印的区域。

图标的功能如下:

:刷新显示;

:原理图是否显示网格的开关;

:是否显示手动原点;

:以鼠标所在点为中心居中;

:放大;

:缩小;

:查看整张图;

:查看局部图。

图标的功能如下:

:撤销最后一步操作;

:恢复最后一步操作;

:剪切选中对象;

:复制选中对象至剪切板;

:从剪切板粘贴;

:复制选中的块对象;

:移动选中的块对象;

:旋转选中的块对象;

:删除选中的块对象;

:从库中选取器件;

:创建器件;

:封装工具;

:释放元件。

图标的功能如下:

:自动连线;

:查找并连接;

:属性分配工具;

:设计浏览器;

:新建图纸;

:移动页面/删除页面;

:退出父页面;

:生成元件列表;

:生成电气规则检查报告;

:生成网表并传输到ARES。

6. 工具箱

图2.2中最左侧为工具箱,选择相应的工具箱图标按钮,系统将提供不同的操作工具。对象选择器根据不同的工具箱图标决定当前状态显示的内容。显示对象的类型包括:元器件、终端、引脚、图形符号、标注和图表等。

下面介绍工具箱中各图标按钮对应的功能。

1)模型工具栏各图标的功能

:选择模式。

:元件模式,用来拾取元器件。

设计者可根据需要,从丰富的元件库中拾取元器件并添加元件到列表中。单击此图标可在列表中选择元件。

:放置电路的连接点。

此按钮适用于节点的连线,在不用连线工具的条件下,可方便地在节点之间或节点到电路中任意点或线之间连线。

:标注线标签或网络标号。

该图标按钮在绘制电路图时,具有非常重要的意义,它可使连线简单化。例如,从8051单片机的P1.7脚和二极管的阳极各画出一条短线,并标注网络标号为1,那么就说明P1.7脚和二极管的阳极已经在电路上连接在一起了,而不用真的画一条线把它们连起来。

:输入文本。

使用本图标按钮命令,可在绘制的电路上添加说明文本。

:绘制总线。

总线在电路图上表现出来的是一条粗线,它代表的是一组总线。当连接到总线上时,要注意标好网络标号。

:绘制子电路块。

:选择端子。

点击此图标按钮,在对象选择器中列出可供选择的各种常用端子:

DEFAULT:默认的无定义端子;

INPUT:输入端子;

OUTPUT:输出端子;

BIDIR:双向端子;

POWER:电源端子;

GROUND:接地端子;

BUS:总线端子。

:选择元件引脚。

点击此图标,在对象选择器中列出可供选择的各种引脚(例如,普通引脚、时钟引脚、反电压引脚和短接引脚)。

:在对象选择器中列出可供选择的各种仿真分析所需的图表(如模拟图表、数字图表、混合图表和噪声图表等)。

:当需要对设计电路分割仿真时,采用此模式。

:在对象选择器中列出各种信号源(如正弦、脉冲和FILE信号源等)模式。

:在电路原理图中添加电压探针。电路仿真时可显示探针处的电压值。

:在电路原理图中添加电流探针。电路仿真时可显示探针处的电流值。

:在对象选择器中列出可供选择的虚拟仪器。(www.xing528.com)

2)2D图形模式各图标按钮功能

:画线。点击本图标,右侧的窗口中提供了各种专用的画线工具,具体如下:

COMPONENT:用于元器件的连线;

PIN:用于引脚的连线;

PORT:用于端口的连线;

MARKER:用于标记的连线;

ACTUATOR:用于激励源的连线;

INDICATOR:用于指示器的连线;

VPROBE:用于电压探针的连线;

IPROBE:用于电流探针的连线;

GENERATOR:用于信号发生器的连线;

TERMINAL:用于端子的连线。

SUBCIRCUIT:用于支电路的连线;

4D GRAPHIC:用于二维图的连线;

WIRE DOT:用于线连接点的连线;

WIRE:用于线连接;

BUS WIRE:用于总线的连线;

BORDER:用于边界的连线;

TEMPLATE:用于模板的连线。

:画一个方框。

:画一个圆。

:画一段弧线。

:图形弧线模式。

:图形文本模式。

:图形符号模式。

:图形标记模式。

3)旋转或翻转的图标按钮功能

:元件顺时针方向旋转,只能是90° 的整数倍。

:元件逆时针方向旋转,角度只能是90° 的整数倍。

:元件水平镜像旋转。

:元件垂直镜像旋转。

7. 元件列表

如图2.8所示,元件列表用于挑选元件、终端接口、信号发生器、仿真图表等。

挑选元件时,单击“P”快捷图标,这时会打开挑选元件的对话框,在对话框中的“关键字”里面输入要检索的元器件的关键词,例如要选择使用AT89C51,就可以直接输入。输入后能够在中间的“结果”栏里面看到搜索的元器件的结果。

在对话框的右侧,还能够看到选择元器件的仿真模型以及PCB参数。这里选择了元件AT89C51后,双击AT89C51,该元件就会在左侧的元件列表中显示,以后用到该元件时,只需在元件列表中选择即可。

图2.8 元件列表

8. Proteus的各种虚拟仿真调试工具

Proteus提供了多种虚拟仿真工具以检查设计的正确性,为单片机系统的电路设计、分析以及软硬件联调测试带来极大的方便。

1)虚拟信号源

Proteus ISIS为用户提供了各种类型的虚拟激励信号源,并允许用户对其参数进行设置。单击工具箱中的快捷图标,就会出现如图2.9所示的各种类型的激励信号源的名称列表及对应的符号。这里选择的是正弦波信号源,在预览窗口中显示的是正弦波信号源符号。

名称列表中各符号所对应的激励信号源如表2.1所示。

2)虚拟仪器

单击工具箱中的快捷按钮,可列出所有的虚拟仪器名称,如图2.10所示。图2.10中的名称列表中所对应的虚拟仪器名称如表2.2所示。

图2.9 各种激励信号源及其对应的符号

表2.1 各种激励信号源及对其应的符号

图2.10 虚拟仪器名称列表

表2.2 各种符号对应的虚拟仪器

9. 几种常用的虚拟仪器

1)虚拟终端

虚拟终端的原理图符号如图2.11所示,该仪器在调试异步串行通信时使用。虚拟终端共有4个接线端,其中RXD为数据接收端,TXD为数据发送端,RTS为请求发送信号,CTS为清除传送,是对RTS的响应信号。

图2.11 虚拟终端的原理图符号

图2.12所示为单片机与上位机(PC机)之间进行串行通信,使用虚拟终端就可免去PC机的仿真模型,直接由虚拟终端VT1、VT2显示出PC机经RS232串行接口模型与单片机之间异步发送或接收数据的情况。VT1显示的数据表示了单片机经串口发给PC机的数据,VT2显示的数据表示了PC机经RS232接口模型接收到的数据,从而省去了PC机的串口模型。

虚拟终端在运行仿真时会弹出一个仿真界面,当PC机向单片机发送数据时,该界面和虚拟键盘关联,用户可从虚拟键盘经虚拟终端输入数据;当PC机接收到单片机发送来的数据后,虚拟终端相当于一个显示屏,会显示相应信息。

2)I2C调试器

图2.13中的虚拟仪器名称列表中的“I2C DEBUGGER”就是I2C调试器,允许用户监测I2C接口总线,可以查看I2C总线发送的数据,同时也可作为从器件向I2C总线发送数据。

图2.12 单片机与PC机之间串行通信的虚拟终端

图2.13 I2C调试器的原理图符号

I2C调试器有3个接线端:

SDA:双向数据线;

SCL:时钟线,双向;

TRIG:触发输入,能使存储序列被连续地放置到输出队列中。

图2.14所示为单片机通过控制I2C总线向带有I2C接口的存储器芯片AT24C02进行读写,可利用I2C调试器来观察I2C总线数据传送的过程。

图2.14 单片机读写带有I2C接口的存储器AT24C02的电路原理图

启动仿真,鼠标右键单击I2C调试器,出现I2C调试窗口,如图2.15所示。

单击其中的“+”符号,还能把I2C总线传送数据的细节展现出来。I2C总线传送数据时,采用了特别的序列语句,出现在数据监测窗口中。

由图2.15可知,使用I2C调试器可非常方便地观察I2C总线上传输的数据,能非常容易地手动控制I2C总线发送的数据,为I2C总线的单片机系统提供了十分有效的仿真调试手段。

图2.15 I2C调试窗口观察单片机向AT24C02写入和读出的数据

3)SPI调试器

SPI调试器允许用户查看沿SPI总线发送和接收的数据。图2.16所示为SPI调试器的原理图符号。

图2.16 SPI调试器的原理图符号

SPI调试器共有5个接线端,分别介绍如下:

DIN:接收数据端。

DOUT:输出数据端。

SCK:时钟端。

SS:从机选择引脚,在从机模式下,此引脚必须激活,终端才能响应;在主模式下,此引脚在传输数据时激活。

TRIG:输入端,能把下一个存储序列放到SPI的输出序列中。

SPI调试器的窗口如图2.17所示,它与I2C调试窗口是相似的。

4)电压表电流表

Proteus VSM提供了4种电表,分别是DC Voltmeter(直流电压表)、DC Ammeter(直流电流表)、AC Voltmeter(交流电压表)和AC Ammeter(交流电流表),如图2.18所示。

可分别把4种电表放置到原理图编辑窗口中。

图2.17 SPI调试器的窗口

图2.18 4种电表的原理图符号

10. 虚拟设计仿真步骤

在Proteus开发环境下,一个单片机系统的设计与虚拟仿真应分为3个步骤:

(1)Proteus ISIS环境下的电路原理图设计;

(2)在Keil C51平台上进行源程序的输入、编译,并最终生成目标代码文件(*.hex文件);

(3)调试与仿真,在Proteus环境下将目标代码文件(*.hex文件)加载到单片机中(见图2.19),并对系统进行虚拟仿真。

图2.19 加载目标代码文件

加载目标代码时需特别注意,运行时钟频率以单片机属性设置中的时钟频率(Clock Frequency)为准。

需要注意的是,在Proteus中绘制电路原理图时,8051单片机最小系统所需的时钟振荡电路、复位电路/引脚与+5 V电源的连接均可省略,Proteus已经默认,不影响仿真效果。

完成上述所有操作后,只需要点击Proteus ISIS界面中的快捷命令按钮(见图2.2左下角)运行程序即可,如图2.20所示。

图2.20 Proteus的仿真快捷按钮

11. Proteus与Keil联调

通过前面的学习,我们知道单片机系统仿真步骤为:在Proteus下完成原理图的设计并保存为文件(设计文件名后缀为.DSN),再在Keil μVision下编写C51程序,经过调试、编译,最终生成“.hex”文件,并把“.hex”文件载入虚拟单片机中,然后进行软硬件联调。如果要修改程序,需再回到Keil μVision3下修改程序,再经过调试、编译,重新生成“.hex”文件,重复上述过程,直至系统正常运行为止。但是对于较为复杂的程序,如果没有达到预期效果,这时可能需要利用Proteus与Keil μVision进行联合调试。

联调前需要安装vudgi.exe文件,该文件可到Proteus的官方网站下载。vudgi.exe文件安装后,需在Proteus与μVision3中进行相应设置。

设置时,首先在Proteus中打开需要联调的程序文件,但不要运行,然后选中“调试”菜单中的“使用远程调试监控”选项,使得Keil μVision3能与Proteus进行通信。

完成上述设置后,在Keil μVision3中打开程序工程文件,然后单击菜单“Project”→“Options for Target”选项(或单击工具栏上“Options for Target”快捷按钮),打开如图2.21所示的工程对话框。在Debug选项卡中选定右边的“Use”及选项“Proteus VSM Simulator”。如果Proteus与Keil C安装在同一台计算机中,右边“Setting”中的Host与Port可保持默认值“127.0.0.1”与“8000”不变,如图2.22所示。如果跨计算机调试,则需要进行相应的修改。

完成上述设置后,在Keil μVision中全速运行程序时,Proteus中的单片机系统也会自动运行,出现的联调界面如图2.23所示。

图中左半部分为Keil μVision的调试界面,右半部分是Proteus ISIS的界面。如果希望观察运行过程中某些变量的值或者设备状态,需要在Keil μVision中恰当使用Step In(单步步 入)、Step Over(单步步过)、Step Out(步出)、Run To Cursor Line(运行到光标处)及Breakpoint(断点)进行跟踪,以观察图右面的虚拟硬件系统运行的情况。

总之,需要把Keil μVision中的各种调试手段,如单步、跳出、运行到当前行、设置断点等进行恰当的配合以完成单片机系统的软硬件联调。

需说明的是,联调时系统不支持需要调试的程序工程名字为中文,因此需将工程文件的中文文件名“流水灯.Uv2”改为英文文件名“led.Uv2”。

需要指出的是,Lab Center Electronics公司推出的Proteus8. x版本,自带免费的编译器,目前已有51、PIC、AVR系列单片机的汇编软件。

图2.21 工程选项对话框

图2.22 工程选项对话框

图2.23 联调界面

如果是8051汇编语言编写的程序,直接使用自带的编译器就很方便,且Proteus不需要像Keil那样还要新建工程、进行设置等,且用Proteus直接调试很方便,不用与Keil联调,特别是调试小程序很简单。

如采用C51语言编程,可在Proteus8.x版本中设定与外部的编译器相关联,即设置与Keil μVision的连接(例如使用Proteus8.2版本,需在计算机中拷入Keil μVision4),这样可直接在Proteus8.x下进行源程序的编辑和编译,此时系统自动生成名为Debug.hex的文件,并自动拷入到原理图的单片机中,点击“运行”按钮即可仿真运行,这相当于把图2.23的两个联调界面直接合为一体。

这就是Proteus8.x版本与Proteus7.x版本的最大区别。读者可尝试利用Keil μVision分别与Proteus8.x和Proteus7.x联调,体验Proteus8.x环境下的便捷之处。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈