Proteus软件能对单片机应用系统同时进行软件和硬件的仿真,为设计单片机应用系统提供一个非常好的平台。
本书采用Proteus 7.1中文版,其特点如下。
(1)实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS—232动态仿真、I 2 C调试器、SPI调试器、键盘和LCD系统仿真的功能,还有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
(2)支持主流单片机系统的仿真。
目前支持的单片机类型有68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列及各种外围芯片。
(3)提供软件调试功能。
Proteus仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态。同时,还支持第三方的软件编译和调试环境,如Keil C51等软件。
(4)具有强大的原理图绘制功能。
在Proteus仿真系统中可以快速、方便地绘制出单片机应用系统的原理图。
本节通过一个实例来感受Proteus的强大功能。
(1)打开配套光盘中的“仿真实例\第二章\ ex1”文件夹,双击“ex1.DSN”彩色图标,弹出图2-1所示的Proteus仿真原理图。
(2)用鼠标右键单击单片机AT89C51(标号U1),则弹出图2-2所示的单片机属性对话框。单击“Program File”文本框右侧的文件打开按钮 ,选取目标文件ex1.hex。
图2-1 播放音乐的Proteus仿真原理图
图2-2 单片机属性对话框
(3)在“Clock Frequency”(时钟频率)文本框中输入11.0592MHz,使仿真系统以此频率运行。
(4)单击“OK”按钮,再单击“调试”菜单下的“执行”命令,或者按下“F12”键,或者直接单击仿真工具栏中的按钮 ,系统就会启动仿真。只要计算机上接有音箱,就会听到优美的音乐。
注:如果不特别说明,本书所有实例均采用11.0592MHz的频率进行仿真。
本书只介绍Proteus 智能原理图输入系统(ISIS)的工作环境和基本操作。
单击“开始”→“程序”→“Proteus 7.1 Professional”→“ISIS 7.1 Professional”,即可进入图2-3所示的Proteus ISIS集成环境。Proteus ISIS的工作界面是一种标准的Windows界面,下面简单介绍各部分的功能。
图2-3 Proteus ISIS集成环境
原理图编辑窗口用来绘制原理图。它也是各种电路、单片机系统的 Proteus仿真平台。方框内为可编辑区,元器件要放到它里面。
注意 :原理图编辑窗口没有滚动条,可通过预览窗口改变原理图的可视范围。
预览窗口可显示两个内容:一个是在元器件列表中选择一个元器件时,显示该元器件的预览图;另一个是鼠标焦点落在原理图编辑窗口时,显示整张原理图的缩略图,并会显示一个绿色的方框,绿色的方框里面的内容就是当前原理图窗口中显示的内容。通过改变绿色方框的位置,可以改变原理图的可视范围。
对象选择器用来选择元器件、终端、图表、信号发生器、虚拟仪器等。对象选择器上方有一个条形标签,用以表明当前所处的模式及其下所列的对象类型。如图2-4所示,当前模式为“选择元器件模式”,选中的元器件为“BUTTON’”。选中后,该元器件即出现在预览窗口。单击“P”按钮可将选中的元器件放置到原理图编辑区。
图2-4 对象选择器
表2-1列出了工具栏分类及图标。
表2-1 Proteus工具栏分类
下面仅介绍Proteus独有的工具。
(1)显示命令
➢ :显示/不显示网格点切换
➢ :显示/不显示手动原点
➢ :以鼠标所在点的中心进行显示
➢ :放大
➢ :缩小
➢ :查看整张图
➢: 查看局部图
(2)主模式选择工具
➢ :用于即时编辑元器件参数(先单击该图标,再单击要修改的元器件)
➢ :选择元器件(默认选择)
➢ :放置连接点
➢ :放置网络标号连接标签(用总线时会用到)
➢ :放置文本
➢ :用于绘制总线
➢ :用于放置子电路
(3)小工具箱
➢ :终端接口,有VCC、地、输出、输入等接口
➢ :元器件引脚,用于绘制各种引脚
➢ :仿真图表,用于各种分析,如Noise Analysis
➢ :录音机
➢ :信号发生器
➢ :电压探针,使用仿真图表时要用到(连于电路结点可显示电压)
➢ :电流探针,使用仿真图表时要用到
➢ :虚拟仪表,有示波器等(可显示工作波形)
(4)转向工具
➢ :顺时针旋转90°
➢ :逆时针旋转90°
➢ :显示元器件放置角度
➢ :元器件水平翻转
➢ :元器件垂直翻转
(5)仿真运行控制按钮
➢ :从左至右依次是运行、单步运行、暂停、停止
下面列出了Proteus不同于其他Windows软件的操作特性,必须熟练掌握。
(1)在元器件列表左键选择后可放置元器件。
(2)用鼠标右键单击元器件后可弹出编辑菜单。
(3)双击鼠标右键可删除元器件。
(4)先用鼠标右键单击后用鼠标左键单击编辑元器件属性。
(5)连线用鼠标左键,可通过双击鼠标右键来删除画错的连线。
(6)改连接线走线方式,可先用鼠标右键单击连线,再用鼠标左键拖动。
(7)滚动鼠标中键可放缩原理图。
本实例采用 Proteus软件绘制图 2-5所示的仿真原理图,再将编译好的流水灯控制程序ex2.hex载入单片机。启动仿真,观察流水灯点亮效果。所需添加的元器件如表2-2所示。
图2-5 单片机控制流水灯的仿真原理图
表2-2 实例所需元器件表
打开 Proteus ISIS工作界面,执行菜单命令“文件”→“新建设计”,弹出选择模板对话框,选择DEFAULT模板,再单击“OK”按钮,然后单击“保存”按钮,在弹出的图 2-6所示的“智能原理图文件保存”对话框中设置好保存路径,在“文件名”文本框中输入“ex2”后,单击“保存”按钮,则完成新建设计文件的保存,文件自动保存为“ex2.DSN”。
图2-6 智能原理图文件保存对话框
单击图 2-4所示的元器件选择器上的“P”按钮,弹出元器件库选择对话框,如图 2-7所示。
图2-7 元器件库选择对话框
1)添加单片机
在“Keywords”(关键字)文本框输入“AT89C51”,则在元器件预览窗口中分别显示出元器件的类型及相应的原理图符号和封装符号,如图2-8所示。在预览结果中选中“AT89C51”,再单击“OK”按钮,或者直接双击“AT89C51”,均可将元器件添加到对象选择器。
图2-8 元器件预览对话框
2)添加电阻
打开元器件库选择对话框,在“Keywords”文本框中输入“resistors”,在结果中看到各种类型的电阻。再在图 2-9所示的“Keywords”文本框中接着输入“470r”,结果中则专门显示出各种功率的 470Ω电阻。因为这里只需小功率电阻,因此在元器件描述窗口双击“470R 0.6W”电阻,将其添加到对象选择器。
图2-9 添加470Ω电阻
用同样方法添加10kΩ电阻(0.6W)到对象选择器。
3)添加发光二极管
打开元器件库选择对话框,在“Keywords”文本框中输入“led-yellow”(黄色)。结果中只有一种黄色发光二极管类型,双击该器件,将其添加到对象选择器。
4)添加晶振
打开元器件库选择对话框,在“Keywords”文本框中输入“crystal”,结果中只有一种晶振类型,双击该器件,将其添加到对象选择器。
5)添加电容
(1)添加33pF电容
打开元器件库选择对话框,先在“Keywords”文本框中输入“capacitors”,可在结果中看到各种类型的电容,在“Keywords”文本框中接着输入“30pF”,结果中则专门显示出各种型号的30pF电容。在元器件描述窗口任选一个“50V”电容,双击将其添加到对象选择器。
(2)添加10μF电解电容
打开元器件库选择对话框,先在“Keywords”文本框中输入“capacitors”,可在结果中看到各种类型的电容,在“Keywords”文本框中接着输入“10μ”(不要输入 10μF),结果中则专门显示出各种型号的10μF电容。在元器件描述窗口选择“50V Radial Electrolytic”(圆柱形电解电容),双击将其添加到对象选择器。
元器件添加完毕后对象选择器中的元器件列表如图2-10所示。
图2-10 对象选择器中的元器件列表
下面以单片机“AT89C51”的放置为例来说明元器件的放置与编辑方法。
1)放置
在元器件列表中,选择“AT89C51”,然后将光标移到原理图编辑区,在任意位置单击鼠标左键,即可出现一个随光标浮动的元器件原理图符号,如图 2-11所示。移动光标到适当位置单击即可完成该元器件的放置。放置后的单片机符号如图2-12所示。
图2-11 随光标浮动的单片机符号
图2-12 放置后的单片机符号
2)移动和旋转
用鼠标右键单击“AT89C51”,弹出图2-13所示快捷菜单。从中选择菜单项即可进行相应的编辑。例如,本例需要对单片机进行垂直翻转操作,所以单击“Y-Mirror”,即可实现单片机的垂直翻转。
图2-13 在元器件上单击鼠标右键弹出的快捷菜单
3)删除
用下面3种方法可将原理图上的单片机删除。
(1)用鼠标右键双击单片机AT89C51,可将其删除。
(2)用鼠标左键框选AT89C51,再按“Delete”键,可将其删除。
(3)用左键按住AT89C51不松,同时按“Delete”键,可将其删除。
4)属性设置
本例需要对单片机AT89C51进行属性设置。
单击图 2-13所示的“Edit Properties”命令,弹出元器件属性设置对话框,属性设置如图2-14所示。例如,在“Clock Frequency”文本框中输入“11.0592MHz”,即可将单片机的时钟频率设置为11.0592MHz。
图2-14 单片机AT89C51的属性设置
用类似的方法放置和编辑其他元器件,放置后各元器件的位置如图2-5所示。
Proteus编辑环境默认的网格单位是100th,这也是移动元器件的步长单位,可根据需要进行修改。如图2-15所示,执行菜单命令“查看”→“Snap 0.1in”即可将网格单位设置为100th(0.1in=100th)。若需要对元器件进行更精确的移动,可用同样的方法将网格单位设置为50th或10th。
图2-15 网格单位的设置
单击图 2-16所示小工具箱的终端按钮,则在对象选择器中显出各种终端符号,从中选择“POWER”,可在预览窗口看到电源的符号。此时,将光标移到原理图编辑区,即可看到一个随光标浮动的电源终端符号。将光标移动到适当位置,单击即可将电源终端符号放置到原理图中。然后再在电源终端符号上双击鼠标左键,弹出“Edit Terminnal Label”对话框,如图 2-17所示。在“String”文本框中输入“VCC”,最后单击“OK”按钮完成电源终端的放置。
图2-16 电源终端的放置
图2-17 电源终端的编辑
用同样的方法放置“地”终端。
单击主模式选择工具中的总线图标 ,可在原理图中放置总线。其放置方法及放置位置如图2-18所示。
图2-18 放置总线
系统默认自动捕捉功能有效,只要将光标放置在要连线的元器件引脚附近,就会自动捕捉到引脚,单击鼠标左键就会自动生成连线。当连线需要转弯时,只要单击鼠标左键即可转弯。图2-19所示为在电源和电阻R8之间布线操作。
图2-19 在电源和R8之间的布线操作
用类似的方法完成其他元器件之间的布线,布线效果如图2-5所示。
图2-5中各元器件引脚与单片机引脚通过总线的连接并不表示真正意义上的电气连接,需要添加网络标号。在Proteus仿真时,系统会认为网络标号相同的引脚是连接在一起的。
单击主模式选择工具 ,然后在需要放置网络端口的元器件引脚附近单击鼠标左键,则弹出图2-20所示的对话框。“String”文本框中输入网络标号“P10”,单击“OK”按钮即完成网络标号的添加。
图2-20 添加网络标号
其他网络标号的添加与此类似,其添加效果如图2-5所示。
设计完电路图后,执行菜单命令“工具”→“电器规则检查”,则弹出图2-21所示的电气规则检查结果对话框。如果没有错,则系统给出“No ERC errors found”的信息。
图2-21 电气规则检查结果
由于目前还没有学习单片机的程序设计,因此这里先使用编译好的一个流水灯控制程序来验证仿真效果。将配套光盘中“仿真实例\第二章\ex2”文件夹内的 ex2.hex载入单片机AT89C51(U1),再将其时钟频率设置为 11.0592MHz。最后单击仿真运行按钮 ,系统就会启动仿真。仿真效果如图 2-22所示。从图中可以看出,在某一时刻发光二极管 D4被点亮。
图2-22 流水灯控制电路的仿真效果
这个例子表明,Proteus仿真软件可以获得几乎和真实硬件电路一样的实验效果,为学习单片机提供了一个非常好的虚拟实验平台,节约了不少硬件投资。本书的绝大多数实验都将基于Proteus软件平台进行。