找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2578|回复: 0
打印 上一主题 下一主题
收起左侧

Proteus V8的特殊调试与诊断功能的开发 专业综合实践课程论文

[复制链接]
跳转到指定楼层
楼主
ID:334045 发表于 2018-5-22 15:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
专业综合实践课程(论文)
设计题目:Proteus V8 的特殊调试与诊断功能的开发

摘要—本文主要以 Proteus8.0 版本的功能及使用为基础,主要介绍工程的创建、编译 器的配置、基本调试等一些基本问题,并探讨 Proteus8.0 的一些新特点新功能,最后与 Proteus7.0 做出对比得出结论。

1.简介
Proteus 软件是英国 Lab Center Electronics 公司出版的 EDA 工具软件(该软件中国 总代理为广州风标电子技术有限公司)。它不仅具有其它 EDA 工具软件的仿真功能,还能仿 真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广 刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工 作者的青睐。
同时,Proteus 还是一个巨大的教学资源,可以用于模拟电路与数字电路的教学实验、 单片机与嵌入式系统的教学实验、微控制器系统的综合实验、创新实验与毕业设计等。 Proteus 可以与广大学生相结合,打造成一个口袋实验室。

在 Proteus 家族里,Proteus8.0 是目前较新的版本(最新的是 8.1 版),Proteus8.0 版 本的出现具有重要的意义,它也与其他版本有着很明显的不同,再此进行详细介绍 Proteus8.0 版本的使用过程。

2.使用过程

2.1 创建新工程

假定此时已安装了 Proteus8.0 版本。

选择并点开 Proteus 8 Professional,首先需要新建一个工程,由于本教程是与 PCB 绘 制教程相关联的,所以此时的工程是一个带有原理图、PCB 和源代码编译部分的工程。

点击 File,如图,选择 New Project,将出现新建工程向导部 分,在此可以设置文件名(Name)和保存路径(Path)




点击 Next,在下一页的顶部选项卡中,选择“从选中的模板中创建原理图”(Create a

Schematic from the selected template),在此可选择默认(DFAULT)。如果不需要绘制 原理图,可直接选择 Do not create a schematic。





继续点击 Next,选择“从选择的模板中创建 PCB 设计”(Create a PCB layout from the
selected template),在此可继续选择默认(DFAULT)。如果不需要进行 PCB 设计,可直 接选择 Do not create a PCB layout。


由于本教程需要仿真,所以继续点击 Next,在仿真页面选择 Create Firmware Project, 并设置 Family(系列)-8051,Contoller(控制器)-AT89C51,Compiler(编译器)-ASEM-51, 也就是在此设计外部代码编译器。如果不需要进行仿真,则可直接选择 No Firmware Project 即可。


点击 Next,新工程便创建完毕。此时的新工程包含原理图设计部分、PCB 绘制部分和源 代码部分。

2.2 在 Proteus 中进行汇编代码的调试

Proteus8.0 版本自身支持汇编语言,故先以汇编语言为例。 由于前面已经设置过外部代码编译器,所以此时工程包含 Source Code(源代码),如

果前面没设置或者不小心删除后,也可以在此新建,方法为点击 Source



选择 Create Project,再次设置 Family(系列)-8051,Contoller(控制器)-AT89C51, Compiler(编译器)-ASEM-51 即可。

Proteus8.0 或以上版本自带源代码编辑、编译器,所以不再需要外部文本编辑器。 具体操作界面如图所示,在指定位置(Write your code here)进行编码。




此时,编译器、原理图、源代码都已准备好,点击 Build,选择 Build

下的 Build Project 或者 Rebuild Project 编译固件。 如果代码错误,系统会自动提示哪行代码出现错误,比如下图:



系统在下方 IDE 的底部面板上显示错误提示,即 main.asm 的汇编程序第 41 行出现错误, 错误为“illegal statement syntax”,鼠标直接点击这句错误提示,系统将自动跳转到出 错的代码处,这对于查错改错十分方便

如果编译成功,系统不显示错误。其编译的输出也显示在下方 IDE 的底部面板上,最终 编译成功后,能得到一个编译成功的信号。


系统自动生成名为 Debug.hex 的文件,并自动拷入到前面的原理图中,点击按钮即 可仿真运行。这也是 Proteus8.0 版本与以往版本的不同之处,该版本不再需要用 Keil 编程后 生成.Hex 文件再手动拷入到原理图中,一切都是自动完成的,节约了很多时间。


同时,Proteus 8.0 或以上版本支持 C51 语言的编译和调试,这需要电脑本身已经安装 Keil 或者 IAR 等可以编译 C51 语言的软件。Proteus 自带汇编语言的编译器,如果想编译 C51,则需要找到电脑中安装的编译环境,也可以到网上 Download,具体如图:





点击 Config              ,在下拉菜单中选择 Compilers Configuration,自动
弹出如下界面:


这个对话列出了所有支持的编译器,并指示是否被安装和配置。按下对话框底部的检查 全部按钮(Check all),Proteus 将扫描你的计算机,检查安装好的编译器。如果找到 Proteus 支持的编译器,Proteus 将自动进行配置并在 Proteus 中调用这些编译器编译源代码。

其余的编译器,Proteus 自动给出下载(Download)或者下载链接(Goto Website),读 者可根据自身要求选择下载。值得注意的是,其中有些编译器的下载是需要收费的。
编译成功后,如果想观察代码的单步运行,则需要进行如下操作:

首先要确定 Proteus 没有运行仿真,处于停止状态。通过“仿真控制面板”暂停按钮启 动仿真或暂停。


启动仿真后,源程序页面自动变为下图格式:





现在说明如何设置断点,对于上图,要在 0111 处设置断点,只需在需要设置断点的代码 处双击鼠标左键即可,断点指示器(一个小红点)将出现在代码的左侧;如果误设了断点, 只需在这行再次双击(或从代码窗口中点击鼠标右键选择取消)即可取消,效果如下图:


如果现在点击运行程序,程序执行到断点代码处将自动停止。 到达断点后,可以通过源代码窗口右上角或 VSM Studio 调试菜单中的常用命令单步执行

代码。另外可以使用快捷键 F10 和 F11 分别进行单步跳过调试和单步进入函数内部调试。
如图:



此时,还可以观看该代码处的寄存器参数等,具体设置为:点击 Debug,在下拉菜单中 选择所需要观测的参数。可以观看 8051 CPU Registers、8051 CPUSFR Memory、8051 CPU
Source code 等等。


其中寄存器的状态如下(8051 CPU Registers):






2.3 在 Proteus 中进行 C 代码的调试

如果用 C51 编程,则代码的调试与汇编语言代码的调试十分相似,具体如下: 首先,由于本人电脑没有安装有关 C51 编译的软件,故用 Proteus8.0 版本本身自带的一

个例子为例。打开 Proteus8.0 之后,点击 File,选择 New Project,这时弹出如下对话框
如下图,选择 From Development Board(从开发板),并选择 PIC16 系列下的 F1 Release
开发板,点击 Finish,调用完毕。




此时的原理图如下图:






源程序如下:




当 Proteus 没有进行仿真,处于停止状态时,才可以进行调试,这一点与汇编语言的调试
完全一样。

该案例包含很多源文件,所以需要在下拉菜单里选择具体的文件来进行调试,如下图:





此时选择 main.c 作为例子,点击后出现下面的 C 程序:

现在设置断点,方法同上,只需在需要放置断点的代码处双击鼠标左键即可,此时会出 现一个红点(断点指示器),如果断点设置错误,则再次双击鼠标左键,断点即可取消,假 设在 0980 处设置断点,如下图所示:

此时进行仿真,结果运行到断点处便会停止。 如果需要查看程序执行的细节,具体到每一条指令的执行过程,则可以在反汇编代码中

进行代码的汇编级单步调试。右键单击所设断点的代码,选择 Dissassembly(反汇编)或者
按 Ctrl+D,如下:


反汇编后会显示从当前断点到下一条指令之间所有的操作,对于上面的 0980 处设置的断 点,将显示 0980 到 09A2 之间的所有单步程序:






值得注意的是,反汇编的应用是汇编语言和 C51 语言编程的一大区别。

2.4 Proteus8.0 与 Keil 联接调试

Keil 是德国 Keil 公司(ARM 公司收购)现已被开发的 8051 单片机软件开发平台,经过 不断升级,现已经成为一个重要的单片机开发平台。Keil 界面不复杂,操作也不困难,很 多优秀程序都是在 Keil 的平台上编写出来的。Keil 是一个重要的单片机语言开发软件平台, 用户群极为庞大。

(1)Keil 的μVision3 可进行纯粹的软件仿真(仿真软件程序,不接硬件电路);也可 以利用硬件仿真器,搭接上单片机硬件系统,在仿真器中载入项目程序后进行实时仿真;还 可以使用μVision3 的内嵌模块 Keil Monitor-51,在不需要额外的硬件仿真器的条件下, 搭接单片机硬件系统对项目程序进行实时仿真。

(2)μVision3 调试器具备所有常规源代码级调试,符号调试特性以及历史跟踪,代 码覆盖,复杂断点等功能。Keil μVision3 可以编辑、编译汇编语言、C51 语言,连接定位 目标文件和库文件,创建.hex 文件,调试目标程序等。

下面介绍使用 Keil μVision3 来开发项目、调试程序并生成*..hex 文件来用于 Proteus

中单片机程序的开发和仿真。

前面介绍了 Proteus 下完成原理图设计文件后,再在 keil μVision3 下编写 C51 程序, 经过调试、编译最终生成.hex 文件后,在 Proteus 下把.hex 文件载入虚拟单片机中,然后 进行系统联调。如果要修改程序,需再回到 keilμVision3 下修改,再经过调试、编译,新 生成.hex 文件,重复上述过程,直至系统正常运行为止。但是对于较为复杂的程序,如果 没有达到预期效果,这时可能需要 Proteus 与 KeilμVision3 进行联合调试。

联合调试之前需要安装 vudgi.exe 文件,文件可到 Proteus 的官方网站下载。vudgi.exe

文件安装后,需对 Proteus 与μVision3 中进行相应设置。

2.4.1 对 Proteus8.0 的设置

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






2.4.2 对 KeilμVision3 的设置
完成上述设置后,在 KeilμVision3 中打开工程文件,然后单击菜单【Project】→ “Options for Target”选项(或单击工具栏上“Options forTarget”快捷按钮),打开
如图所示的工程,即 KeilμVision3 中的设置选项对话框

在 Debug 选项卡中选定右边的“Use”及其中的选项“Proteus VSM Simulator”,如果 Proteus 与 Keil C 安装在同一台计算机中,右边“Setting”中的Host 与 Port 可保持默认 值 127.0.0.1 与 8000 不变,如图所示。在跨计算机调试时则需要进行相应的修改。




完成上述设置后,在 Keil μVision3 中全速运行程序时,Proteus 中的单片机系统也

会自动运行,出现的联调界面如图 4-4 所示。左半部分为 Keil μVision3 的调试界面,右 半部分是 Proteus ISIS 的界面。如果希望观察运行过程中某些变量的值或者设备状态,需 要在 Keil μVision3 中恰当使用各种 Step In/ Step Over/ Step Out/ Run To Cursor Line 及 Breakpoint 进行跟踪,来观察右面的虚拟硬件系统运行的情况。总之,需要把 Keil μVision3 中的各种调试手段,如单步、跳出、运行到当前行、设置断点等恰当地配合来进 行单片机系统运行的软硬件联调。

需要说明的是,联调方式不支持需要调试的程序工程的中文名字,因此应将中文名字改 为英文名字,例如,需将 “流水灯.Uv2”工程文件的名字改为英文字符的名字“LSD.Uv2”。

需要注意的是,这种联调方式在有些场合并不适用。例如键盘矩阵扫描时,就不能用单 步跟踪,因为程序运行到某一步骤时,如果单击按键后,再到 KeilC 中继续单步跟踪,这 时按键早已释放了。又如程序中某些函数模拟了访问某个芯片的程序,如果在内部单步跟踪, 这样也会失去芯片时序的仿真模拟,跟踪也是达不到效果的。

2.5 硬件断点的设置
到目前为止,Proteus8.0 的基本使用已经叙述完毕,前面所介绍的是基于软件条件的仿 真中断,另外也可以使用硬件断点,以便当硬件条件发生时检查代码。

切换到原理图部分,在左边的部分选择电压探针图标,选择 VOLTAGE。接下来在编辑 窗口单击,开始进行探针的放置,即移动鼠标到想要放置探针的位置,左键单击即可,如图:






现在右键单击探针,从弹出的菜单中选择编辑属性(Edit Properties),如下图:



实时断点类型选择数字的(Digital),如果想在低电平进行触发,输入 0 作为触发值, 即在 Trigger Value(触发值)处输入 0;同时还可以设置装备时间(Arm at Time),来跳过断 点等




2.7 .诊断模式的设定

在 Proteus 中仿真诊断信息是一个十分有用又容易被人忽略的工具,它提供一个窗口, 允许用户查看指定外设上仿真活动的文字性报告。下面介绍一下它的使用。


切换到原理图界面,选择 Debug 菜单,打开后找到 Configure

Diagnostics(配置诊断信息),左键单击,弹出如下对话框:


展开 ISIS,选择需要诊断的部分,并点击 Full Trace(所有信息),即将诊断信息输出 等级设置为所有信息。



点击 OK 后启动仿真,我们会在 VSM Studio 底部看见诊断信息





3. 结论

Proteus 是世界上著名的 EDA 工具(仿真软件),从原理图布图、代码调试到单片机与外 围电路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的完整设计。是目前世界 上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模 型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和 MSP430 等,2010 年又增加了 Cortex 和 DSP 系列处理器,并持续增加其他系列处理器模型。在编译方面,它 也支持 IAR、Keil 和 MATLAB 等多种编译器。
用 Proteus 软件进行单片机系统仿真设计,是虚拟仿真技术和计算机多媒体技术相结合 的综合运用,有利于培养学生的电路设计能力及仿真软件的操作能力;在单片机课程设计和 全国大学生电子设计竞赛中,我们使用 Proteus 开发环境对学生进行培训,在不需要硬件 投入的条件下,学生普遍反映,对单片机的学习比单纯学习书本知识更容易接受,更容易提 高。实践证明,在使用 Proteus 进行系统仿真开发成功之后再进行实际制作,能极大提高 单片机系统设计效率。因此,Proteus 有较高的推广利用价值。

在 Proteus 的家族里,Proteus8.0 是目前比较新的版本(最新的是 Proteus8.1 版本), 它与以前其他版本相比,界面变化很大,功能更强,总体结构变化较大,PCB 设计和 VSM 设 计功能都有所加强,对于其兼容性,Proteus8.0 所生成的文件在 Proteus7 系列里不能运行, 而 Proteus7 生成的文件可以在Proteus8.0 里运行,说明 Proteus 的更新是向下兼容的。
与 Proteus7.0 相比,8.0 版本可以调节字体大小,但是也取消了外部文本编辑器。 Proteus8.0 对于汇编语言的应用要求较高,同时也在一定程度上支持C51 语言的使用。值 得注意的是,Proteus8.0 版本更加偏向于汇编语言的应用,对汇编语言给予里很大便利。


完整的pdf格式文档51黑下载地址:
详细的Proteus8.0教程.pdf (1.49 MB, 下载次数: 5)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表