1.7 Proteus的虚拟仿真调试工具
ISIS下的电路原理图设计以及C51源程序编辑、编译完成后,还需要利用Proteus提供的多种虚拟仿真工具对其进行调试,以检查设计是否正确。因此,虚拟仿真工具为单片机系统的电路设计、分析以及软硬件联调测试带来了极大的方便。
本节介绍Proteus的各种虚拟仿真调试工具,如虚拟信号源、虚拟仪器、图表仿真与硬件断点的设置。
1.7.1 虚拟信号源
Proteus ISIS提供了各种类型的虚拟激励信号源,并允许用户设置其参数。单击图1-2左侧工具箱中的图标,出现各种类型的激励信号源的名称列表及对应的符号,如图1-39所示。图1-39中选择的是正弦波信号源,在预览窗口中显示正弦波信号源符号。名称列表中各符号对应的激励信号源如表1-2所示。
图1-39 各种激励信号源及对应的符号
表1-2 各种激励信号源及对应的符号
下面介绍在单片机系统虚拟仿真中经常用到的几种信号源。
1. 直流信号源
直流信号源用于产生模拟直流电压或电流。
(1)直流信号源的选择与放置
① 在图1-39所示的激励源的名称列表中,单击DC,在预览窗口中出现直流信号发生器的符号,如图1-40所示。
图1-40 直流信号源符号
② 在编辑窗口双击,直流信号发生器被放置到原理图编辑窗口中。可使用镜像、翻转工具调整直流信号发生器在原理图中的位置。
(2)属性设置
① 在原理图编辑区中,双击直流信号源符号,出现图1-41所示的属性设置对话框。
图1-41 直流信号源属性设置对话框
② 在“模拟类型”栏中选择DC,如图1-41所示,即选择了直流电压源,直流电压源的电压值可在右上角设置。
③ 如果需要直流电流源,则选择图1-41中左下方的“电流源?”,在图1-42右侧自动出现电流值的标记Current(Amps),可根据需要填写电流值。
④ 单击“确定”按钮,完成属性设置。
图1-42 设置电流源的属性
2. 正弦波信号源
正弦波信号源是设计中经常用到的信号源之一。
(1)正弦波信号源的选择与放置
① 单击工具箱中的图标,出现所有信号源的名称列表(见图1-39),单击SINE,在预览窗口中出现正弦波信号源的符号。
② 在编辑窗口双击,正弦波信号发生器被放置到原理图编辑界面中。可使用镜像、翻转工具调整正弦波信号源在原理图中的位置。
(2)属性设置
① 双击原理图中的正弦波信号源符号,出现其属性设置对话框,如图1-43所示。属性设置对话框中主要选项的含义如下。
• Offset(Volts):正弦波的振荡中心电平。
• Amplitude(Volts):正弦波有3种幅值表示方式,其中“幅度”为振幅,即半波峰值电压;“峰值”是指峰值电压;“有效值”为有效值电压。以上3种表示方式任选一项即可。
• 时间:正弦波频率有3种表示方式,其中“频率(Hz)”单位为Hz,“周期(秒)”单位为s,选一项即可。
• 延时:选择正弦波的初始相位。其中延时(单位s)是指在时间轴的延时;相位(°)是指正弦波的初始相位。
图1-43 正弦波属性的设置
② 在“激励源名称”文本框中输入正弦波信号源的名称,如输入“正弦信号源”。如果要在电路中使用两个正弦波信号源,则分别输入两个正弦波信号源的名称A和B。两个正弦波信号源各参数设置如表1-3所示。
表1-3 两个正弦波信号源的参数设置
③ 单击“确定”按钮,设置完成。
④ 使用虚拟示波器(见1.7.2节)观察两个信号源产生的信号。具体操作如下。
单击工具箱中的图标,出现激励源名称列表,单击SINE,在预览窗口中出现正弦波信号源的符号。在原理图编辑窗口双击,将两个正弦波信号发生器放置到原理图编辑界面中。单击工具箱中的按钮,列出所有虚拟仪器名称,单击列表区中的OSCILLOSCOPE,在预览窗口中出现示波器的符号图标。在原理编辑窗口单击,出现示波器的拖动图标,将示波器拖动到合适的位置,再次单击,示波器就被放置到原理图编辑窗口中。将示波器与正弦波信号源连接,如图1-44所示。
图1-44 两个信号源与示波器的连接
单击仿真按钮开始仿真运行,出现示波器运行界面,示波器屏幕上显示的两个正弦信号源的波形如图1-45所示。
图1-45 示波器显示的两个正弦波信号波形
3. 单周期数字脉冲信号源
在单片机系统电路的虚拟仿真中,有时需要将单个脉冲作为激励信号。
(1)单周期数字脉冲信号源的选择与放置
① 单击工具箱中的图标,出现所有激励源的名称列表,单击DPULSE,在预览窗口中出现单数字脉冲信号源的符号,如图1-46所示。
图1-46 单周期数字脉冲源的符号
② 在编辑窗口双击,单周期数字脉冲信号源被放置到原理图编辑界面中。可使用镜像、翻转工具调整单周期数字脉冲信号源在原理图中的位置。
(2)属性设置
① 双击原理图中的单周期数字脉冲发生器符号,出现单周期数字脉冲源属性设置对话框,如图1-47所示。
图1-47 单周期数字脉冲属性设置对话框
主要设置的参数如下。
• 脉冲极性:正脉冲或负脉冲。
• 脉冲时间:设置脉冲开始时间、脉冲宽度(秒)和脉冲停止时间(秒)。
② 在“激励源名称”文本框中输入单周期数字脉冲发生器的名称“单脉冲源”。
③ 单击“确定”按钮,完成设置。
④ 采用图表仿真模式(见1.7.3小节)可观察单周期数字脉冲信号的产生,如图1-48所示。注意,如果采用示波器来观察该单周期数字脉冲信号,由于示波器只能观察周期信号,而单周期数字脉冲信号会瞬间消失,所以示波器也观察不到稳定的单周期数字脉冲信号。
图1-48 单周期正脉冲图表仿真
4. 数字时钟信号源
数字时钟信号源也是单片机系统虚拟仿真中经常用到的信号源。例如,制作一个频率计,需要有被测量的时钟脉冲信号源,这时可由数字时钟信号源产生时钟脉冲,用频率计来测量时钟脉冲的频率。
(1)数字时钟信号源的选择与放置
① 单击工具箱中的图标,出现图1-49所示的所有激励源的名称列表,单击DCLOCK,在预览窗口中出现数字时钟信号源的符号。
图1-49 激励源的名称列表以及
② 在编辑窗口双击,数字时钟信号源被放置到原理图编辑界面中。可使用镜像、翻转工具调整数字时钟信号源在原理图中的位置。
(2)属性设置
① 双击原理图中的数字时钟信号源符号,出现数字时钟信号源属性设置对话框,如图1-50所示。
图1-50 数字时钟信号源属性设置对话框数字时钟信号源的符号
② 在“激励源名称”文本框中输入自定义的数字时钟信号发生器的名称“数字脉冲源”,在“时间”项中把“频率”设为5Hz。
③ 单击“确定”按钮,完成设置。
④ 采用图表仿真模式(见1.7.3小节)观察数字脉冲信号的产生,如图1-51所示。由于频率设为5Hz,周期为200ms,图表的时间横轴的范围设为0~1s,所以可观察到5个脉冲。
图1-51 数字时钟信号源图表仿真结果
1.7.2 虚拟仪器
Proteus ISIS提供了多种虚拟仪器,单击工具箱中的按钮,可列出所有的虚拟仪器名称,如图1-52所示。
图1-52 虚拟仪器名称列表
1. 虚拟示波器
虚拟示波器是最常用的虚拟仪器之一。
(1)放置虚拟示波器
① 单击图1-52列表区中的OSCILLOSCOPE,在预览窗口中出现示波器的符号图标。
② 在编辑窗口单击,出现示波器的拖动图标,将示波器拖动到合适的位置,再次单击,示波器就被放置到原理图编辑窗口中。
(2)虚拟示波器的使用
① 示波器的4个接线端A、B、C、D可以分别接4路输入信号,该虚拟示波器能同时观看4路信号的波形。
② 按照图1-53连接。把200Hz、1V的正弦激励信号加到示波器的B通道。
图1-53 正弦信号与示波器的连接
③ 单击仿真按钮开始仿真,出现示波器运行界面,如图1-54所示。可以看到,左边的图形显示区有4条不同颜色的水平扫描线,其中B通道由于接有正弦信号源,已经显示出正弦波形。
图1-54 仿真运行后的示波器界面
示波器的操作区分为6个部分,如图1-55所示。
图1-55 示波器的操作区
• Channel A:A通道。
• Channel B:B通道。
• Channel C:C通道。
• Channel D:D通道。
• Trigger:触发区。
• Horizontal:水平区。
下面对操作区进行说明。
① 4个通道区:4个区的操作功能都一样。主要有两个旋钮,Position滚轮旋钮用来调整波形的垂直位移;下面的旋钮用来调整波形的Y轴增益,白色区域的刻度表示图形区每格对应的电压值。外旋钮是粗调,内旋钮是微调。在图形区读取波形的电压值时,会把内旋钮顺时针调到最右端。
② 触发区:该区中的Level滚轮旋钮用来调节水平坐标,水平坐标只在调节时才显示。Auto按钮一般为红色选中状态。Cursors光标按钮选中后变为红色,可以在图标区标注横坐标和纵坐标,从而读取波形的电压、时间值及周期,如图1-56所示。单击鼠标右键,在快捷菜单中选择清除所有的标注坐标、打印及颜色设置。
图1-56 触发区Cursors按钮的使用
③ 水平区:Position用来调整波形的左右位移,下面的旋钮调整扫描频率。读周期时,应把内环的微调旋钮顺时针旋转到底。
2. 虚拟终端
Proteus VSM提供的虚拟终端的原理图符号如图1-57所示。虚拟终端相当于键盘和屏幕的双重功能。
图1-57 虚拟终端的原理图符号
例如,在图1-58所示的单片机与上位机(PC)之间串行通信时,直接由虚拟终端VT1、VT2显示出经RS232接口模型与单片机之间异步发送或接收数据的情况。VT1显示的数据表示单片机经串口发给PC的数据,VT2显示的数据表示PC经RS232接口模型接收到的数据,从而省去了PC的模型。虚拟终端在运行仿真时会弹出一个仿真界面,当PC向单片机发送数据时,可以和虚拟键盘关联,用户可从虚拟键盘经虚拟终端输入数据;当PC接收到单片机发送来的数据后,虚拟终端相当于一个显示屏,会显示相应信息。
图1-58所示的虚拟终端共有4个接线端,其中RXD为数据接收端,TXD为数据发送端,RTS为请求发送信号,CTS为清除传送,是对RTS的响应信号。
图1-58 单片机与PC之间串行通信的虚拟终端
在使用虚拟终端时,首先要设置其属性参数。双击元件,出现如图1-59所示的虚拟终端属性设置对话框。
图1-59 虚拟终端属性设置对话框
需要设置的参数主要有下面几个。
• Baud Rate:波特率,范围为300~57 600B/s。
• Data Bits:传输的数据位数,为7位或8位。
• Parity:奇偶校验位,包括奇校验、偶校验和无校验。
• Stop Bits:停止位,具有0,1或2位停止位。
• Send XON/XOFF:第9位发送允许/禁止。
选择合适参数后,单击“确定”按钮,关闭对话框。运行仿真,弹出图1-58所示的虚拟终端VT1和VT2的仿真界面。从仿真界面可以看到串口发送与接收的数据。
3. I2C调试器
I2C总线是Philips公司推出的芯片间的串行传输总线。只需要两根线(即串行时钟线SCL和串行数据线SDA)就能实现总线上各元器件的连接与全双工同步数据传送。芯片间接口简单,非常容易实现单片机应用系统的扩展。
I2C总线采用元器件地址的硬件设置方法,避免了通过软件寻址元器件片选线的方法,使硬件系统的扩展简单灵活。按照I2C总线规范,主机只要在程序中装入这些标准处理模块,根据数据操作要求完成I2C总线的初始化,启动I2C总线,就能自动完成规定的数据传送操作。由于I2C总线接口集成在芯片内,用户无需设计接口,只需将芯片直接挂在I2C总线上。如果从系统中直接去除某一芯片或添加某一芯片,对总线上其他芯片并没有影响,从而使系统组建与重构的时间大为缩短。
(1)I2C调试器
图1-52中的虚拟仪器名称列表中的I2C DEBUGGER就是I2C调试器,允许用户监测I2C接口总线,可以查看I2C总线发送的数据,也可作为从器件向I2C总线发送数据。
(2)I2C调试器的使用
I2C调试器的原理图符号如图1-60所示。
图1-60 I2C调试器的原理图符号
I2C调试器有3个接线端。
• SDA:双向数据线。
• SCL:时钟线,双向。
• TRIG:触发输入,能使存储序列被连续地放置到输出队列中。
双击I2C调试器符号,打开属性设置对话框,如图1-61所示。需要设置的主要参数如下。
图1-61 I2C调试器属性设置对话框
• Address byte 1:地址字节1,如果使用此调试器仿真一个从器件,则用于指定从器件的第1个地址字节。
• Address byte 2:地址字节2,如果使用此调试器仿真一个从器件,并期望使用10位地址,则用于指定从器件的第2个地址字节。
(3)I2C调试器的应用
下面通过例子说明I2C调试器的应用。
如图1-62所示,单片机通过控制I2C总线读写带有I2C接口的存储器芯片AT24C02,可用I2C调试器观察I2C总线数据传送的过程。
图1-62 单片机读写带有I2C接口的存储器AT24C02的电路原理图
启动仿真,用鼠标右键单击I2C调试器,出现I2C调试窗口,如图1-63所示。该调试窗口分为4部分,即数据监测窗口、队列缓冲区、预传输队列和队列容器。
图1-63 I2C调试窗口
先后单击图1-62中的KEY1和KEY2按钮开关,即单片机向AT24C02写入和读出数据。此时在I2C调试窗口中的数据监测窗口出现写入和读出的数据,第1行为单片机通过I2C总线向AT24C02写入的数据,第2行为单片机通过I2C总线从AT24C02读出的数据,如图1-64所示。单击其中的“+”符号,还能把I2C总线传送数据的细节展现出来。I2C总线传送数据时,采用了特别的序列语句,出现在数据监测窗口中。此语句用于指定序列的启动和确认,下面是特别序列字符的含义。
S:启动序列。
Sr:重新启动序列。
P:停止序列。
N:接收(未确认)。
A:接收(确认)。
图1-64 I2C调试窗口及单片机向AT24C02写入和读出的数据
通过这些特别序列字符的含义,并根据I2C总线数据帧的格式,容易看出数据监测窗口(见图1-64)中的两行序列语句的含义。
用户也可使用I2C调试窗口来发送数据。在窗口右下方的“队列容器”中输入需要传送的数据。单击Queue按钮,输入的数据将被放入队列缓冲区(Queue Sequences)中,单击仿真运行按钮,数据发送出去。也可以单击Add按钮把数据暂时放到预传输队列(Predefined Sequences)窗口中备用,需要时,在预传输队列窗口中选中要传输的数据,单击Queue按钮把要传输的数据加到队列缓冲区中。数据发送完后,队列缓冲区清空,在数据监测窗口显示发送的信息。
由上述可见,使用I2C调试器可以非常方便地观察I2C总线上传输的数据,非常容易地手动控制I2C总线发送的数据,为I2C总线的单片机系统提供了十分有效的虚拟调试手段。
4. SPI调试器
串行外设接口(Serial Peripheral Interface,SPI)总线是Motorola公司提出的一种同步串行外设接口,允许单片机与各种外围设备以同步串行通信方式交换信息。
图1-52中的SPI DEBUGGER为SPI调试器。SPI调试器允许用户查看沿SPI总线发送和接收的数据。
图1-65为SPI调试器的原理图符号。
图1-65 SPI调试器的原理图符号
SPI调试器共有5个接线端,分别介绍如下。
• DIN:接收数据端。
• DOUT:输出数据端。
• SCK:时钟端。
• :从模式选择端,从模式时,此端必须为低电平才能使终端响应。只有工作在主模式下,而且数据正在传输时,此端才为低电平。
• TRIG:输入端,能把下一个存储序列放到SPI的输出序列中。
双击SPI的原理图符号,可以打开它的属性设置对话框,如图1-66所示。对话框主要参数如下。
图1-66 SPI调试器属性设置对话框
• SPI Mode:有3种工作模式可选,Monitor为监控模式,Master为主模式,Slave为从模式。
• Master clock frequency in Hz:主模式的时钟频率(Hz)。
• SCK Idle state is:SCK空闲状态为高或低,选择一个。
• Sampling edge:采样的边沿,指定DIN引脚采样的边沿,选择SCK从空闲到激活状态,或从激活到空闲状态。
• Bit order:位顺序,指定传输数据的位顺序,可先传送最高位MSB,也可先传送最低位LSB。
SPI调试器的窗口如图1-67所示,它与I2C调试窗口相似。
图1-67 SPI调试器的窗口
(1)使用SPI调试器接收数据
① 将SCK和DIN引脚连接到电路的相应端。
② 将光标放置在SPI调试器上,双击SPI的原理图符号,打开属性设置对话框,设置SPI为从模式,时钟频率与外时钟一致。
③ 运行仿真,弹出SPI的仿真调试窗口。
④ 接收的数据将显示在数据监测窗口中。
(2)使用SPI调试器发送数据
① 将SCK和DIN引脚连接到电路的相应端。
② 将光标放置在SPI调试器上,双击SPI的原理图符号,打开属性设置对话框,把SPI调试器设置为主模式。
③ 单击仿真按钮,弹出SPI的仿真调试窗口。
④ 单击暂停仿真按钮,在队列容器中输入需要传输的数据。单击Queue按钮,输入的数据将被放入数据传输队列Buffered Sequences中,再次单击仿真运行按钮,数据发送出去。也可以单击Add按钮把要发送的数据暂时放到预传输队列中备用,需要时加到传输队列中。
⑤ 数据发送完后,数据传输队列Buffered Sequences清空,数据监测窗口显示发送的信息。
5. 计数器/定时器
单击图1-52所示列表中的COUNTER TIMER项,即选择了计数器/定时器,计数器/定时器的原理符号及测试电路连线如图1-68所示。CLK为外加的计数脉冲输入。
图1-68 计数器/定时器电路
该虚拟仪器有3个输入端。
• CLK:在计数和测频时,为计数信号的输入端。
• CE:计数使能端(Counter Enable),可通过计数器/定时器的属性设置对话框设为高电平或低电平有效,当CE无效时,计数暂停,保持目前的计数值不变,一旦CE有效,计数继续进行。
• RST:复位端,可设为上跳沿(Low-High)有效或下跳沿(High-Low)有效。当有效跳沿到来时,计时或计数复位到0,然后立即从0开始计时或计数。
用鼠标右键单击计数器/定时器符号,选择“编辑属性”,出现计数器/定时器的属性设置对话框,如图1-69所示。
图1-69 计数器/定时器的属性设置对话框
计数器/定时器有4种工作方式,可通过属性设置对话框中的Operating Mode下拉列表框选择,如图1-70所示。
图1-70 设置计数器/定时器的工作方式
Operating Mode下拉列表框(见图1-70)包含以下选项。
• Default:缺省工作方式,即计数方式。
• Time(secs):计时方式,相当于一个秒表,最多计100s,精确到1µs。CLK端无需外加输入信号,内部自动计时。由CE和RST端控制暂停或重新从零开始计时。
• Time(hms):计时方式,相当于一个具有时、分、秒的时钟,最多计10h,精确到1ms。CLK端无需外加输入信号,内部自动计时。由CE和RST端控制暂停或重新从零开始计时。
• Frequency:测频方式,在RST没有复位以及CE有效的情况下,能稳定显示CLK端外加的数字脉冲信号的频率。
• Count:计数方式,对外加时钟脉冲信号CLK进行计数,图1-68所示的计数显示,最多8位计数,即99999999。
下面通过两个具体的例子介绍计数器/定时器的应用。
【例1-1】按照图1-71设计,外部时钟CLK不接。双击计数器/定时器符号,设置其属性,如图1-70所示。设操作模式为Time(hms),即定时器(计时)方式;计时使能端CE设为High,即高电平有效,开关SW1合上为低电平时计时暂停。复位端设为Low-High,即上跳沿有效。
运行仿真,可显示图1-71所示的定时器(计时)方式,合图1-71中的开关SW1,则计时停止,打开开关SW1则继续计时;合上开关SW2再打开,计时器清零,打开开关SW1后,从零重新计时。
图1-71 计时模式的电路仿真
【例1-2】把计数器/定时器的属性按图1-70修改,设操作方式为Frequency,即测频方式,其他不变,按照图1-68所示的方式连接,设外接数字时钟的频率为100Hz,图中两个开关SW1、SW2位于打开状态,运行仿真,出现图1-72所示的测频结果。操作两个开关可以看到使能和清零的效果。
图1-72 测频时的电路仿真
6. 电压表和电流表
Proteus VSM提供了4种电表,如图1-73所示,分别是DC Voltmeter(直流电压表)、DC Ammeter(直流电流表)、AC Voltmeter(交流电压表)和AC Ammeter(交流电流表)。
(1)4种电表的符号
在元件列表(见图1-52)中,把上述4种电表分别放置到原理图编辑窗口中,如图1-73所示。
图1-73 4种电表的原理图符号
(2)属性设置
双击任一电表的原理图符号,出现其属性设置对话框,图1-74为直流电流表的属性设置对话框。
图1-74 直流电流表的属性设置对话框
在“元件参考”文本框中输入该直流电流表的名称,元件值不填。在显示范围Display Range下拉列表中有4个选项,用来设置该直流电流表是安培表(Amps)、毫安表(Milliamps)还是微安表(Microamps),默认是安培表,然后单击“确定”按钮即完成设置。
其他3种表的属性设置与此类似。
(3)电表的使用
4个电表的使用和实际的交、直流电表一样,电压表并联在被测电压两端,电流表串联在电路中,要注意方向。运行仿真时,直流电表出现负值,说明电表的极性接反了。两个交流电表显示的是有效值。
1.7.3 图表仿真
Proteus VSM提供交互式动态仿真和静态图表仿真功能,如果采用动态仿真,这些虚拟仪器的仿真结果和状态随着仿真结束也就消失了,不能满足打印及长时间的分析要求。而静态图表仿真功能随着电路参数的修改,电路中的各点波形将重新生成,并以图表的形式留在电路图中,供以后分析和打印。本节介绍Proteus ISIS的图表仿真功能。
图表仿真能把电路中某点对地的电压或某条支路的电流与时间关系的波形自动绘制出来,且能保持记忆。例如,观察单脉冲的产生,如果采用虚拟示波器观察,在单脉冲过后,就观察不到单脉冲波形。如果采用图表仿真,就可把单脉冲波形记忆下来,显示在图表上。下面以图1-48的单周期正脉冲图表仿真为例,介绍如何进行图表仿真。
图表仿真的具体步骤如下。
1. 选择观测点
首先把单周期脉冲源与图表放置在电路图中,单周期脉冲源的输出就是图表仿真的观测点。具体操作如下。
(1)放置单周期脉冲源。单击左侧工具箱中的图标,从列表中选择DPULSE,在原理图编辑窗口双击,将单周期脉冲源放置在原理图编辑窗口中。双击单周期脉冲源符号,设置属性。
(2)放置图表。单击左侧工具箱中的图标,从列表中选择模拟图表ANALOGUE,如图1-75所示。在原理图编辑窗口双击,按住鼠标左键拖出一个方框,将模拟图表放置在编辑窗口中,如图1-76所示。
图1-75 选择模拟图表
图1-76 原理图编辑窗口中放置单周期脉冲源与模拟图表
需要说明的是,在图1-75的列表中可选择各种类型图表,如模拟图表、数字图表、混合图表等。如要观察数字信号,可选用数字图表。如果同一图表中,观察的信号既有模拟信号,又有数字信号,应选择MIXED,即混合图表。
如果要观测电路某点的图表仿真形式,就应当在电路的某观测点放置电压探针。
2. 编辑图表与添加图线
用鼠标右键单击图1-76中的图表,在弹出的快捷菜单中选择“编辑图表”项如图1-77所示,出现“编辑瞬态图表”对话框,如图1-78所示。
图1-77 选择“编辑图表”
图1-78 “编辑瞬态图表”对话框
在“图表标题”文本框中输入图表名称ANALOGUE ANALYSIS,此外还需要为时间轴(X轴)设置观测波形的起始时间与结束时间,设置左、右坐标轴(即X轴与Y轴)的名称以及Y轴的尺度。
“编辑瞬态图表”对话框各参数设置完成后,单击图1-77中的“添加图线”项,出现图1-79所示的对话框。该对话框用于建立观测点与图表的关联,即把观测点处的波形显示在图表上,最多可设置4个观测点(可设4个探针)。
图1-79 添加图线对话框
本例只有一个观测点,即单脉冲源的输出,因此在“探针P1”下拉列表中选择“单脉冲源”即可。如果有4个观测点,则需要在电路中分别设置探针,并分别给探针起名,然后把4个探针的名称添加到相应的栏目中,这样就可以把4个探针处的波形同时显示在图表上。利用“表达式”文本框还可以观察几个观测点叠加后的波形,例如想看P1波形和P3波形叠加后的波形,在“表达式”文本框中输入P1+P3,就可将P1波形和P3波形叠加后的波形显示在图表中。该对话框中还有其他参数,如“轨迹类型”,有4个类型选项,由于本例是要显示单脉冲源的输出波形,所以属于“模拟”类型。此外,还有“坐标轴”的位置选项。
3. 图表仿真
上述工作完成后,就可进行图表仿真了。用鼠标右键单击图表,出现图1-77所示的快捷菜单。由于编辑图表与添加图线工作已完成,快捷菜单中的“仿真图表”项不再是不可操作的虚项,已变为黑色的可操作的命令,单击该命令,可以进行图表仿真,使仿真波形显示在图表上,如图1-48所示。
本例仅对单脉冲源的输出波形进行图表仿真,如果观察电路中不超过4个观测点的波形,只需要先在观察点处设置探针,然后再“编辑图表”与“添加图线”,最后单击图1-77所示菜单中的“仿真图表”项,即可进行图表仿真。
1.7.4 硬件断点的设置
许多元器件都具有当一特定电路情形发生变化时触发仿真延缓的功能。与单步仿真结合使用时,这一功能非常有用,因为电路只有当某一特定情形出现时,才进行正常仿真,然后使用单步,就可以看到电路在下一步将会发生什么动作。
利用硬件断点可以在匹配硬件断点的条件下暂停仿真,该功能在软件控制程序运行,需要分析程序或电路的故障时,非常有用。下面通过一个实例,了解硬件断点的设置方法。
【例1-3】假设流水灯在运行时,当P2.5控制的灯D6点亮以后,流水点亮的工作不正常,要求在P2.5控制的灯亮以后设置硬件断点,然后单步执行,查找故障。这里设置硬件断点的条件是P2.5=0。断点设置步骤如下。
(1)在欲触发断点的导线(总线)上放置电压探针,本例是在P2.5线上放置电压探针,如图1-80所示。
图1-80 放置电压探针
(2)在探针处单击鼠标右键,出现“编辑电压探针”对话框,如图1-81所示。
(3)在对话框(见图1-81)的“实时断点”栏根据断点的性质,选择“数字的”或者“模拟的”并指定触发值,本例选择“数字的”。对于数字网点和单导线,“触发值”选定1或0对应的是逻辑高或逻辑低;对于模拟网点,将会是一个具体的电压值或电流值。设定“开始时间”作为起控时间(Arm),使断点在指定的起控时间开始后有效。
图1-81 “编辑电压探针”对话框
(4)单击“确定”按钮退出对话框。
设置完成后的电路原理图如图1-82所示。
图1-82 电压探针设置完成后的电路原理图
仿真运行程序,当流水灯D6点亮时,即P2.5=0,满足了设定的硬件断点条件,使程序停止运行,如图1-83所示。此时可在此硬件断点处,利用单步执行等手段来检查系统的故障。
图1-83 运行到P2.5控制的D6点亮的硬件断点处停下
本例中设置的是数字断点,当P2.5=0时,实时数字断点触发器RTDBREAK检测到P2.5脚的二进制数等于设定值时,触发断点。对于模拟的断点,实时断点发生器有实时电压、电流断点触发器RTVBREAK和RTI-BREAK:当触发器引脚上的电压或流经的电流超过设定的值时,将触发断点,此时为上升沿触发。
此外还有实时电压、电流监视器RTVMON和RTI-MON,即当输入电压或当流经的电流不在设定范围内时,可触发断点、警告或错误。因此可将RTVMON和RTI-MON用于创建仿真模型,当模型中的电压或电流超过设定的工作极限时警告用户。限于篇幅,读者可查阅相关资料。