Proteus入门教程作者:archeng504日期:2006-1-2本文将简单介绍一下Proteus的使用。在这里,我用的Proteus版本是Proteus6.7sp3Professional。一、Proteus6Professional界面简介安装完Proteus后,运行ISIS6Professional,会出现以下窗口界面:为了方便介绍,我分别对窗口内各部分进行中文说明(见上图)。下面简单介绍各部分的功能:1.原理图编辑窗口(TheEditingWindow):顾名思义,它是用来绘制原理图的。蓝色方框内为可编辑区,元件要放到它里面。注意,这个窗口是没有滚动条的,你可用预览窗口来改变原理图的可视范围。2.预览窗口(TheOverviewWindow):它可显示两个内容,一个是:当你在元件列表中选择一个元件时,它会显示该元件的预览图;另一个是,当你的鼠标焦点落在原理图编辑窗口时(即放置元件到原理图编辑窗口后或在原理图编辑窗口中点击鼠标后),它会显示整张原理图的缩略图,并会显示一个绿色的方框,绿色的方框里面的内容就是当前原理图窗口中显示的内容,因此,你可用鼠标在它上面点击来改变绿色的方框的位置,从而改变原理图的可视范围。3.模型选择工具栏(ModeSelectorToolbar):主要模型(MainModes):1*选择元件(components)(默认选择的)2*放置连接点3*放置标签(用总线时会用到)4*放置文本5*用于绘制总线6*用于放置子电路7*用于即时编辑元件参数(先单击该图标再单击要修改的元件)配件(Gadgets):1*终端接口(terminals):有VCC、地、输出、输入等接口2*器件引脚:用于绘制各种引脚3*仿真图表(graph):用于各种分析,如NoiseAnalysis4*录音机5*信号发生器(generators)6*电压探针:使用仿真图表时要用到7*电流探针:使用仿真图表时要用到8*虚拟仪表:有示波器等2D图形(2DGraphics):1*画各种直线2*画各种方框3*画各种圆4*画各种圆弧5*画各种多边形6*画各种文本7*画符号8*画原点等4.元件列表(TheObjectSelector):用于挑选元件(components)、终端接口(terminals)、信号发生器(generators)、仿真图表(graph)等。举例,当你选择“元件(components)”,单击“P”按钮会打开挑选元件对话框,选择了一个元件后(单击了“OK”后),该元件会在元件列表中显示,以后要用到该元件时,只需在元件列表中选择即可。5.方向工具栏(OrientationToolbar):旋转:旋转角度只能是90的整数倍。翻转:完成水平翻转和垂直翻转。使用方法:先右键单击元件,再点击(左击)相应的旋转图标。6.仿真工具栏仿真控制按钮1*运行2*单步运行3*暂停4*停止二、操作简介1、绘制原理图:绘制原理图要在原理图编辑窗口中的蓝色方框内完成。原理图编辑窗口的操作是不同于常用的WINDOWS应用程序的,正确的操作是:用左键放置元件;右键选择元件;双击右键删除元件;右键拖选多个元件;先右键后左键编辑元件属性;先右键后左键拖动元件;连线用左键,删除用右键;改连接线:先右击连线,再左键拖动;中键放缩原理图。具体操作见下面例子。2、定制自己的元件:有三个个实现途径,一是用PROTEUSVSMSDK开发仿真模型,并制作元件;另一个是在已有的元件基础上进行改造,比如把元件改为bus接口的;还有一个是利用已制作好(别人的)的元件,我们可以到网上下载一些新元件并把它们添加到自己的元件库里面。由于我没有PROTEUSVSMSDK,所以我只介绍后两个。3、Sub-Circuits应用:用一个子电路可以把部分电路封装起来,这样可以节省原理图窗口的空间。三、实例(一)、AVR单片机的仿真实例本例是实现AVR驱动LCD1602,并用示波器监测数据线。开始前先要准备好仿真文件,就是用编译器编译连接产生的调试或下载文件,不同编译器产生的文件格式是不同的,如ICC是COF、IAR是D90,GCC是COF、ELF。Proteus6.7sp3支持的有COF、D90、HEX等,ELF暂不支持。本例用的是:lcd_C.hex。开始了!!!!!运行Proteus6Professional(ISIS6Professional)出现下面窗口:1、添加元件到元件列表中:本例要用到的元件有:ATMEGA16、LM016L(LCD1602)、“地“、示波器。单击“P”按钮,出现挑选元件对话框在对话框的KEYWORDS中输入ATMEGA16,得到以下结果:单击OK,关闭对话框,这时元件列表中列出ATMEGA16,同样找出LM016L。最终结果:2、放置元件:在元件列表中左键选取ATMEGA16,在原理图编辑窗口中单击左键,这样ATMEGA16就被放到原理图编辑窗口中了。同样放置LM016L。添加“地”:左键选择模型选择工具栏中的图标,出现:左键选择GROUND,并在原理图编辑窗口中左击,这样“地”就被放置到原理图编辑窗口中了。添加示波器:左键选择模型选择工具栏中的图标,出现:左键选择OSCILLOSCOPE,并在原理图编辑窗口中左击,这样示波器就被放置到原理图编辑窗口中了。补充:放置元件时要注意所放置的元件应放到蓝色方框内,如果不小心放到外面,由于在外面鼠标用不了,要用到菜单“Edit”的“Tidy”清除,方法很简单只需单击“Tidy”即可。操作中可能要整体移动部分电路,操作方法:先用右键拖选,再单击中的,这时这部分电路会随鼠标移动,在目标位置单击左键,这部分电路将被放到该处。3.连线AVR、LCD的VSS、VDD、VEE不需连接,默认VSS=0V、VDD=5V、VEE=-5V、GND=0V4.添加仿真文件先右键ATMEGA16再左键,出现在ProgramFile中单击出现文件浏览对话框,找到lcd_C.hex文件,单击确定完成添加文件,在ClockFrequency中把频率改为8MHz,单击OK退出。5.仿真单击开始仿真。说明:红色代表高电平,兰色代表低电平,灰色代表不确定电平(floating)。运行时,在Debug菜单中可以查看AVR的相关资源。6、源代码调试先声明一下,我是用ICC的,版本ICC6.31aPro。Proteus是支持COF文件调试的。在用ICC时,你应该改一下编译器选项,AVRStudioVersion选Studio3.x,这样在Proteus中可看到原代码了。在Proteus中,完成绘制原理图和添加调试文件后(COF文件),单击会出现AVRSourceCode窗口,如果在调试状态下没出现,请到菜单Debug中找。说一下,下面依次说明1*连续运行,会退出单步调试状态,并关闭AVRSourceCode窗口2*单步运行,遇到子函数会直接跳过3*单步运行,遇到子函数会进入其内部4*跳出当前函数,当用3*进入到函数内部,使用它会立即退出该函数返回上一级函数,可见它应该与3*配合使用5*运行到鼠标所在行6*添加或删除断点,设置了断点后用程序会停在断点处。另外,你可AVRSourceCode窗口中右击,会出现右键菜单,上面的功能在这里不作说明。(二)、把74LS373改成.bus接口我们可以修改Proteus中的元件,比如把74LS373改成.bus接口的,有两种实现方案。方案(1)利用现有元件步骤:1、“拆”元件先把添加74LS373(左上图的),再右键选择74LS373,再单击工具栏的出现2、修改先把Q0至Q7、D0至D7的管脚删掉添加BUS的具体方法见方案(2)的相关介绍。效果如下:3、重新MakeDevice用右键拖选整个元件,选择菜单“Library”Æ“MakeDevice”,出现下面对话框将74LS373改为74LS373.bus其他不变,Next这个不用改,Next这个不用改,Next这个不用改,Next这个最好要改,第一个可改为74LSBUS,第二个不变,OK结束方案(2)重新绘制元件步骤:1.用2DGRAPHICS中的绘制DeviceBody2.用中的绘制引脚DEFAULT为普通引脚,BUS为总线3.修改引脚属性说明:①为GND,PIN10;②为D[0..7];③为OE,PIN1;④为LE,PIN11;⑤为VCC,PIN20;⑥为Q[0..7]。先右击后左击①,在出现的对话框中输入下面数据;⑤是类似的。GND、VCC需要隐藏,故Drawbody不选。先右击后左击②,在出现的对话框中输入下面数据;⑥是类似的先右击后左击③,在出现的对话框中输入下面数据;④是类似的最终效果4.添加中心点选择中的绘制中心点,选择ORIGIN中心点的位置可任意放。5.封状入库先用右键选择整个元件然后,选择菜单“Library”Æ“MakeDevice”,出现下面对话框,并输入下面内容Next,选择PCB封装,可不管他Next,设置元件的参数我们需要添加两个属性:{ITFMOD=TTLLS}、{MODFILE=74XX373.MDF}单击New,再单击NewNext,这不用理Next,选择元件存放位置,默认是放在USERDVC中的,左边是选择类别,最好自己新建一个,如mylib。到此为止已经完成元件修改。你可用库管理器自己的元件。(三)利用已制作好(别人的)的元件其实很简单,仿真模型提供者一般会给出三样东西:模型文件(一般为dll文件)、例子、库文件。我们要做的工作是:先把dll文件拷贝到Proteus安装目录下的MODELS文件夹里,这样附带的例子就可运行了!如果还附带库文件的话,就把.lib文件拷贝到Proteus安装目录下的LIBRARY文件夹里,这样你就可以Proteus的库管理器中看到该库文件。如果没有附带库文件,你就要把它添加到你自己的苦里面,方法下面介绍。先到下载I2CSpy和DS1621两个,我们的目标是I2CSpy,但它的例子中要用到DS1621,所以也把DS1621给下了。于是,我们得到下面文件:I2CSPY.dll、DS1621.dll和test_i2c.DSN等文件。先把I2CSPY.dll和DS1621.dll文件拷贝到Proteus安装目录下的MODELS文件夹里,运行test_i2c.DSN。到菜单Library的Compiletolibrary项,出现下面对话框,单击OK,这样原理图的所有元件将被添加到USERDVC.LIB中,我们到库管理器中把不需要的删除。菜单Library的LibraryManager项,出现用DeleteItems把除I2CSpy外的元件删除,单击Close完成。另外你也用上一实例的方案(1)的方法。(四)Sub-Circuits应用以一个例子介绍,这个例子是将实例一改为Sub-Circuits形式。1、绘制Sub-Circuits符号:点击,到原理图窗口拖一个方框修改属性,如右图这时用工具栏的查看原理图的层次结构,我们可以看到两张原理图,我们刚才操作的是Bootsheet1,SUB是刚生成的,它的名字就是上一步的Name属性。我们在右图中选择SUB后按OK即可切换到SUB原理图中。回到Bootsheet1,我们打算在Bootsheet1中绘制LCD,在SUB中绘制MEGA16。下面,我们来添加引脚,由于这个例子的数据传输方向是单向的,即M16到LCD。因此,我们只用到OUTPUT。到元件列表中选取OUTPUT放到SUB符号的右边(注:引脚只能放置到SUB符号的左右两边),添加6个并设置它们的标签名(方法:右击已放置的OUTPUT再左击,在String中输入标签名),连接LCD,最终效果2、绘制SUB原理图:切换到SUB(上面有介绍),这是一个空的原理图,我们先添加ATMEGA16,接着单击到元件列表中选取OUTPUT,添加6个并标上标签名(它们应该跟刚才绘制SUB符号的引脚时用到的标签名一致),连接ATMEGA16,最终效果至此,这个