Proteus软件使用方法Proteus软件使用方法一2008-11-18 20:47Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。
Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。
通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。
本文中由于我们主要使用Proteus软件在单片机方面的仿真功能,所以我们重点研究ISIS模块的用法,在下面的内容中,如不特别说明,我们所说的Proteus软件特指其ISIS模块。
在进行下面的操作前,我先说明一点:我的Proteus版本是7.1,如果你使用的是6.9以前的版本,可能你发现在鼠标操作上会略有不同。
这主要表现在6.9以前的版本鼠标左右键的作用与一般软件刚好相反,而7.0以后已经完全改过。
下面我们首先来熟悉一下Proteus的界面。
Proteus是一个标准的Windows窗口程序,和大多数程序一样,没有太大区别,其启动界面如下图所示:如图中所示,区域①为菜单及工具栏,区域②为预览区,区域③为元器件浏览区,区域④为编辑窗口,区域⑤为对象拾取区,区域⑥为元器件调整工具栏,区域⑦为运行工具条。
下面我们就以建立一个和我们在Keil简介中所讲的工程项目相配套的Proteus工程为例来详细讲述Proteus的操作方法以及注意事项。
首先点击启动界面区域③中的“P”按钮(Pick Devices,拾取元器件)来打开“Pick Devices”(拾取元器件)对话框从元件库中拾取所需的元器件。
对话框如下图所示:在对话框中的“Keywords”里面输入我们要检索的元器件的关键词,比如我们要选择项目中使用的AT89C51,就可以直接输入。
输入以后我们能够在中间的“Results”结果栏里面看到我们搜索的元器件的结果。
在对话框的右侧,我们还能够看到我们选择的元器件的仿真模型、引脚以及PCB参数。
这里有一点需要注意,可能有时候我们选择的元器件并没有仿真模型,对话框将在仿真模型和引脚一栏中显示“No Simulator Model”(无仿真模型)。
那么我们就不能够用该元器件进行仿真了,或者我们只能做它的PCB板,或者我们选择其他的与其功能类似而且具有仿真模型的元器件。
搜索到所需的元器件以后,我们可以双击元器件名来将相应的元器件加入到我们的文档中,那么接着我们还可以用相同的方法来搜索并加入其他的元器件。
当我们已经将所需的元器件全部加入到文档中时,我们可以点击“OK”按钮来完成元器件的添加。
添加好元器件以后,下面我们所需要做的就是将元器件按照我们的需要连接成电路。
首先在元器件浏览区中点击我们需要添加到文档中的元器件,这时我们就可以在浏览区看到我们所选择的元器件的形状与方向,如果其方向不符合你的要求,你可以通过点击元器件调整工具栏中的工具来任意进行调整,调整完成之后在文档中单击并选定好需要放置的位置即可。
接着按相同的操作即可完成所有元器件的布置,接下来是连线。
事实上Proteus的自动布线功能是如此的完美以至于我们在做布线时从来都不会觉得这是一项任务,而通常像是在享受布线的乐趣。
布线时我们只需要单击选择起点,然后在需要转弯的地方单击一下,按照你所需走线的方向移动鼠标到线的终点单击即可。
本例我们布线的结果如下图所示(仿真我们在上面的Keil操作介绍中的简单例子)。
因为该工程十分简单,我们没有必要加上复位电路,所以这点在图中予以忽略,请大家注意。
除此以外,你可能还发现,单片机系统没有晶振,这一点你需注意。
事实上在Proteus中单片机的晶振可以省略,系统默认为12MHz,而且很多时候,当然也为了方便,我们只需要取默认值就可以了。
下面我们来添加电源。
先说明一点,Proteus中单片机芯片默认已经添加电源与地,所以我们可以省略。
然后在添加电源与地以前,我们先来看一下上面第一个图中区域⑤的对象拾取区,我们在这里只说明本文中可能会用得到的以及比较重要的工具。
l:(Selection Mode)。
选择模式,通常情况下我们都需要选中它,比如布局时和布线时。
l:(Component Mode)。
组件模式,点击该按钮,能够显示出区域③中的元器件,以便我们选择。
l:(Wire Label Mode)。
线路标签模式,选中它并单击文档区电路连线能够为连线添加标签。
经常与总线配合使用。
l:(Text Script Mode)。
文本模式,选中它能够为文档添加文本。
l:(Buses Mode)。
总线模式,选中它能够在电路中画总线。
关于总线画法的详细步骤与注意事项我们在下面会进行专门讲解。
l:(Terminals Mode)。
终端模式,选中它能够为电路添加各种终端,比如输入、输出、电源、地等等。
l:(Virtual Instruments Mode)。
虚拟仪器模式,选中它我们能够在区域③中看到很多虚拟仪器,比如示波器、电压表、电流表等等。
关于它们的用法我们会在后面的相应章节中详细讲述。
好了,下面我们就来添加电源。
首先点击,选择终端模式,然后在元器件浏览区中点击POWER(电源)来选中电源,通过区域⑥中的元器件调整工具进行适当的调整,然后就可以在文档区中单击放置电源了。
放置并连接好线路的电路图一部分如下图:连接好电路图以后我们还需要做一些修改。
由上图我们可以看出,图中的R1电阻值为10k,这个电阻作为限流电阻显然太大,将使发光二极管D1亮度很低或者根本就不亮,影响我们的仿真结果。
所以我们要进行修改。
修改方法如下:首先我们双击电阻图标,这时软件将弹出“Edit Component”对话框(见下图所示的对话框),对话框中的“Component Referer”是组件标签之意,可以随便填写,也可以取默认,但要注意在同一文档中不能有两个组件标签相同;“Resistance”就是电阻值了,我们可以在其后的框中根据需要填入相应的电阻值。
填写时需注意其格式,如果直接填写数字,则单位默认为Ω;如果在数字后面加上K或者k,则表示kΩ之意。
这里我们填入270,表示270Ω。
修改好各组件属性以后就要将程序(HEX文件)载入单片机了。
首先双击单片机图标,系统同样会弹出“Edit Component”对话框,如下图。
在这个对话框中我们点击“Program files”框右侧的,来打开选择程序代码窗口,选中相应的HEX文件后返回,这时,按钮左侧的框中就填入了相应的HEX文件,我们点击对话框的“OK”按钮,回到文档,程序文件就添加完毕了。
装载好程序,我们就可以进行仿真了。
首先来熟悉一下上面第一个图中区域⑦的运行工具条。
因为比较简单,我们只作一下介绍。
工具条从左到右依次是“Play”、“Step”、“Pause”、“Stop”按钮,即运行、步进、暂停、停止。
下面我们点击“Play”按钮来仿真运行,效果如下图所示,可以看到系统按照我们的程序在运行着,而且我们还能看到其高低电平的实时变化。
如果我们已经观察到了结果就可以点击“Stop”来停止运行。
proteus软件使用方法二2008-11-18 20:50计算机仿真辅助单片机指令系统学习计算机仿真对单片机指令系统的学习的帮助主要在于帮助理解,加强记忆,适当应用。
能够在单片机指令系统学习中的软件主要是MedWin,因为其操作简单,而且可以直观地看到结果。
1.数据传送指令:数据传送类指令主要包括:MOV、MOVX、MOVC、PUSH、POP、XCH等。
下面我们通过一个简单的汇编程序来学习这些指令。
例1.汇编语言源文件如下图所示:在MedWin中编辑好源文件以后,以“.asm”为后缀保存为汇编源文件。
然后进行编译、汇编并将代码装入内存进行仿真。
由于本程序对寄存器、特殊功能寄存器、内部存储器、外部数据存储器都进行了操作,所以需要首先点击“查看”菜单下的相应子菜单打开相应的窗口,即寄存器、特殊功能寄存器、数据区IData、数据区XData,并可以根据需要点击“窗口”菜单下的选项来横向或纵向平铺窗口。
因为本程序需要一步一步地详细查看相应指令执行的结果,所以我们需要在执行指令时点击“指令跟踪(F7)”或“指令单步(F8)”按钮来单步执行。
指令执行中的一个画面如下图所示:从图中我们能够清晰地观察到每一条指令执行的每一个结果,从而加深我们对这些指令的理解与记忆。
除以上实例程序中所书写的以外,我们还可以使用其他的指令书写程序并在MedWin中仿真,比如PUSH、POP、MOVC等,相信你会得到一个很好的结果,而且MedWin肯定会提高你学习指令的兴趣。
2.算术操作类指令算术操作类指令主要有:ADD、ADDC、DA A、SUB、INC、DEC、MUL、DIV等。
算术操作类指令比较复杂,掌握起来比较困难,但在实际的单片机项目应用中很少涉及,尤其是MUL、DIV两条指令,在51系列单片机中更是被束之高阁,很少使用。
此处,我们不再像上节那样逐条书写并仿真课本上的程序,如果感兴趣,你可以仿照上节自己书写程序并进行仿真,观察并体会每一条指令执行的结果以及对系统的影响。
这里我们通过一个比较实用的例子来演示仿真算术类指令的操作。
例2.两个压缩BCD码求和:将两个BCD码(每个占4位)分别放在一个字节的高4位和低4位即组成压缩BCD码。
本例中有两个压缩BCD码数字,都是四位数,第一个数的高两位放在20H,低两位放在21H中;第二个高低位分别放在30H、31H中。
要求所得结果放在40H、41H中。
汇编源程序如下图:在MedWin中编辑好源文件后,以“.asm”为后缀将其保存为汇编文件,然后进行编译、汇编并将代码装入内存进行仿真。
你可以像上例那样步进观察其详细执行过程,分析原因;当然也可以在“ljmp $”处设置断点,然后全速运行。
需要注意程序中使用到了内部存储器,所以你需要将数据区“IData”窗口调出来进行观察。
运行的最后结果如下图所示:从图中我们能够很清楚地看到内部存储器相应单元的内容,进而观察到程序执行的结果,即:2097+4559=6656。
3.逻辑运算指令、控制转移类指令逻辑运算指令,顾名思义,是用于逻辑运算的指令。
主要包括:CLR、CPL、ANL、ORL、XRL等常用逻辑指令以及循环移位指令如:RL、RLC、RR、RRC等。
控制转移类指令是指在程序中根据具体的条件(或者没有条件)使程序转移到相应的入口的指令。
它主要包括三类指令:一是无条件转移指令,比如:AJMP、SJMP、LJMP等;二是条件转移指令,比如:JZ、CJNE、DJNZ等;三是子程序调用返回指令,比如:ACALL、LCALL、RET、RETI 等。