Proteus是英国Labcenter公司开发的用于电路设计与仿真的软件,它的最大特点在于除能对模拟、数字电路进行设计、仿真外,还可对嵌入式系统(如单片机系统)进行软件、硬件协同设计与仿真,集强大的功能与简易的操作于一体。如果大家从来没有接触过仿真软件,那本节将展示该软件在单片机系统设计与仿真中的强大功能。
首先,大家可以从网上找到Proteus软件的试用版并安装到计算机上(安装过程从略)。安装之后可从Windows操作系统的“开始”菜单的“程序”中找到一个名为“Proteus 7Professional”的文件夹(假设安装的是Proteus 7),单击文件夹中的“ ”命令即可启动Proteus,并打开如图4-2所示的软件界面。界面中有许多图标,各个图标实现的功能可参考附录D。
图4-2 Proteus软件界面
Proteus中有一些现成的单片机系统和其他电路实例,我们可以先打开来体验一下。以下操作过程在本书光盘中有演示。
单击菜单栏的“File”→“Load Design…”命令(或单击图标命令 ),在Proteus的安装目录下打开“SAMPLES”文件夹,如图4-3所示,在“SAMPLES”文件夹中打开“8051 LCD Driver”文件夹,其中有单片机控制液晶屏的演示实例,如图4-4所示。这个实例文件夹中只有一个文件“LCDDEMO”,如图4-5所示。双击它就会在Proteus界面的电路绘制区打开这个演示实例,如图4-6所示。
在图4-6中的电路绘制区中,左上角有一个实例说明,告诉我们实例的信息。电路图中电路符号“ ”是一个液晶屏,它在单片机的控制下显示信息。单击Proteus软件界面左下角的仿真开关“ ”以启动仿真。之后在仿真开关右侧的状态栏中出现仿真状态信息“ ”,说明Proteus正在为仿真进行编译,几秒后仿真开始,我们就会在液晶屏上看到了文字信息“!!AMAZING!!A virtual LM032L…”,如图4-7所示,说明单片机成功地运行了程序并控制液晶屏显示。
图4-3 打开Proteus的实例“SAMPLES”文件夹
图4-4 打开“8051 LCD Driver”文件夹
图4-5 选择“LCDDEMO”演示实例
图4-6 打开的单片机控制液晶屏实例
仿真成功说明图4-6的系统电路图是正确的,而下载到单片机中的程序也是正常的。那程序在哪里呢?在电路图中双击单片机的电路符号,打开器件编辑对话框,如图4-8所示。其中“Program File:”中的“LCDDEMO.HEX”就是为这个单片机控制液晶屏系统设计的程序文件。由于这是一个演示实例,所以已经事先加载好了。今后我们在Proteus仿真时在电路连接完成后需要手动向单片机添加类似的程序文件。
体验过Proteus的魅力后,我们开始亲手来实践一个单片机系统的仿真,以图3-42所示的单片机控制两支发光二极管交替发光为例学习仿真过程。以下操作过程在本书光盘中有演示。
图4-7 仿真开始后,液晶屏出现了文字
图4-8 打开器件编辑对话框
第一步,新建设计。单击“File”→“New Design…”命令(或单击图标命令 ),在Proteus中打开了一个空白的新电路图纸。
第二步,添加所需器件。单击“Library”→“Pick Device/Symbol…”命令(或单击图标命令 ),打开器件选择对话框,如图4-9所示。在对话框左上角有个关键字“Keywords”搜索文字框,如果我们知道器件型号可输入其中,Proteus将自动帮我们找到所需器件。首先,输入“80C51”,如图4-10所示。这是一种常用的51单片机,本书绝大多数仿真都使用这个型号。在右侧的结果列表中选择第一个器件“80C51”,并单击“OK”按钮。
图4-9 器件选择对话框
第三步,放置器件。在电路绘制区中央单击鼠标,80C51单片机就被放置到了电路图中,如图4-11所示。参考单片机的放置方法,把如图3-42所示的其他器件如晶振、电容、电阻、发光二极管等也放置到电路图中的适当位置。这几个器件在器件选择对话框中的关键词分别为:crystal、22p、electrolytic、0.6W resistor、LED(关键词并不唯一),如图4-11~图4-16所示。所有元器件都放置到电路图后的效果如图4-17所示。
图4-10 添加80C51单片机
图4-11 放置器件
图4-12 晶振Y1的选择及添加
图4-13 电容C1、C2的选择及添加
图4-14 电解电容C3的选择及添加
图4-15 电阻R1、R2的选择及添加
图4-16 发光二极管D1、D2的选择及添加
图4-17 所有元器件都放置完毕
第四步,放置电源。如图3-42所示的单片机系统还有一些电源端,在Proteus仿真中需要把电源端也放置到电路中。单击端口图标“ ”,如图4-18所示,在端口窗口中出现一个列表,其中“POWER”为正电源端口,“GROUND”为接地端口。分别单击后按如图3-42所示添加到电路图中,由于Proteus已经为单片机供电了,所以不需要在仿真中再连接供电端。
图4-18 添加电源端
第五步,移动、旋转、删除器件。放置到电路图中的器件和电源端比较零乱,需要通过移动、旋转来美化布局。用鼠标左键选中想要移动的器件或对象,器件或对象变成红色说明被选中,然后按住鼠标左键拖动目标即可。在电路图空白区域单击左键可取消选择。要想旋转目标,先左键选中,然后单击旋转图标“ ”,在弹出的对话框中输入要旋转的角度,确定后目标即被旋转。也可以在目标上单击鼠标右健,从弹出的菜单中选择“ ”(顺时针旋转90°)、“ ”(逆时针旋转90°)、“ ”(旋转180°)进行相应的旋转。如果想删除电路图中的器件,可以在选中目标的基础上按下键盘上的“Delete”按键或在右键快捷菜单中选择“ ”实现。通过编辑之后,得到器件的合理布局,如图4-19所示。
图4-19 编辑器件
第六步,修改参数。有些器件或电源端需要对参数进行修改,比如晶振的频率等。方法是先用双击目标,弹出参数编辑对话框,如图4-20所示。把其中的频率“Frequency:”修改为12MHz,单击“OK”按钮完成设置。而对于电源端来说,可根据设计把所有目标设置成“VCC”或者“GND”,如图4-21所示。
图4-20 参数编辑对话框
图4-21 电源端的设置
第七步,连接导线。完成器件放置和编辑后,根据电路图连接导线。方法是把鼠标移到器件或电源端的管脚附近,当管脚出现红色方框“ ”后,单击左键则导线生成,移动鼠标到另一个器件或电源端的管脚附近,当再次出现红色方框后,再次单击左键就完成连接。按照这个方法,并参考图3-42可实现仿真电路的导线连接,如图4-22所示。
图4-22 连接导线
第八步,加载单片机程序文件。完成电路图的绘制后,单片机系统的仿真万事俱备,只欠程序文件这个东风。双击电路图中的单片机,在打开的编辑对话框中单击“Program File:”后的打开图标“ ”,加载光盘中的程序文件,路径为“…\程序代码\程序3-1:单片机控制发光二极管交替发光(对应图3-42)\交替发光.HEX”,如图4-23所示,双击“交替发光.HEX”,程序3-1加载到了仿真电路中。这个以.HEX为后缀的程序文件的生成方法下一节将会谈到。
图4-23 加载程序文件
第九步,仿真。单击Proteus软件左下角的仿真开关“ ”,仿真启动。几秒后,仿真开始,会看到两个发光二极管以500ms为间隔在交替发光,如图4-24所示。
图4-24 仿真启动
这样,我们通过对一个单片机控制两个发光二极管交替发光的实例,演示了Proteus的使用方法和仿真功能,它的魅力可见一斑。在学习过程中可随时打开Proteus来验证实例或自己的设想。