上期,笔者为大家介绍了Proteus软件的基本功能,本期笔者介绍软件的使用方法。#
原理图的绘制
Proteus的智能化可以在你想要画线的时候进行自动检测。
当鼠标的指针靠近一个对象的连接点时,跟着鼠标的指针就会出现一个“×”号,鼠标左键点击元器件的连接点,移动鼠标(不用一直按着左键)就出现了粉红色的连接线,画线结束时连接线变成了深绿色。如果你想让软件自动定出走线路径,只需左击另一个连接点即可。这就是Proteus的线路自动路径功能(简称WAR),如果你只是在两个连接点用鼠标左击,WAR将选择一个合适的线径。WAR可通过使用工具栏里的“WAR”命令按钮123来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。如果你想自己决定走线路径,只需在想要拐点处点击鼠标左键即可。在此过程的任何时刻,你都可以按ESC或者点击鼠标的右键来放弃画线。
为了简化原理图,我们可以用一条导线代表数条并行的导线,这就是所谓的总线。点击工具箱的总线按钮124,即可在编辑窗口画总线。
点击工具箱的125按钮,画总线的分支线,它是用来连接总线和元器件管脚的。画总线的时候为了和一般的导线区分,我们一般喜欢画斜线来表示分支线,但是这时如果WAR功能打开是不行的,需要把WAR功能关闭。画好分支线我们还需要给分支线起个名字。右键点击分支线选中它,接着左键点击选中的分支线就会出现分支线编辑对话框(Edit Wire Label)如图1所示。我们在Label标签下的String右边填上所起的分支线的名称。
如果在交叉点有电路节点,则认为两条导线在电气上是相连的,否则就认为它们在电气上是不相连的。笔者发现ISIS在画导线时能够智能地判断是否要放置节点。但在两条导线交叉时是不放置节点的,这时要想两个导线电气相连,只有手工放置节点了。点击工具箱的节点放置按钮126,当把鼠标指针移到编辑窗口,指向一条导线的时候,会出现一个“×”号,点击左键就能放置一个节点。
Proteus可以同时编辑多个对象,即整体操作。常见的有整体复制127、整体删除128、整体移动129、整体旋转130几种操作方式。
模拟调试
笔者用一个简单的电路来演示如何进行模拟调试。电路如图2所示。设计这个电路的时候需要在“Category(器件种类)”里找到“BATTERY(电池)”、“FUSE(保险丝)”、“LAMP(灯泡)”、“POT—LIN(滑动变阻器)”、“SWITCH(开关)”这几个元器件并添加到对象选择器里。另外我们还需要一个虚拟仪器——电流表。点击虚拟仪表按钮131,在对象选择器找到“DC AMMETER(电流表)”,添加到原理图编辑区。按照图2布置元器件,并连接好。我们在进行模拟之前还需要设置各个对象的属性。选中电源B1,再点击左键,出现了属性对话框,如图3所示。在“Component Reference”后面填上电源的名称;在“Voltage”后面填上电源的电动势的值,这里我们设置为12V;在“Internal Resistance”后面填上内电阻的值0.1Ω。其他元器件的属性设置如下:滑动变阻器的阻值为50Ω;灯泡的电阻是10Ω,额定电压是12V;保险丝的额定电流是1A,内电阻是0.1Ω。
点击菜单栏“Debug(调试)”下的132或者点击模拟调试按钮133的运行按钮,也可以按下快捷键“Ctrl+F12”进入模拟调试状态。把鼠标指针移到开关的134这时出现了一个“+”号,点击一下,就合上了开关,如果想打开开关, 鼠标指针移到135将出现一个“-”号,点击一下就会打开开关。开关合上后我们就发现灯泡已经点亮了,电流表也有了示数。把鼠标指针移到滑动变阻器附近的136分别点击,使电阻变大或者变小,我们会发现灯泡的亮暗程度发生了变化,电流表的示数也发生了变化。如果电流超过了保险丝的额定电流,保险丝就会熔断。可惜在调试状态下没有修复的命令。我们可以这样修复:按137按钮停止调试,然后再进入调试状态,保险丝就修复好了。
★ 电路设计
首先我们设计一个简单的单片机电路,如图4所示。电路的核心是单片机AT89C52,C1、C2和晶振B1构成单片机时钟电路; 单片机的P1口接8个发光二极管, 二极管的正极通过限流电阻接到电源的正极,两个按键SB1与SB2一端接到单片机的P3.2、P3.3脚,另一端接地。
★ 电路功能
按下按键SB1时,8个发光二极管从LED1到LED8轮流发光。当按下按键SB2时发光二极管熄灭。
★ 程序设计
程序主要有按键检测子程序、按键处理子程序、LED发光子程序等。
★ 程序的编译
该软件有自带的编译器,有ASM的、PIC的、AVR的汇编器等。在ISIS添加上编写好的程序,方法如下:点击菜单栏的“Source”,在下拉菜单点击“Add/Remove Source Files(添加或删除源程序)”,出现一个对话框,如图5所示。点击对话框的“NEW”按钮,在出现的对话框找到文件设计好的huayang.asm,点击打开;在“Code Generation Tool”的下面找到“ASEM51”,然后点击“OK”按钮, 设置完毕我们就可以编译了。点击菜单栏的“Source”,在下拉菜单点击“Build All”,过一会,编译结果的对话框就会出现在我们面前,如图6所示。如果有错误,对话框会告诉我们是哪一行出现了问题,可惜的是,点击出错的提示,光标不能跳到出错地方,但是能告诉出错的行号。
★ 模拟调试
选中单片机AT89C52,左键点击AT89C52,在出现的对话框里点击Program File后面的138按钮,找到刚才编译得到的HEX文件,然后点击“OK”按钮就可以模拟了。点击模拟调试按钮的运行按钮139,进入调试状态。点击按键SB1,看到发光二极管是否依次点亮,也试试按键SB2。
我们还可以单步模拟调试,点击140,进入单步调试状态,这时应该出现如图7所示对话框。在这个对话框里,我们可以设置断点。鼠标点击一下程序语句,此时这个语句变为黑色,点击右键,出现一个菜单,点击141按钮,就在相应的语句设置了断点,也可以点击右上角的142按钮,设置断点。点击143按钮可以取消断点。
在单步模拟调试状态下,点击菜单栏的“Debug”,在下拉菜单的最下面我们看到了如图8所示的情形。点击Simulation Log会出现和模拟调试有关的信息: 点击8051 CPU SFR Memory会出现特殊功能寄存器(SFR)窗口;点击8051 CPU Registers出现一般寄存器窗口;8051 CPU Internal (IDATA)Memory出现数据寄存器窗口。比较有用的还是Watch Window窗口,点击一下将出现图9的窗口,在这里可以添加常用的寄存器。在图9的窗口里点击右键,在出现的菜单点击Add Item(By name)就会出现图10的对话框,在这里我们选择P1,双击P1,这时,P1就出现在Watch Window窗口。我们可发现无论在单步调试状态还是在全速调试状态,Watch Window的内容都会随着寄存器的变化而变化,这点是很有用的。
在网站 http://www.labcenter-electronics.com上可以下载Proteus的试用版(试用版没有存盘功能),最新版本是SP6.6。下载时需要你填写一下所需要的组件,我们不妨都下载下来。在互联网上有几个网站有关于Proteus的论坛,读者朋友可以参考一下,中文网站有http://www.mcu-top.com,英文网站有http://discussions.labcenter-electronics.com。
文/徐全喜 尚荣华





