51单片机典型项目实战全能一本通(C语言版)(视频版)
上QQ阅读APP看书,第一时间看更新

1.6 单片机系统的原理电路设计与虚拟仿真

前面介绍了Proteus ISIS软件平台的基本功能及使用。本节通过一个“流水灯制作”的案例,介绍Proteus下的单片机系统原理电路的设计与虚拟仿真。

1.6.1 原理电路设计与虚拟仿真步骤

Proteus下的虚拟仿真在相当程度上反映了实际的单片机系统的运行情况,在Proteus开发环境下,单片机系统的设计与虚拟仿真分为3个步骤。

1. Proteus ISIS下的电路设计

首先在Proteus ISIS环境下设计单片机应用系统的电路原理图,包括选择各种元器件、外围接口芯片等,以及电路连接和电气检测等。

2. 源程序设计与生成目标代码文件

在Keil μVision 3软件平台上输入、编译与调试源程序,并最终生成目标代码文件(*.hex文件)。Keil μVision 3将在下一章介绍。

3. 调试与仿真

在Proteus ISIS平台下将目标代码文件(*.hex文件)加载到单片机中,并对系统进行虚拟仿真,这是本节要介绍的内容。在调试时也可以使用Proteus ISIS与Keil μVision 3进行联合仿真调试,请见后面的介绍。

单片机系统的原理电路设计及虚拟仿真整体流程如图1-22左侧的流程图所示。第1步“Proteus电路设计”在Proteus ISIS平台上完成。第2步“源程序设计”与第3步“生成目标代码文件”在Keil μVision 3平台上完成。第4步“加载目标代码、设置时钟频率”在Proteus ISIS下完成。第5步“Proteus仿真”在Proteus ISIS下的VSM模式下进行,其中也包含了各种调试工具的使用。图1-22中的第1步“Proteus电路设计”的步骤展开如图1-22右侧的流程图所示。

图1-22 Proteus电路设计与仿真流程

由图1-22右侧的流程图可以看到,用Proteus ISIS软件设计单片机系统电路原理图的各个步骤。下面以“流水灯的制作”的原理电路设计与虚拟仿真为例,详细说明具体操作。

1.6.2 新建或打开一个设计文件

1. 建立新设计文件

单击主菜单的“文件”→“新建设计”选项(或单击主工具栏的47400-00-23-2按钮)来新建一个文件。如果选择前者新建设计文件,会弹出图1-23所示的“新建设计”对话框,其中提供了多种模板,单击要选择的模板图标,再单击“确定”按钮,即可建立一个该模板的空白文件。如果直接单击“确定”按钮,则选用系统默认的DEFAULT模板。如果单击工具栏的47400-00-24-1按钮来新建文件,就不会出现图1-23所示的对话框,而直接选择系统默认的模板。

图1-23 “新建设计”对话框

2. 保存文件

按照上面的操作,为案例建立一个新的文件,在第一次保存该文件时,选择“文件”→“另存为”选项,弹出图1-24所示的“保存ISIS设计文件”对话框,在该对话框选择文件的保存路径和文件名“流水灯”后,单击“保存”按钮,就完成了设计文件的保存。这样就在“实验1(流水灯)”子目录下建立了一个文件名为“流水灯”的新设计文件。

图1-24 “保存ISIS设计文件”对话框

如果不是第一次保存,可选择“文件”→“保存设计”选项,或直接单击47400-00-24-4按钮。

3. 打开已保存的设计文件

选择“文件”→“打开设计”命令,或直接单击47400-00-24-5按钮,弹出图1-25所示的“加载ISIS设计文件”对话框。单击需要打开的文件名,再单击“打开”按钮即可。

图1-25 “加载ISIS设计文件”对话框

1.6.3 选择需要的元件到元件列表

电路设计前,先列出设计“流水灯”电路原理图需要的元器件,如表1-1所示。

然后根据表1-1选择元件到元件列表中。观察图1-2,左侧的元件列表中没有一个元件,单击左侧工具栏中的47400-00-25-2按钮,再单击器件选择47400-00-25-3按钮,出现Pick Devices窗口,在窗口的“关键字”栏中,输入AT89C51,此时在“结果”栏中出现“元件搜索结果列表”,并在右侧出现“元件预览”和“元件PCB预览”,如图1-26所示。在“元件搜索结果列表”中双击需要的元件AT89C51,这时在主窗口的元件列表中就会添加该元件。用同样的方法将表1-1中需要选择的其他元件也添加到元件列表中即可。

表1-1 流水灯所需元件列表

图1-26 Pick Devices窗口

所有元件选取完毕后,单击“确定”按钮,即可关闭Pick Devices窗口,回到主界面绘制原理图。此时的“流水灯”的元件列表如图1-27所示。

图1-27 元件已添加到元件列表

1.6.4 放置元件并连接电路

1. 元件的放置、调整与编辑

(1)元件的放置

单击元件列表中需要放置的元器件,然后将鼠标指针移至原理图编辑窗口中单击,就会在鼠标单击处有一个粉红色的元器件,移动鼠标指针选择合适的位置单击,此时该元件就被放置在原理图窗口了。例如,选择放置单片机AT89C51到原理图编辑窗口,具体步骤如图1-28所示。

图1-28 元件放置的操作步骤

若要删除已放置的元件,则单击该元件,然后按Delete键删除元件,如果进行了误删除操作,可以单击47400-00-26-4按钮恢复。

单片机系统电路原理图设计,除了元器件,还需要电源和地等终端,单击工具栏中的47400-00-26-5按钮,出现各种终端列表,单击元件终端中的某一项,上方的窗口中会出现该终端的符号,如图1-29(a)所示。此时可选择合适的终端放置到电路原理图编辑窗口中,放置的方法与元件放置相同。图1-29(b)为图1-29(a)列表中各项对应的终端符号。再次单击47400-00-27-1按钮时,即可切换回用户自己选择的元件列表,如图1-27所示。根据上述介绍,可将所有的元器件及终端放置到原理图编辑窗口中。

图1-29 终端列表及终端符号

(2)元件位置的调整

① 改变元件在原理图中的位置,单击需调整位置的元件,元件变为红色,移动鼠标指针到合适的位置,再释放鼠标即可。

② 调整元件的角度,用鼠标右键单击需要调整的元件,出现图1-30所示的菜单,选择菜单中的命令即可。

图1-30 调整元件角度的命令

(3)元件参数设置

双击需要设置参数的元件,出现“编辑元件”对话框。下面以单片机AT89C51为例,双击AT89C51,出现图1-31所示的“编辑元件”对话框,其中的基本信息如下。

图1-31 “编辑元件”对话框

• 元件参考:U1,有一个隐藏选项,可在其后打√,选择隐藏。

• 元件值:AT89C51,有一个隐藏选项,可在其后打√,选择隐藏。

• Clock Frequency:单片机的晶振频率为12MHz。

• “隐藏”选择,可在下拉列表中选择要隐藏的选项。

设计者可根据设计的需要,双击需要设置参数的元件,进入“编辑元件”对话框设置原理图中各元件的参数。

2. 电路元件的连接

(1)在两元件间绘制导线

按下元件模式47400-00-28-1按钮与自动布线器47400-00-28-2按钮时,两个元件导线的连接方法是:先单击第一个元件的连接点,移动鼠标指针,此时在连接点引出一条导线。如果想自动绘出直线路径,只需单击另一个连接点。如果设计者想自己决定走线路径,只需在希望的拐点处单击即可。需要注意的是,拐点处导线的走线只能是直角。在自动布线器47400-00-28-3按钮弹起时,导线可按任意角度走线,只需要在希望的拐点处单击,把鼠标指针拉向目标点即可,拐点处导线的走向只取决于鼠标指针的拖动。

(2)连接导线连接的圆点

单击连接点47400-00-28-4按钮,会在两根导线连接处或两根导线交叉处添加一个圆点,表示它们是连接的。

(3)导线位置的调整

要想调整导线的位置,可单击导线,导线两端各有一个小黑方块,单击鼠标右键,在快捷菜单(见图1-32)中单击“拖曳对象”命令,即可拖曳导线到指定的位置,也可旋转,然后单击导线,完成导线位置的调整。

图1-32 改变导线位置的菜单

(4)绘制总线与总线分支

① 总线的绘制。单击工具栏的47400-00-28-6按钮,移动鼠标指针到绘制总线的起始位置单击,便可绘制出一条总线。如想要总线出现不是90°角的转折,则使自动布线器47400-00-28-7按钮弹起,总线即可按任意角度走线,只需要在希望的拐点处单击,把鼠标指针拉向目标点,拐点处导线的走向只取决于鼠标指针的拖动。在总线的终点处双击,即可结束总线的绘制。

② 总线分支绘制。总线绘制完以后,有时还需绘制总线分支。为了使电路图专业和美观,通常把总线分支画成与总线成45°角的相互平行的斜线,如图1-33所示。注意,此时一定要让自动布线器47400-00-28-8按钮弹起,总线分支的走向只取决于鼠标指针的拖动。

绘制图1-33所示的总线分支,先在AT89C51的P0口右侧画一条总线,然后画总线分支。在元件模式按钮47400-00-28-9按下且自动布线器47400-00-28-10按钮弹起时,导线可按任意角度走线。先单击第一个元件的连接点,移动鼠标指针,在希望的拐点处单击,然后向上移动鼠标指针,在与总线成45°角相交时单击确认,就完成了一条总线分支的绘制。其他总线分支的绘制只需在其他总线的起始点双击,不断复制即可。例如,绘制P0.1引脚至总线的分支,只要把鼠标指针放置在P0.1引脚的口位置,出现一个红色小方框时双击,自动完成像P0.0引脚到总线那样的连线,这样可依次完成所有总线分支的绘制。在绘制多条平行线时也可采用这种画法。

图1-33 总线与总线分支及线标

(5)放置线标签

从图1-33中可看到与总线相连的导线上都有线标D0、D1…D7。放置线标的方法为:单击工具栏的47400-00-29-2图标,将鼠标指针移至需要放置线标的导线上单击,出现图1-34所示的Edit Wire Label对话框,在“标号”文本框中输入线标(如D0等),单击“确定”按钮即可。与总线相连的导线必须放置线标,这样具有相同线标的导线才能够导通。Edit Wire Label对话框除了填入线标外,还有几个选项,设计者根据需要选择即可。

图1-34 Edit Wire Label对话框

经过上述步骤的操作,最终绘制的“流水灯”电路原理图如图1-35所示。

图1-35 “流水灯”电路原理图

(6)在电路原理电路图中输入文字

如果想在电路原理图中的某个位置输入文字,可采用如下方法。例如,要在图1-35中的石英晶振上方输入“石英晶振”4个字,方法为:单击左侧工具栏中的图形文本模式47400-00-30-2按钮,然后单击电路原理图中要输入文字的位置,这时出现图1-36所示的“编辑2D图形文本”对话框。在“字符串”文本框中,输入文字“石英晶振”,然后设置字符的“位置”“字体属性”等选项。单击“确定”按钮后,在电路原理图中出现刚才添加的文字“石英晶振”,如图1-37所示。

图1-36 “编辑2D图形文本”对话框

图1-37 电路原理图中添加的文字

1.6.5 加载目标代码文件、设置时钟频率及仿真运行

1. 加载目标代码文件、设置时钟频率

电路图绘制完成后,把keil µVision 3下生成的“.hex”文件加载到电路图中的单片机内即可进行仿真了。加载步骤为:在Proteus ISIS中双击编辑区中原理图中的单片机AT89C51,出现图1-38所示的“编辑元件”对话框,在Program File文本框中,输入.hex目标代码文件(与.DSN文件在同一目录下,直接输入代码文件名“流水灯”即可,否则要写出完整的路径,也可单击文件打开47400-00-31-3按钮,选取目标文件)。在Clock Frequency文本框中输入12MHz,使该虚拟系统以12MHz的时钟频率运行。此时,即可回到原理图界面进行仿真了。

图1-38 “编辑元件”对话框

在加载目标代码时需要特别注意的是,运行时钟频率以单片机属性设置中的时钟频率(Clock Frequency)为准。

需要注意的是,因为在Proteus中绘制电路原理图时,8051单片机最小系统所需的时钟振荡电路、复位电路47400-00-31-4引脚与+5V电源的连接均可省略,Proteus已经默认,不影响仿真效果。所以本书案例在绘制硬件原理图时,有时为使电路原理图简洁、清晰,时钟振荡电路、复位电路、47400-00-31-5引脚与+5V电源的连接均省略不画。

2. 仿真运行

完成上述所有操作后,单击Proteus ISIS界面中的47400-00-31-6按钮(见图1-2左下角)运行程序即可。

这里再重温本章前面介绍的各种仿真运行按钮的功能。

47400-00-32-1:运行程序。

47400-00-32-2:单步运行程序。

47400-00-32-3:暂停程序。

47400-00-32-4:停止运行程序。