proteus VSM 8.9 交互式仿真帮助

2. VSM

2.1 Interactive tutorial

2.1.1 介绍

本教程向您展示如何使用Proteus VSM和VSM Studio IDE与微控制器进行交互式仿真。重点将放在模拟器和IDE的实际使用上。本教程不涉及原理图相关内容;如果您不熟悉ISIS中的绘图,则应该花一些时间阅读ISIS参考手册中的1内容。

我们将使用的预绘制原理图,如下所示。
在这里插入图片描述
从VSM Studio IDE驱动仿真的基础开始,我们将介绍Proteus VSM软件中提供的各种调试和测量工具。

2.1.2 准备

要完成本教程,您需要:

  • Proteus软件版本8.0或更高版本的已安装副本。如果您没有专业副本,则可以从Labcenter网站免费下载该软件的演示副本。
  • 9.8版或更高版本的PIC16编译器的副本。可以从Proteus软件(VSM Studio IDE)中管理该编译器的下载和安装。我们将在下面的教程的“项目设置”部分中介绍此过程。
    即使您没有安装工具,仍然建议您通读本教程。大多数材料(以及所有调试技术)都是通用的,将对您自己的设计有用。

2.1.3 项目设置

我们需要做的第一件事是设置Proteus 8项目。由于我们使用的是虚拟开发板形式的预绘制原理图,因此该过程大大简化了:

  1. 从Proteus的主页中启动新的项目向导,然后选择 开发板选项。接下来,从底部的列表框中将微控制器系列更改为PIC16,最后更改为F1评估板(F1发行版)。单击完成以导入项目。
    在这里插入图片描述
  2. 导入项目后,您应该在应用程序中看到两个选项卡,具有F1 Release设计的原理图捕获模块和包含用于驱动硬件的标准Microchip源代码的VSM Studio IDE。
    在这里插入图片描述
    我们需要做的第一件事是编译源代码并产生一些固件,我们可以在仿真中对其进行测试。

2.1.3 编译器配置

Microchip官方已经不在支持此编译器下载,可以从这里下载:下载地址(https://download.csdn.net/download/acktomas/12260746)

Microchip源代码是使用高科技PIC16编译器编写的,因此我们需要安装此工具才能编译固件。切换到“ VSM Studio”选项卡,然后从“配置”菜单启动“编译器配置”对话框。
在这里插入图片描述
对话框中列出了所有支持的编译器,并指出是否已安装和配置。按下对话框底部的“全部检查”按钮,将扫描计算机中的编译器,如果找到,将对其进行配置以直接在Proteus中运行。

开源编译器可以直接从Labcenter的服务器下载并安装。专有编译器可以在供应商网站的下载页面上找到链接。我们需要的Hi-Tech编译器需要从Microchip网站下载,因此,如果您未安装此编译器,则必须:

  1. 单击编译器旁边的goto网站按钮。

在这里插入图片描述
3. 下载并安装编译器。

  1. 单击对话框底部的“全部检查”按钮,以配置编译器与Proteus一起使用
    在这里插入图片描述

您应该在运行此命令后注意到对话框对话框上的Hi-Tech编译器行被标记为已安装。IDE底部的输出窗口还将报告编译器检查的结果。

在这里插入图片描述

在这一阶段,我们已经完成了编译器,源代码和原理图。使用VSM Studio中“构建”菜单上的“构建项目”命令(或构建图标)来编译固件。

在这里插入图片描述

编译器的输出将写入IDE的底部窗格,并且在完成时应该会收到一条编译成功的消息。

在这里插入图片描述

下一步是运行模拟并在虚拟硬件上测试我们的编译代码。

VSM Studio自动配置常用的编译器选项,并正确构建您的程序以便于在Proteus中进行仿真。如果需要调整设置(例如,链接到外部库),则可以通过“project”菜单上的“project setting”来进行。

2.1.4 运行模拟

运行模拟:在Proteus左下方的动画控制面板上按下播放按钮。
在这里插入图片描述
您应该看到原理图选项卡位于前台,并且LCD面板显示默认时间。
在这里插入图片描述
F1评估板的Microchip演示代码具有三种模式,一种为时间模式,一种为温度模式,第三种模式为POT提供ADC读数。您可以通过按下原理图上的控制按钮来与仿真进行交互并在操作模式之间循环。

在这里插入图片描述

在温度模式下,您可以通过单击增量或减量按钮来调整MCP9800温度传感器上的温度。当前温度通过I2C总线传输到PIC处理器,然后格式化并显示在LCD上。

在这里插入图片描述

在电压模式下,您可以调整POT的值。电压读数由处理器转换,然后显示在LCD面板上。

在这里插入图片描述

PIC微控制器具有10位LCD,我们在0至3.3V范围内显示的值范围为0至1023。

完成后,请按动画控制面板上的“停止”按钮以停止模拟。
在这里插入图片描述

重要提示

当我们在Proteus中运行仿真时,发生了很多事情,而这可能不会立即显现出来。

首先,原理图上的微控制器以与物理PIC执行其编程固件完全相同的方式执行编译的固件文件。在成功编译后,通过将输出文件发送到原理图,使用VSM Studio IDE可以简单地自动执行“编程”步骤。

您会注意到,示意图上的几乎所有导线都在带有名称的端子中。对于那些不熟悉终端连接的人,值得解释一下它是如何工作的。在原理图上,任何两个具有相同名称的端子都被视为已连接(像一条“虚拟”电线)。例如,温度传感器侧面的RC3和RC4端子对应于连接到PIC处理器上I2C引脚的RC3和RC4端子。
在这里插入图片描述
我们倾向于布局这样的原理图,以避免意大利面条式布线,并将原理图分成易于识别的逻辑块。要了解的重要一点是,所有信号都在可见线上传播。这意味着您可以在可以看到电线的任何地方连接电压探头或测量仪器(实际上,我们将在本教程的后面部分进行介绍)。ISIS所做的只是在两个终端之间“跳跃”信号,就好像有一条电线连接一样。您可以在ISIS参考手册中阅读有关此类连接的更多信息。

最后,应用程序底部的状态栏将报告经过的模拟时间。模拟时间取决于计算机的能力,处理器的时钟速度和原理图的复杂性,特定的仿真可能不会实时运行,但始终会同步运行,并且在状态栏上报告执行时间。
在这里插入图片描述
例如,在一台特别慢的计算机上,时钟模式下的此仿真可能不会随着墙上时钟的推进而前进,但它将始终随着仿真时间的推进而前进。

2.1.5 编写固件

现在,我们已经通过仿真完成了工作流程,让我们为程序添加一些功能。我们知道,按下按钮可在时间显示,温​​度和POT显示之间切换,因此我们可以在此处轻松添加另一种操作模式。首先切换到VSM Studio IDE选项卡并打开main.c文件(双击项目树中的项目)。
在这里插入图片描述

在文件顶部附近,您会看到一些函数原型和操作模式的枚举。我们需要为测试模式添加一个新的函数原型,并向枚举添加一个相应的值。您可以添加以下内容:

在这里插入图片描述

接下来,我们需要找到按钮切换逻辑,以添加新的操作模式。最简单的方法是搜索其他模式之一。右键单击VSM Studio中的编辑窗口,从出现的上下文菜单中选择“查找”,然后输入MODE_POT作为搜索词。
在这里插入图片描述

几乎第一个匹配项是我们正在寻找的匹配项,即按钮释放的switch语句在显示模式的设置之间循环。我们需要做的就是添加新模式。
在这里插入图片描述

请注意,您还需要更改前一个case语句的显示模式。

在代码的下面,还有另一个switch语句,用于操作当前的显示模式。再次,我们需要在这里处理我们的情况并调用我们的函数。
在这里插入图片描述

最后一步是编写一个函数,该函数在进入操作模式时会执行某些操作。我们将其添加到文件的底部。

在这里插入图片描述

您可以在此处进行实验并添加任何您喜欢的东西,但是我们将做一些简单的事情,在显示屏上写入一个值,并在LED上添加一个小二进制计数器。
在这里插入图片描述

由于我们在这里使用PORTE来写入LED,因此我们还需要配置端口引脚。我们将在主要功能顶部的外围配置部分中设置ANSELE。
在这里插入图片描述

最后一步是构建项目并启动ISIS,如前所述。如果您犯了一个错误(如此处所述),您将在输出窗口中看到编译器错误。单击此错误将导航到问题。在我们的例子中,我们错过了行尾的分号。
在这里插入图片描述

某些错误(例如链接器错误)显然将无法导航。在这些情况下,您可能需要通过项目设置命令更改选项/包含。

这次运行仿真时,我们可以使用按钮在操作模式之间循环,直到达到自己的操作模式(时间->温度->测试)。此时,我们应该在显示屏上看到显示的数字,并在LED的

在这里插入图片描述

再次,按动画控制面板上的“停止”按钮以停止模拟。

该示例有些人为设计,但并非令人兴奋,但它确实显示了如何在虚拟硬件上快速编写和模拟代码。

2.1.6 主动弹出式窗口

到目前为止,我们一直在VSM Studio选项卡中编写代码,并在逻辑示意图捕获选项卡上进行仿真。这没什么问题,如果将其中一个标签页拖到另一个屏幕上,则可以在两台显示器上很好地工作。

但是,在调试时,您通常对步进代码和仅查看电路板上的一小部分进行验证更感兴趣。Proteus中的活动弹出系统旨在完全做到这一点-在仿真过程中将原理图的定义部分引入VSM Studio。

在我们的案例中,温度传感器是调试过程中我们可能希望看到并与之交互的一个很好的例子。要将其添加为活动弹出窗口:

  1. 切换到“ ISIS”选项卡,然后选择“活动弹出”图标。
    在这里插入图片描述

  2. 从左上方开始,并在其周围拖动一个框。

在这里插入图片描述

  1. 完成后,您应该在该区域周围看到一条蓝色虚线。

在这里插入图片描述

如果输入有误,可以右键单击虚线并删除。同样,如果定位错误,则可以右键单击虚线并拖动。

活动弹出框的其他可能候选对象是模式选择按钮,POT和显示器本身,因此我们可以重复上述过程,在这些项目周围拖动其他框。完成后,原理图应类似于以下内容。
在这里插入图片描述
由于我们已经指定了活动弹出窗口,因此假设我们将在VSM Studio中进行工作(调试)。如果您按播放按钮以运行模拟,现在应该会发现您已切换到VSM Studio选项卡,并且活动弹出窗口停靠在IDE的右侧。

在这里插入图片描述

当我们自由执行代码时,选项卡的源和变量区域将在此时显示模拟运行消息。我们将在本教程的下一部分中介绍调试。

活动弹出窗口很聪明,不仅因为它们将原理图的区域带到调试环境中,而且您可以与之交互。例如,如果您单击S1按钮以切换模式,则应该看到显示更改为I2C温度传感器上的温度,如果您随后调整了传感器上的温度,则显示应该反映出更改。

在这里插入图片描述

您可以切换回原理图选项卡,您将看到与活动弹出窗口完全相同的状态。当您停止模拟(从动画控制面板)时,活动的弹出窗口将消失,VSM Studio将从其“调试布局”切换为“设计布局”,您可以在其中再次编辑和编译源代码。

仅当仿真停止时,才能在原理图上创建或调整活动弹出窗口。但是,您可以在模拟运行时通过拖动来调整VSM Studio内部活动弹出窗口的大小。

现在,我们已经配置了活动弹出窗口,我们可以开始研究在第一次无法正常工作时如何调试问题。

2.1.7 基本调试

Proteus VSM的真正强大功能大部分来自于其调试功能。我们已经了解了如何在自由运行的模拟过程中编写代码和进行测试,现在我们将研究如何在模拟时间内逐步完成代码。

使用动画控制面板上的暂停按钮开始仿真

在这里插入图片描述
程序将切换到VSM Studio选项卡,活动弹出窗口将显示在右侧,主面板将报告“无源行消息”,并且程序变量列表将出现在屏幕底部。
在这里插入图片描述

在此阶段,仿真已“启动”,并且已找到稳定的工作点,但未执行任何指令,也未经过任何实时操作。

没有显示源代码,因为当前程序计数器值处没有源代码

您可以从窗口顶部的组合框中选择任何程序源文件,但我们将从包含原理程序控制循环的main.c文件开始。
在这里插入图片描述
举一个简单的例子,让我们在主事件循环中设置一个断点。设置/切换断点的最简单方法是双击要中断的代码行。断点指示器应出现在源代码窗口左侧相关代码行的旁边。如果您错误地设置了断点,则可以通过再次双击该行(或从右侧上下文菜单中)将其删除或将其关闭。

在这里插入图片描述

如果现在运行模拟(播放按钮),它将在自由运行模式下愉快地切换执行,直到释放模式切换按钮(S1),此时将按下按钮释放代码,并且模拟将暂停。通过单击活动弹出窗口中的按钮,您可以轻松地做到这一点。

在这里插入图片描述

达到断点后,我们可以通过常规命令单步执行代码,这些命令可以在源代码窗口的右上角或VSM Studio中的调试菜单上找到。另外,您可以使用F10和F11快捷键分别“跳越”和“进入”。

在这里插入图片描述

如果您确实需要详细检查行为,则甚至可以在汇编级别上逐步执行代码。右键单击源菜单,然后从出现的上下文菜单中选择“反汇编”,然后使用与以前相同的步骤命令。

在这里插入图片描述

右键单击并再次选择反汇编以返回到高级源代码

您可能会注意到,在单步调试期间,显示器的活动弹出窗口未显示完整的清晰输出。这是正确的,并且显示被多路复用的结果。

如果要浏览下一个按钮,只需按动动画控制面板上的播放按钮,然后单击活动弹出窗口上的按钮即可再次触发断点。

完成后,右键单击并选择清除所有断点,然后按动画控制面板上的“停止”按钮结束调试会话。

重要提示

当您在Proteus中遇到断点或单步调试时,重要的是要了解整个系统都处于时间控制之下。例如,这意味着在系统暂停时电容器不会放电或电机失去动量。当您执行命令时,将执行指令,这些指令的效果会在系统中传播,然后系统将再次暂停。在调试期间,您可以通过状态栏上的输出看到这种受控的时间提前量。

提供了许多其他调试窗口,本教程中未讨论。所有这些都可以从VSM Studio中的调试窗口启动,并将显示在IDE的底部。每当暂停模拟时,数据将显示在窗口上。监视窗口-一种特殊情况-在本教程的下一部分中将单独讨论。

2.1.7 监视窗口

监视窗口是一个调试窗口,可以在自由运行的模拟过程中提供实时数据,它还为我们提供了一种不同的方法来确定断点。首先,让我们使用监视窗口来监视来自POT的ADC转换。

使用Proteus底部的播放按钮开始仿真,然后从VSM Studio中的调试菜单启动监视窗口。您应该看到它在IDE底部显示为停靠的选项卡。

在这里插入图片描述

接下来,右键单击监视窗口,然后从上下文菜单中选择“按名称添加项”。我们要添加ADC寄存器ADRESH和ADRESL,您可以通过双击条目来完成。完成后退出对话框,您应该看到两个项目都出现在监视窗口显示中。

在这里插入图片描述

现在,我们需要使用活动的弹出窗口(或切换到“原理图”选项卡)切换到POT读取模式。单击控制按钮三下以循环模式,然后使用设备左侧的执行器按钮更改POT上的值。

在这里插入图片描述

如果为了更容易理解结果,则可以将项目的显示格式更改为二进制。您可以通过右键单击监视窗口中的每个项目并将显示格式更改为二进制来实现。
在这里插入图片描述

由于这是10位ADC,当POT上升到最大值时,我们应该看到该值的最大值为1023或0x03FF。

在这里插入图片描述

现在,假设我们需要在回退的路上赶上中点。我们知道中点值结果应该在0x1FF左右,因此我们可以在监视项上设置条件以触发断点。我们通过右键单击监视项并从上下文菜单中选择监视点条件来做到这一点。我们假设,当两个ADRESH都等于0x01且ADRESL小于或等于0xFF时,我们希望停止。这将是我们第一次在中点电压处从最大值向下击中该值时起作用。

在这里插入图片描述

请注意,您需要分别配置ADRESH和ADRESL。完成后,监视窗口的显示应如下所示。

在这里插入图片描述

设置好监视条件后,我们现在需要做的就是向下调整POT,直到满足条件时出现断点。和以前一样,您可以通过VSM Studio中的POT活动弹出窗口或切换到“原理图”选项卡来执行此操作。触发后,您应该看到监视项上的值为0x1FF,并且-如果需要的话-您可以在触发条件的确切位置开始单步执行代码。

在这里插入图片描述

当您想捕获溢出条件时,监视条件对于调试计时器代码之类的事情特别有用。

您可以通过以下方式禁用监视点表达式:右键单击监视项目,选择监视点条件,然后从出现的对话框中选择“关闭监视点”选项。

在继续讨论硬件断点之前,请先禁用监视点条件(如上所述)或完全删除监视项,然后按动画控制面板上的“停止”按钮以结束模拟。

2.1.8 硬件断点

到目前为止,我们已经研究了如何基于软件条件(观察点和断点)进入仿真。当发生硬件状况时,也可以使用硬件断点对象来检查代码。例如,如果我们想捕捉I2C总线的活动开始信号,我们可以在I2C线上设置硬件断点,如下所示。

切换到“原理图”选项卡,然后从左侧的模式选择器中选择电压探针图标。接下来,单击编辑窗口,将鼠标移到总线上的SDA线上,然后再次单击鼠标左键以将探针放到电线上。

在这里插入图片描述

现在,右键单击探针,然后从出现的上下文菜单中选择编辑属性。

在这里插入图片描述

选择数字断点,我们想在低电平有效时触发,因此输入0作为触发值。

在这里插入图片描述

单击确定,然后按播放以运行模拟。您应该发现仿真几乎会立即暂停,并且VSM Studio中的源窗口将显示我们刚刚执行了将SDA设置为低的命令。

在这里插入图片描述

该断点实际上发生在初始化例程中。如果我们要跳过此操作并仅在进入I2C模式时激活,则需要在断点上设置开始布防时间。为此,请停止仿真,切换至逻辑示意图模块,然后像以前一样进行编辑。将布防时间设置为1秒。

在这里插入图片描述

这次运行仿真时,直到按下模式选择按钮进入温度模式(在I2C总线上传输温度)后,断点才会触发。

在这里插入图片描述

您应该发现自己最终进入了源代码中的I2C例程之一。您可以使用前面各节中介绍的逐步和调试从此处遵循代码路径。完成后,再次停止仿真。

2.1.9 交互式测量

我们经常要检查设计上的信号和波形,Proteus提供了两种主要的方法。举例来说,假设我们需要检查来自MCP9800温度传感器的I2C流量。我们可以交互式地执行此操作,也可以通过更传统的基于图的方法来执行此操作。

我们需要做的第一件事是整理原理图并删除我们先前使用的调试项。您可以通过右键单击原理图上的探针并从上下文菜单中选择“删除”来删除电压探针。同样,我们可以右键单击活动弹出窗口中的对象边框并将其删除。

在这里插入图片描述

在原理图上定义了活动弹出窗口后,仿真开始时Proteus会切换到VSM Studio,因为假定您主要是调试源代码。由于我们现在正在分析信号,因此我们希望删除活动的弹出窗口,以便模拟从打开“原理图”选项卡开始。

下一步是放置并连接I2C调试器。选择仪器模式,单击该图标后,将在零件箱中显示可用的交互式测量工具的列表。在我们的案例中,选择的是I2C协议分析器。

在这里插入图片描述

单击零件箱中的I2C分析器将其选中,然后以通常的方式将其放在原理图上。为了便于接线,您需要将其放在温度传感器下方。

在这里插入图片描述

接下来,我们需要连接引脚。请注意,光标在电线的起点和终点都变为绿色。因此,接线过程是将鼠标置于起点(I2C调试器上的引脚)上方,直到光标变为绿色,然后单击鼠标左键以开始放置,将鼠标移至目标点(光标变为绿色),最后单击鼠标左键以终止放置。使用此技术将SCL和SDA线都连接到I2C总线。

在这里插入图片描述

我们已经连接了分析仪,我们可以开始仿真了。您应该立即看到I2C调试器还有一个额外的窗口,并且似乎有一些初始化/识别流量。要查看正常传输,我们需要按原理图上的按钮切换到温度模式显示。
在这里插入图片描述

由于代码一直在轮询,因此您应该从动画控制面板中暂停仿真,以便我们花一些时间来分析流量。
在这里插入图片描述

如果您在单个框架内工作,则假定您对等待执行的源代码感兴趣,因此在模拟暂停时,“ VSM Studio”选项卡将出现在前台。同时,分析仪将保持在顶部。如果要同时查看原理图和源代码,则可以使用“活动”弹出窗口,也可以将“ VSM Studio”选项卡拖动到一些可用空间以将其分开。

协议分析器中使用的语法是标准的,应该熟悉。您可以通过左侧的“ +”框扩展任何序列。外设(MCP9800)的标准地址为0x90,因此我们可以从读取请求中看到序列是开始(S),然后是读取请求0x91(读取请求,位0置1),然后是0x1B(数据)等等。上。可以预期,接收到的数据(0x1B)为27位十进制数,对应于当前在外围设备上显示的温度。

在这里插入图片描述

您可以通过运行仿真,更改MCP9800原理图零件上的温度,然后再次暂停以检查I2C调试器上的显示输出来进行试验。

在这里插入图片描述

请注意,在不断轮询文本数据到显示器的过程中,使用诸如此类的持续轮询固件会在性能方面产生相当大的开销。但是,在大多数情况下,您使用仪器进行测试或调试,此时,仿真速度仅次于解决问题的速度。与所有调试窗口一样,您可以在不使用调试器时将其关闭,然后从VSM Studio或ISIS中的“调试”菜单中将其重新打开。

进一步阅读:

  • Proteus VSM参考手册中提供了有关协议分析器以及其他仪器的更多信息。特别要注意的是,您可以将分析仪用作I2C主(或从)设备,也可以仅用作监视器。

  • 有关在原理图上进行拾取,放置和布线的更多信息,请参见从主页启动的ISIS教程文档。

2.1.10 基于图的测量

通过使用基于图的模拟,我们可以以不同的方式查看相同的流量。但是,有一些重要的差异会影响我们如何设置仿真,即:

  • 在基于图形的仿真期间,您无法与电路交互。
  • 基于图的模拟仅能运行指定的时间段。
  • 在这段时间结束并且模拟停止之前,结果是不可见的。

鉴于以上所述,让我们看一下如何使用数字图分析I2C流量。首先,通过右键单击交互式I2C调试器并从上下文菜单中选择“删除”来删除它。

在这里插入图片描述

接下来,通过使用鼠标右键在显示器和电线周围拖动标签框,为图形留出一些空间,以使它们全部突出显示。左键按下鼠标并将批次拖至原理图的右侧。

在这里插入图片描述

现在选择图形模式图标,然后从零件箱中选择数字图形。左键单击想要图表所在位置的左上方的鼠标,然后将鼠标向下和向右移动。再次左键单击以提交放置。

在这里插入图片描述

请注意,原理图上的图形不必特别大。当我们要分析仿真结果时,我们将在以后最大化它。

添加完图形后,我们现在需要告诉它要跟踪的导线。为此,我们将探针附加到导线上,然后将探针指定为图形上的迹线。选择电压探针图标,然后将探针放置在两条I2C线上。完全按照我们之前在硬件断点部分中所讨论的那样进行。

在这里插入图片描述

如果需要为探针留出空间,请右键单击导线末端的端子,右键单击并从上下文菜单中选择拖动对象,然后向左移动以留出探针空间。

在这里插入图片描述

如果需要靠近鼠标,可以使用鼠标中键或F6 / F7键在鼠标位置周围放大和缩小。F8键将返回到原理图的默认视图。

默认情况下,电压探针将选择端子名称。重命名它们以在我们的仿真环境中更有意义是很有用的。您可以通过右键单击探针,编辑其属性,然后将名称分别更改为SCL或SDA来执行此操作。
在这里插入图片描述

现在我们在导线上有探针,在原理图上有图形,我们需要将探针添加到图形中。有几种方法可以做到这一点,但最简单的方法可能只是将探针拖到图形上。为此,右键单击探针,选择拖动对象,将鼠标移到图形上,然后再次单击鼠标左键以拖放。对两个探针都执行此操作。

在这里插入图片描述

默认情况下,基于图的仿真将从仿真时间的零时开始运行到一秒钟。在这里,从一秒钟运行到两秒钟会更有意义,从而跳过了初始化流量。我们可以通过编辑图形(右键单击和编辑属性)并更改开始和停止时间来做到这一点。
在这里插入图片描述

左键单击原理图的空白区域将取消选择任何当前选定的对象。通常,当您退出编辑属性对话框时,此操作会完成,因为该对象仍会突出显示。

现在我们可以进行模拟,除了一个重大问题。如前所述,您无法在基于图形的仿真过程中与电路进行交互,但是我们需要切换模式以轮询温度传感器并触发I2C流量。由于无法按下按钮,我们需要向PIC注入等效信号,以使固件切换到温度模式。我们用发生器来做。选择发生器模式图标,然后从零件箱中选择脉冲发生器。将发生器放置在RD2端子旁边的按钮右侧-您可能需要先移动端子,以在发生器的电线上留出一些空间。

在这里插入图片描述

现在,以通常的方式编辑生成器(右键单击-编辑属性)。从数字发生器类型中选择单个脉冲,并将脉冲极性更改为负,以便脉冲信号表示按钮按下。由于我们是从1s到2s进行仿真,因此将开始时间设置为1.25s,并将脉冲宽度设置为大约50ms。

在这里插入图片描述

现在,我们可以运行模拟。与交互式仿真不同,现在使用了动画控制面板(我们在固定时间进行仿真,而不一定要从零时开始)。而是使用图形菜单上的“模拟图形”命令。然后,您应该看到如下所示的结果。

在这里插入图片描述

除了流量直到大约1.25s(由脉冲指定)才开始的事实之外,我们在这里看不到太多信息。右键单击图形,然后从上下文菜单中选择“最大化”以在新选项卡中启动程序。
在这里插入图片描述

当“图形”选项卡位于前台时,菜单和图标将更改以显示我们可以对图形执行的操作。特别是,请注意应用程序顶部的新图形工具栏
在这里插入图片描述

可以在此处找到缩放命令,其中最有用的可能是“缩放到区域”图标。单击此图标,然后在小区域中拖动以定位显示。如果重复此操作,您很快就可以放大单个I2C序列。
在这里插入图片描述

或者,您可以按住SHIFT键并用鼠标拖动一个框来放大框内的区域。

那些熟悉I2C协议的人可以根据我们先前在协议分析器上看到的排序,验证图中的原始数据。

最后,您可以使用以下图表进行测量:

  • 在图形窗口上单击鼠标左键将在图形上放置一个(绿色)光标。
  • 向左拖动鼠标可让您定位光标
  • 按住CTRL键并单击鼠标左键将放置一个(红色)光标。
  • 按住CTRL键的同时向左拖动鼠标,可以定位(红色)光标。
  • 每个光标的数据和它们之间的增量将显示在图形窗口底部的显示屏上。
    在这里插入图片描述

进一步阅读

  • ISIS教程文档中更详细地介绍了此处简要讨论的所有常规放置和编辑技术。

  • 本文档后面将提供有关图形的更多信息,有关变形器,探头和基于图形的仿真的完整讨论,请参见Proteus VSM参考手册。

2.1.11 诊断消息

Proteus中提供的另一个通常被忽略的工具是诊断消息传递。此界面使您可以要求系统提供特定外围设备中活动的纯文本报告。为此,我们将打开LCD面板的诊断消息。

切换到“原理图”选项卡,然后从“调试”菜单中启动配置诊断命令。

在这里插入图片描述

展开显示面板的条目,单击条目,然后将跟踪信息级别更改为完全跟踪。

在这里插入图片描述

现在扩展PIC16并向下滚动至LCD模块条目,再次将跟踪信息级别更改为“全跟踪”。

在这里插入图片描述

从动画控制面板启动交互式仿真,然后单击仿真顾问以查看诊断消息。这会将Proteus切换到VSM Studio选项卡,并且模拟顾问程序将在框架底部显示为停靠的窗口。

在这里插入图片描述

如果您暂停模拟,请注意LCD消息包含PC值,您可以单击这些值以在源代码中找到导致这种情况的指令。
在这里插入图片描述

仅在模拟暂停时才可以导航到源代码。

最后,停止仿真并以与启用它们相同的方式关闭诊断,只是将跟踪信息级别更改回仅警告。

诊断消息在出现问题的情况下特别有用,在这种情况下,您需要先收集信息,然后再决定在哪里寻找错误。它的确会严重影响性能(例如,在温度模式下与PIC MSSP外设和MCP9800一起尝试),因此仅在需要时才启用。如果您知道感兴趣的活动范围是何时,也可以选择仅在有限的时间段内登录。

在这里插入图片描述

版权声明:本文为CSDN博主「acktomas」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/acktomas/article/details/104969263

生成海报
点赞 0

acktomas

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

单片机:串口通信

RS-422A RS-422A输出驱动器为双端平衡驱动器。如果其中一条线为逻辑“1”状态,另一条线就为逻辑“0”,比采用单端不平衡驱动对电压的放大倍数大一倍。差分电路能从地线干扰中拾取有效信号,差分接收

单片机:EEPROM(IIC总线)

I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。 I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低&#xff

单片机:DS18B20温度传感器原理

DS18B20数字温度传感器接线方便,封装后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆