购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.5 呼吸灯的仿真与总结

在Proteus中绘制如图1.15所示的呼吸灯硬件电路原理图,其中所涉及的典型电路元器件参见表1.3。

表1.3 Proteus电路中的元器件列表

1.5.1 使用Proteus和MPLAB对PIC单片机进行仿真

Proteus作为一个硬件仿真环境,支持和MPLAB开发环境进行联合调试,可以对PIC16F877A应用系统进行综合仿真,其方法详细说明如下所述。

1.仿真流程

使用Proteus和MPLAB进行联合调试,首先要建立相应的仿真电路图和C语言的源文件,其详细操作步骤如下所述。

(1)参考1.3.6节介绍的Proteus硬件仿真环境的使用,新建一个Proteus ISIS电路图文件,绘制对应的电路图。

(2)参考1.2.7节介绍的PIC单片机的软件开发环境使用,新建一个PIC单片机的工程文件并且生成对应的.cof/.hex文件。

(3)双击Proteus电路中的PIC16F877A,弹出如图1.23所示的“Edit Component”对话框,在“Program File”选项中选择第二步中生成的.cof文件,并且参考图1.23设置好PIC16F877A的其他属性。

图1.23 PIC16F877A的“Edit Component”对话框

(4)单击“OK”按钮运行。

其具体参数介绍如下所述。

●Program File:编程文件,即在仿真中PIC16F877A所调用的可执行源文件。

●CKSEL Fuses:设置PIC16F877A的工作时钟频率相关熔断器位。

●BOOTRST:设置PIC16F877A的启动时间相关熔断器位。

●Advanced Properties:高级选项,通常来说,此选项内条目都设置为默认即可。

2.联合调试中仿真的运行控制

仿真的运行控制包括“Start/Restart Debugging”(启动仿真)、“Pause Animation”(暂停仿真)、“Stop Animation”(停止仿真),同时也可以使用快捷工具栏中的相应按键控制仿真,如图1.24所示,这四个按钮功能分别是启动仿真、单步运行、暂停仿真、停止仿真。

图1.24 快捷工具栏中的仿真运行控制

3.联合调试中的仿真数据记录

选择Debug菜单下的Simulation Log选项,会弹出如图1.25的记录窗体,其中记录了仿真中的一些相关信息,如果在仿真中出现错误或者警告,也会在其中体现。用户也可以通过单击仿真运行控制快捷工具栏右侧的“Messages”按钮来调出该记录窗体。

图1.25 仿真的记录窗体

4.PIC16F877A的内部资源观测窗口

单击“暂停”按钮,打开Debug菜单,可以看到如图1.26所示的PIC16F877A单片机内部资源观测窗口。

注意: 在设置PIC16F877A属性时,选择的执行文件必须为.cof文件。

下面详细介绍一下PIC16F877A单片机内部资源观测窗口各选项。

图1.26 PIC16F877A单片机内部资源观测窗口

(1)PIC CPU Source Code:PIC16F877A的源代码窗口,如图1.27所示,在其中可以进行相应的调试操作,如单步、断点等。

图1.27 PIC CPU Source Code窗口

(2)PIC CPUⅤariables:PIC16F877A的代码变量窗口,用于跟踪调试,观察相应变量的数据,如图1.28所示。

(3)PIC CPU Registers:PIC16F877A的内部寄存器观察窗口,用于显示仿真过程中PIC16F877A的内部寄存器数据状态,如图1.29所示。

(4)PIC CPU Data Memory:PIC16F877A的内部数据存储器观察窗口,用于显示仿真过程中PIC16F877A内部数据存储器数据状态,如图1.30所示。

图1.28 PIC CPUⅤariables窗口

图1.29 PIC CPU Registers窗口

(5)PIC CPU EPROM Memory:PIC16F877A的内部E 2 PROM寄存器的观察窗口,用于显示PIC16F877A的内部E 2 PROM的数据状态,如图1.31所示。

图1.30 PIC CPU Data Memory窗口

图1.31 PIC CPU EPROM Memory

(6)PIC CPU Program Memory:PIC16F877A的程序存储器观察窗口,可以看到当前用户代码对应的机器码存放状态,如图1.32所示。

图1.32 PIC CPU Program Memory

(7)PIC CPU Stack:PIC16F877A的堆栈观察窗口,用于显示当前PIC16F877A的堆栈状态,如图1.33所示。

注意: 除了这种仿真方式之外,还可以在MPLAB的Debugger→Select Tool中选择ProteusⅤSM来启动Proteus仿真,如图1.34所示。

图1.33 PIC CPU Stack

图1.34 在图MPLAB中启动Proteus仿真

启动仿真之后会打开一个Proteus的窗体,在其中选择对应的仿真电路之后,会在MPLAB上出现仿真控制按钮,此时即可开始仿真,如图1.35所示。

图1.35 在MPLAB中调用Proteus仿真

1.5.2 呼吸灯的仿真

增加两个电压探针和一个虚拟示波器,单击“运行”按钮,可以看到发光二极管以“呼吸”效果点亮和熄灭,同时在电压探针上可以看到对应的电压变化,如图1.36所示。

图1.36 呼吸灯的Proteus仿真

调节示波器,可以看到PIC单片机RC0引脚输出波形如图1.37所示,这是一个高电平宽度连续变化的波形。

图1.37 呼吸灯的PWM驱动波形

可以使用基于图表的仿真方式得到系统中RCL电路的响应曲线,如图1.38所示,从中可以看到发光二极管上的电流变化情况,与呼吸灯效果正好吻合。

总结: 在实际应用中,可以通过两种方式来调整呼吸灯的效果变化:第一种是修改PIC单片机输出的PWM驱动波形;另一种是修改RCL电路中电阻、电容、电感的大小。通常来说前一种方式更加方便一些,所以其应用更加广泛;具体到本实例中,只需要修改应用代码中的MAX和MIN这两个宏定义对应的数值即可。

图1.38 呼吸灯的RCL电路响应曲线 pTl709NcC9JtZSydPDsFLHmRGk2uuPep9lJg0ocmrpCJROt2LZMENNpzp3fGKu1m

点击中间区域
呼出菜单
上一章
目录
下一章
×