VSMPROTEUS中文说明书Word文档下载推荐.docx
《VSMPROTEUS中文说明书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《VSMPROTEUS中文说明书Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
1.2.4连线
导线绘制过程:
1.选中连线模式:
导线模式或总线模式;
2.点击起点及终点,系统自动拉出导线。
3.导线复制:
单击起点,系统走出和上一条导线相同的轨迹。
4.对导线进行拖曳,调整导线位置。
1.3编写程序(汇编)
1.3.1编写源程序
PROTEUS自带多种汇编编辑编译系统,使用编辑环境输入下列PIC汇编源代码:
LISTp=16F84;
PIC16F844isthetargetprocessor
#include"
P16F84.INC"
;
Includeheaderfile
CBLOCK0x10;
Temporarystorage
State
l1,l2
ENDC
org0;
Startupvector.
gotosetports;
Gotostartupcode.
org4;
Interruptvector.
haltgotohalt;
Sitinendlessloopanddonothing.
setportsclrw;
ZerointoW.
movwfPORTA;
EnsurePORTAiszerobeforeweenableit.
movwfPORTB;
EnsurePORTBiszerobeforeweenableit.
bsfSTATUS,RP0;
SelectBank1
clrw;
Maskforallbitsasoutputs.
movwfTRISB;
SetTRISBregister.
bcfSTATUS,RP0;
ReselectBank0.
initialiseclrw;
Initialstate.
movwfstate;
Setit.
loopcallgetmask;
Convertstatetobitmask.
Writeittoport.
incfstate,W;
IncrementstateintoW.
andlw0x04;
Wrapitaround.
Putitbackintomemory.
callwait;
Wait:
-)
gotoloop;
Andloop:
Functiontoreturnbitmaskforoutputportforcurrentstate.
Thetopnibblecontainsthebitsforonesetoflightsandthe
lowernibblethebitsfortheotherset.Bit1isred,2isamber
andbitthreeisgreen.Bitfourisnotused.
getmaskmovfstate,W;
GetstateintoW.
addwfPCL,F;
AddoffsetinWtoPCLtocalc.goto.
retlw0x41;
state==0isGreenandRed.
retlw0x23;
state==1isAmberandRed/Amber
retlw0x14;
state==3isRedandGreen
retlw0x32;
state==4isRed/AmberandAmber.
Functionusingtwoloopstoachieveadelay.
waitmovlw5
movwfl1
w1callwait2
decfszl1
gotow1
return
wait2clrfl2
w2decfszl2
gotow2
END
注意:
上面的程序故意设置了一些错误的代码,以便后面调试使用。
1.3.2链接编译源程序
编辑好源程序后,进行源程序链接编译工作,整个过程如下:
1.点击SOURCEMENU菜单下ADD/REMUVESOURCEFILE,在代码生成工具下拉菜单选择MPASM,新建一个汇编程序,导入刚才编好的TL.ASM汇编文件。
2.单击SOURCE菜单下BUILDALL命令,如果程序没有错误,MPASM会生成HEX格式的文件。
3.编辑处理器属性中的PROGRAM属性,将生成的HEX文件添加到该对话框中。
*这样我们就完成了程序的编辑编译以及和处理器模型的连接。
1.3.3调试程序
仿真电路
点击仿真盘框中的运行按钮。
电路进入仿真状态,观察电路运行效果,你会发现开始一个交通灯是绿色而一个交通灯为红色,此后交通灯再也不会改变显示状态,这说明是程序存在BUG,需要经过调试改正。
调试模式
按CTRL+F12或点击暂停或单步使电路从仿真状态切换到调试状态。
在默认设置下系统会弹出两个窗口,一个是源程序调试窗口,另一个是寄存器窗口。
另外一些调试窗口可以通过DEBUG菜单选出显示;
其中使用者可以直接在WATCHWINDOW中添加自己比较关心的变量进行实时监测。
程序执行到某处,在该行程序的最多边会有一个红色的箭头出现,这行程序呈处于高亮状态。
设置断点
观察程序可以发现它以一个重复周期循环。
因此我们首先在循环的起点设置一个断点是个好主意。
用鼠标使该行(地址000E)高亮,然后按F9就可以设置断点。
然后按F12使程序运行。
你就可以从StatusBar看到执行到数字断点的消息以及程序计数器(PC)地址。
这和我们设置的第一个断点的地址是对应的。
在Debug菜单下有一系列的调试键,但是多数时候我们用F11来单步运行程序。
现在单击F11并注意左边的红色箭头下移到下一条指令。
我们所做的是运行到“clrw”指令并停下。
通过观察寄存器窗口的W寄存器并注意它的值被清零,你可以校验指令的运行。
现在我们需要做的,是决定我们希望下一条指令做什么,并测试实际上做了没有。
例如,下一条指令将吧“w”寄存器的内容传送到端口A,端口A应该被清零。
运行这个指令并检查寄存器窗口可知实际就是这样执行的。
继续这个线索直至到达我们设置的第二个断点,你可以注意到两个端口都被清零为输出(如TRISB寄存器所命令的那样),状态变量正确地被设为0。
由于这是个函数调用,我们可以使用SteppingOver选项跳过函数(通过单击F10键),但是为了完整我们单步运行每条指令。
在这里单击F11就跳到getmask函数的第一条指令。
向前单步执行我们看到传送指令成功执行,我们落在正确的位置,为查表添加0偏移值。
当我们返回主程序后,我们得到期望的屏蔽值。
继续单步执行把屏蔽值写到端口,我们可以在原理图上看到正确的结果。
再次单步执行,在寄存器窗口W寄存器的值加1,显然状态也成功地加1。
单步执行,程序设计为增加到3后绕回0。
就像在WatchWindow看到那样,这并没有按照应有的方式运行。
为了在下一循环中正确地设置屏蔽值,状态在这里应该清楚地被加1。
寻找BUG
仔细地分析就暴露了问题的原因是和4相与而不是3。
我们希望的状态是0,1,2,3任何这些数与4相与都是0。
这就是为什么我们运行仿真时交通灯没有变化。
解决方法很简单,就是把错误指令改为和3相与而非4。
这意味着状态增加到3也就是W寄存器增加到4时状态返回到0。
另一种简单的解决办法是当“W”寄存器到4时把它清零。
通过这个ProteusVSM调试技术的小例子说明了基本的技巧,还有更多的功能可用。
建议你参考“源代码调试”一节以获得更加详细的资料。
1.3.4测量
PROTEUS中提供多种测量用的虚拟仪器,将其放置到原理图中,连接到测量点,开始仿真,虚拟仪器将会提供一个反馈的波形信号。
如下列出现有的虚拟仪器种类:
每一个虚拟仪器都附带有帮助文档,可以通过点击仪器右键菜单中的EditProperties命令,在弹出的对话框中点击Help按钮,调出帮助文档进行模型细节的查阅。
操作如下图:
在使用PROTEUS虚拟仪器时应该清楚,这些仪器不会考虑信号或波形在器件之间传输引起的干扰。
下面介绍一下逻辑分析仪的放置及使用过程:
1.选择仪器按钮,在对象选择器中选择使用的仪器。
2.在编辑窗口中点击左键,进入放置模式,移动鼠标,在合适放置点左键点击确定。
3.将仪器连接到到需要的测量点上。
4.点击仿真盘框上点击运行按钮,逻辑分析仪开始监控数据。
对于逻辑分析器的测量方法请查看相关帮助。
1.4编写程序(C/C++)
1.4.1在PROTEUSVSM中调试C程序
使用PROTEUSVSM调试信息:
1.创建一个文件夹,将ISIS原理图文件及C工程都放置其中。
2.编译源程序,保证编译器输出了目标代码。
3.编辑处理器属性,设定时钟频率,装载编译器生成的目标代码。
4.开始仿真。
5.点击PAUSE键启动调试窗口,使用断点、单步等手段进行调试。
附加调试信息(如变量窗口)取决与目标代码带的信息。
细节请查阅高级调试技巧帮助文档。
时钟频率通过元件属性指定,在原理图中绘制的晶振电路没有实际作用。
1.4.2支持的目标文件格式
以下列出了不同处理器致贺词的目标代码格式:
HEX代码不带调试信息,它只能仿真不能调试。
对于COD代码格式,VSM调试只能在机器码下单步调试,不能进行源码调试,也不支持变量窗口观测。
建议优先考虑COFF格式。
BasicStamp处理器包括一个集成的解释器,使用者将源代码加载到Programfile对话框中。
第2章高级调试指南
2.1调试窗口
在仿真暂停时,通过Debug菜单下可以调出多个调试窗口。
范围包括存储器、寄存器变量显示、堆栈监控器等,另外,Watch视窗可以添加用户关心的量值,在仿真过程一直可以观察。
2.2诊断配置
ProteusVSM包含了扩展的诊断工具和跟踪模式。
它们在查找错误和验证系统运转方面很有作用。
该机制使得全部仿真行为或某一指定的仿真行为在仿真过程中被记录下来并显示在仿真指示器上。
作为一个系统级的仿真器,ProteusVSM的调试模式不仅仅可以调试微处理器还可以调试合适的外围设备(LCD显示,I2C寄存器,温度控制仪器等),这些跟踪模式可以通过调试对话框使能。
设置调试参数
当调试功能使能时设置仿真
从Debug菜单中运行ConfigureDiagnostics对话框
在对话框里展开选项,从中找到欲使能的调试项。
点击左键选定感兴趣的项目,然后在TraceInformationLevel下选中FullTrace。
用户可以设置’Arm’的时间和运行时间以控制调试功能激活的时间间隔。
重复选择感兴趣的其它选项,然后退出对话框
仿真时调试功能将在Arm时刻被激活,运行指定的周期,所有调试结果将显示在仿真指示器上。
注意:
使能了的跟踪调试增加了仿真的负荷。
但是,因为它们是一般用来确定模棱两可的问题,达到仿真的目的,因此仿真非实时的情况不再是个问题。
2.3仿真顾问
仿真指示器存放了在仿真期间产生的全部错误、警告和调试信息。
该指示器在ISIS中的位置处于仿真进程控制盘附近的状态栏。
指示器的状态显示栏在仿真过程中不断更新,不仅显示记录信息(包括错误、警告和调试信息)而且显示了此类信息的种类。
用户可以在仿真过程的任何时刻或者在完成仿真后左键点击状态栏指示器所在处调出仿真指示器(可以显示全部信息)。
2.3.1使用仿真顾问导航至器件
在由一个物理元器件产生的全部信息(信息量非常丰富,包含除了系统信息外的其它信息)的右边有一个与这些信息相关的栏目。
这项功能可以显示产生信息的原理图器件。
在Source列中单击左键将最小化仿真指示器并且可以放大/缩小、标记相应的元器件。
该功能特别有用,尤其是在复杂的设计中。
利用它可以检查器件周围的硬件设计以便解决问题。
关于仿真错误信息方面最让人感到挫折的事情之一就是一些问题(例如网点分歧,SPICE单复数等)与网点相关而不是与某一具体的元器件相关,因此在原理图中将冲突电路隔离出来是非常困难。
仿真指示器包含了在信息上的超链接,点击链接允许客户主导整个设计。
这样就简化了仿真的任务。
2.3.2使用仿真顾问导航至网络
在仿真指示器中点击感兴趣的信息所包含的”NET”链接。
点击“NET”链接后,仿真指示器将会最小化回到状态栏并调出ISIS中DesignExplorer。
DesignExplorer在窗口的左边显示一系列网点同时在窗口的右边显示了与冲突网点相关的连接点(引脚)。
在其中之一的引脚单击右键后从右键菜单中选择GotoSchematicNet.
出错的网点将在原理图中以高亮方式显示
该检测方法并不是绝对可行。
当原理图部件通过等效电路(用户利用ISIS已有器件构成的与某一元器件等效的电路)进行仿真并且出错的网点在该等效电路里时,这种仿真方法就不可行了。
然而,虽然存在着一些不能检测的情况,但是上述的技术在大多数正常条件下是可以正常起作用的并且是一个强大的分析工具。
2.4硬件断点
许多元器件都具有当一特定电路情形发生变化时触发仿真延缓的功能。
与单步仿真结合使用时,这一功能非常有用,因为电路可以直至某一特定情形出现时,才可以正常仿真,然后使用单步执行,就可以看到电路下一步将会发生什么动作。
2.4.1建立硬件断点
用户利用硬件断点可以在匹配硬件断点的条件下暂停仿真。
当调试设计,尤其是异步仿真电路并且需要分析电路所受的影响时,该特性非常有用。
建立硬件断点的步骤如下:
1.在欲触发断点的导线(总线)上放置电压探针
2.在探针处点击右键,然后从菜单中选择EditProperties
3.根据探针所在的网点,在对话框的底部选择Digital或者Analog并指定触发值。
对于数字网点和单导线,1或0对应的是逻辑高或逻辑低;
对于模拟网点,将会是一具体的值。
用户同样可以指定起控(Arm)时间,使得断点在指定的一段时间后有效。
4.点击OK退出对话框,然后按PLAY(或组合键CTRL+F12)运行仿真
第3章MPLABIDE使用相关配置
Labcenter和Microchip有着广泛的合作,致力于提供一种全新的嵌入式设计开发环境。
在MPLAB里集成了’ProteusVSMViewer’,这样,使用者可以很方便的编写,调试你的设计。
以下是一个简单的指南,在开始之前请装好MPLAB(V7.4以上版本)及Proteus(V7以上版本)。
装载运行
1.打开MPLABIDE,在打开工程项选择样例工程,路径如下:
SAMPLE\VSMViewer\EvalBoard\Explorer16withPIC24FJ128GA010\PIC24ExplDemo.mcw.
2.点击MPLABIDE中的Debugger菜单,选择SelectTool命令中的ProteusVSM选项。
这将ProteusVSM配置为MPLAB的调试工具。
3.这时,ProteusVSMViewer视窗将出现在MPLAB当中。
点击Open按钮打开工程对应的原理图。
4.点击Project菜单下的BuildAll命令。
5.点击MPLABIDE上方的绿色按钮,Proteus电路将进入仿真状态。
6.此时仿真处于时间0状态,点击MPLABIDE中的Play按钮开始仿真,这样,VSMViewer将会显示程序运行的效果。
7.使用MPLABIDE顶部的红色按钮断开VSMViewer和MPLAB连接。
提示:
这个PIC24设计分为两页,可以通过设计浏览器选择显示部分电路。
第4章高级图形仿真
以一个放大电路的例子,展示怎样使用PROTEUSVSM做基于图形的仿真,基本过程:
1.放置图表、探针及激励源。
2.运行仿真。
3.用图表显示仿真结果。
4.对图形做测量分析。
4.1开始
下图是我们准备仿真的基于741的音频放大电路。
反馈电阻R3和R4决定了其增益为10。
R1、R2和C1作为偏置器件,在反相端设置了虚地基准,并对信号去耦。
这里,我们先对这个电路做瞬态分析。
瞬态分析是一种最常用的分析。
在给顶激励信号的情况下,计算电路的时域响应,图表显示随时间变化的电压电流值。
这种分析是非常有用的,它提供一个电路的大量的信息。
其他的分析也可以以瞬态分析作为参照。
ISISTUT.DSN局部电路
4.2激励源
测试这个电路,需要合适的输入。
PROTEUS带的激励源可以提供所需要的信号。
点击GENERATOR按钮,对象选择器中会列出支持的激励源。
对于这个电路,我们需要一个脉冲发生器。
选择脉冲的类型,在编辑窗口中选择放置位置,点击左键确认,再进行连线。
激励源的操作和ISIS的元件操作是一样的,在选取放置时也可以进行编辑、移动、旋转、删除等操作;
另外,激励源可以放置在已经存在的导线上,也可以放置好后再连线;
在连线时激励源终端名称会自动命名。
最后,编辑激励源,得到想要的脉冲(此处设置高电平为10mV,脉冲宽度为0.5S)。
*在ISIS手册中的GeneratorsandProbes对各种激励源有一个详细的介绍。
在原理图中激励源的数目是没有限制的。
4.3探针
输入使用激励源,在需要监测的地方放置探针。
在工具栏中选中探针类型(本例选用的是电压探针),放置在连线上,也可以放置好后再连线。
探针放置和PROTEUS中的其他元件是一样的,在选中探针后,可以进行编辑、移动、旋转等操作。
4.4图表
图表在仿真中起了一个非常重要的作用:
它不仅是一个显示媒介,还起着仿真中约束条件的作用。
通过多个不同类型的图表(电压、数字、阻抗等)得到不同的测试图形,对电路进行不同侧面的分析。
做瞬态分析需要一个模拟图表(取名模拟是为了与数字图表区分)。
混合模式图表可以同时做模拟和数字的分析。
放置图表过程:
在工具栏中选择GRAPH按钮,对像选择器显示分析的图形列表。
选择ANALOGUE类型,在编辑窗口中鼠标左键拖拽出一个合适大小的图表窗口。
你也可以像往常那样选中图表、对它进行大小和位置调整。
在图表中添加激励及探针,有三种方式:
1.选中探针/激励,将其拖曳进图表当中,系统会自动识别出添加的探针/激励。
对于模拟分析,图线可能分别对应于左或右坐标,探针/激励要加在靠近坐标的一侧。
2.使用GRAPH菜单中ADDTRACE命令,在对话框中探针选项中选择探针。
(如果有多个图表,当前图表指的是选中的图表)。
3.如果在原理图中已经有选中的探针,使用ADDTRACE命令时,系统会快速添加探针/激励。
在开始仿真前,有必要设定仿真时间,ISIS会捕捉仿真时间内的波形。
在此例中,电路输入是10KHZ的方波(周期为100us),在图表编辑窗口中有START、STOP时间选项,将其中默认的STOP1S改为100us。
4.5仿真
使用GRAPH菜单下的的SIMULATE命令(或使用快捷方式SPACE)进行仿真,图表生成仿真曲线。
仿真初始时间默认为0,截止时间可以自己设置,在仿真中途可以按ESC退出。
仿真日志包含了最后一次仿真的信息。
可以用Graph-ViewLog或按CTRL+V查看。
仿真日志提供了一些图线上无法表示的一些有用信息。
4.6测量
在图表未选中状态下,左键单击图表绿色标题栏,图表窗口最大化。
图线的颜色与对应的标签颜色一致。
要详细测量多条图线中的一条,可以将其标号拖曳到右边,此时,右坐标的刻度会更精细,图线也会被放大。
此例中测量两个量:
●电压增益
●增益对应的时间差
这些量都是通过坐标线来做的:
每一个图表都可以设置两条坐标线,第一条是绿色基准坐标线,用左键直接点击产生;
第二条是红色参考坐标线,用CTRL+左键显示。
坐标线出现后,可以在图表下方读出即时量值及电压增益、时间差等。
4.7使用电流探针
使用电流探针测量电路中流向R4的小电流。
电流探针和电压探针使用基本相似,但有一个小差别,就是电流探针有方向,放置探针时,其方向应该和实际电流方向呈水平状态,如果是垂直的话会产生错误。
选择电流探针按钮,调整好方向,置于流向R4的导线上,仿真运行后,我们可以看到反馈电流为9.1*10e-8A,是符合整个运放电路设计要求的。
4.8频率分析
除了瞬时分析,应用在模拟电路场合还有其他好几种图表。
它们的使用方法一样。
频率分析就是其中一种,频率分析的作用是分析电路在不同频率工作状态下电路的运行情况。
在PROTEUS频率分析图表中,X轴表示频率,两个Y轴表示幅值和相位。
频率分析过程
1.放置频率分析图表
●在工具箱中选择SIMULATIONGRAPH按钮,在对象选择器中列出仿真分析图表。
●选择FREQUENCY仿真图形。
●在编辑窗