Proteus 软件的仿真调试方法

共有 3 种调试方法,分别是:

  1. 直接用扩展名为 HEX 的十六进制文件调试;
  2. 源代码级调试;
  3. Keil 与 Proteus 联合调试。

第一种方法比较简捷,不论是用汇编语言,还是用 C 语言,都要在 Keil 下,连接编译成扩展名为 HEX 的十六进制文件。之后把该 HEX 文件载入单片机,就可直接仿真运行。只要 Proteus 电路原理图正确,与之配套的程序也正确,它就能运行。其缺点是运行时看不到源程序。第二种方法是源代码级调试,分汇编语言方式和 C 语言方式。调试时都可以看到源代码,也可用全速运行、单步运行等方法执行程序。第三种方法是 Keil 与 Pro-teus 联合调试,在 Keil 中执行程序,在 Proteus 原理图中显示变化情况,两种软件各负其责,分工合作。以下逐一介绍这 3 种调试方法。

1 直接用扩展名为 HEX 的十六进制文件调试

这种直接装入 HEX 文件的方法,有全速运行方法,和单步运行方法。方法是:不单击开始仿真按钮,而是单击单步仿真按钮,系统会进入单步运行状态。

2 源代码级调试

1). 汇编语言方式源代码级调试

2).C51 语言方式源代码调试

在源代码级调试 C51 语言程序,需要先把 C51 语言编译生成 OMF51 格式的可执行文件。

OMF51 格式文件,英文是 “absolute object module format files”,意指绝对目标文件。人们常用的 HEX 十六进制文件没有包含足够的信息,不允许进行单步调试。而 OMF51 格式文件包含所有的指令和调试信息,允许实现全速、单步、设置断点、观察变量等调试功能。OMF51 格式是 Keil 所支持的。

1)在 Keil 中生成 OMF51 格式的文件。生成 OMF51 格式文件的过程是这样的:

​ ① 在 Keil 中打开工程项目文件。

​ ② 选中 “Target 1”,然后单击鼠标右键,在弹出的快捷菜单中选择 “Options for Target ‘Target 1’ ”。

​ ③ 在新打开的对话框中选择 “Output” 选项卡,并完成如图所示的设置。 

2)OMF51 格式文件的应用。

​ ①在原理图的单片机上双击鼠标左键,在弹出的 “编辑元件” 对话框内的 “Program File” 文本框中要添加刚才生成的 OMF51 格式的文件。

​ ②在原理图中,单击运行仿真按钮 [插图],系统会启动仿真,流水灯点亮,仿真开始后,单击暂停按钮,程序暂时停止运行,然后调出调试窗口。

​ ③在 C 语言的源代码窗口中,右上角的 6 个图标依次是 “全速”、“单步”、“进入函数”、“跳出函数”、“执行到光标处”、“设置 / 取消断点”。

3Keil 与 Proteus 联合调试

1)Keil C 与 Proteus 联合调试的准备工作

(1)安装 Keil 与 Proteus 软件.

(2)安装 Keil 与 Proteus 软件的链接文件 vdmagdi.exe。

(3)启动 Proteus,打开要仿真的工程文件,配置 Proteus 软件。单击菜单 “调试”,选中 “使用远程调试监控”。

(4)调出编辑 AT89C51 属性的对话框,将其程序文件设置为空。程序文件设置为空意味着 Proteus 原理图的控制权全交给 C51 程序了。至此,Proteus 软件的准备工作已完成。 

(5)在 Keil 中打开工程项目文件。

(6)选中 “Target 1”,然后单击鼠标右键,在弹出的快捷菜单中选择 “Options for Tar-get ‘Target 1’ ”。

(7)在新打开的对话框中选择 “Debug” 选项卡,并完成设置:这里需要改动的地方是,将 “Use” 单选按钮选中,将其后的内容选择为 “Proteus VSM Simulator”。单击图中的 “Settings” 按钮,它是 IP 地址设定按钮,出现另一对话框,单击 “OK” 按钮,又回到 Debug 对话框。再将 “Load Application atSta” 和 “Go till main” 两个复选框选中,单击 “确定” 按钮退出。

2)Keil C 与 Proteus 联合调试。

(1)双击 Proteus 文件,打开仿真电路原理图,在 “调试” 菜单中选中 “使用远程调试监控”。调出编辑 AT89C51 属性的对话框,将其程序文件设置为空。

(2)在 Keil 中打开工程项目文件。将工程全部重新编译,在程序没有错误的情况下,编译完成之后进入 Keil 调试系统,同时 Proteus 中的仿真功能也已启动,等待执行指令。

(3)在 Keil 调试系统初始启动调试界面的代码窗口为汇编、C51 和机器码的混合体,这对调试程序很不方便,需要调出源代码窗口。方法是:单击 “View”→“Dis-assembly Window”,就变成 C51 代码窗口了。


注意:一定要先在 Proteus 界面的 “调试” 菜单中选中 “使用远程调试监控”,不然在 Keil 中调试时会打开其他原理图文件。


(4)如果要全速运行,在清除所有断点的前提下,按 F5 功能键,程序会全速运行。

(5)如果要观察每步的运行情况,可以按 F11 和 F10 功能键,其中 F11 是单步运行键, F10 是跳出函数键。单步运行时,执行延时程序按 F10,执行其他指令按 F11,如果不这样,会陷进延时程序一时无法出来。

(6)还有个运行方式是 “运行到光标处”,先要把光标放到正执行程序后的某一行,然后单击 “运行到光标处” 图标,程序就会执行到该光标处停下来。

(7)在 Proteus 原理图仿真画面中,也可让寄存器窗口、特殊寄存器窗口和内部存储器窗口出现,即打开 “8051 CPU Registers U1”、“8051CPU SFR Memory U1” 和 “8051 CPU Internal(IDATA)MemoryU1”3 个窗口。

(8)要停止仿真时,选择 “Debug”→“Start /Restart DebugSession”,停止调试。

(9)要重新开始仿真,仍选择 “Debug”→“Start /Restart DebugSession”,又重新进入仿真调试状态。

你可能感兴趣的