Proteus软件仿真教程.pdf
《Proteus软件仿真教程.pdf》由会员分享,可在线阅读,更多相关《Proteus软件仿真教程.pdf(72页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、我的毕业论文(二):Keil软件的基本用法 2007年 07 月 02 日 星期一 13:11 Keil Vision 是 Keil 公司(ARM 子公司)开发的一款用于 MCS-51 单片机开发的应用十分广泛的编译和调试软件。该软件可以编辑、编译汇编语言、C51语言,连接定位目标文件和库文件,创建 HEX 文件,调试目标程序等。Keil 软件功能强大,包含很多部分,本文我们主要使用 Keil Vision 来开发 C51 项目、调试程序并生成 HEX 文件来用于单片机开发。Keil Vision 是一款在 Windows下使用的集成开发环境,目前最新版本为 V3,本文中我们为了简便选用 V2
2、.0。下面我们就来熟悉一下 Keil 软件。首先安装软件,它的安装与 MedWin 一样简单,我们不做过多介绍。安装完成后,我们就可以使用软件了,打开软件,我们可以看到其界面,如下图所示:下面我们就来使用 Keil 软件开发我们的第一个项目。点击“Project”(工程)菜单下面的“New Project”(新建工程),我们来新建一个工程。软件弹出“Create New Project”(创建新工程)窗口。如下图所示:我们为工程输入文件名后,点击“保存”按钮,软件将弹出“Select Device for Target”(选择 MCU)窗口,如下图所示。我们只需根据自己工程的需要选择相应的 M
3、CU,然后点击“确定”按钮就可以了。在这里我们选择Atmel公司的AT89C51,这种类型的单片机与Intel的 8051 单片机完全兼容,但是它内含 4KB Flash 存储器,使用非常方便,而且在我国也较为流行。事实上,目前 AT89C51 已经被 AT89S51所淘汰,因为 AT89S51 加入了 ISP(在线可编程)功能,通过 Atmel公司或者自制的下载线就可以对片内 Flash 进行编程,使用更为方便。然而 AT89S51 与 AT89C51 除了 ISP 以外完全兼容,而且下面我们要说明的 Proteus 软件目前只能支持 AT89C51,所以本文将以 AT89C51来代替 80
4、51 使用,请大家注意。选择好相应的 MCU,点击窗口中的“确定”按钮以后,软件会弹出一个窗口询问是否将 8051 启动代码加入工程(如下图),由于我们不需要这段代码,所以我们点击“否”跳过就可以了。至此,我们完成了整个工程的初步建立。下面我们需要做的就是创建源文件并将我们的源文件加入工程。首先点击“File”下面的“New”菜单,或者直接点击工具栏中的新建按钮,软件将弹出源文件编辑窗口,我们可以在窗口中编辑源文件。编辑好的源文件如下图所示。接下来的操作有两点需要注意:1、加入 AT89C51 的头文件(当然,如果你选择了其他的 MCU,则加入相应的头文件):在要加入头文件的地方(一般是文件开
5、头),点击右键,选择点击弹出菜单(如下图)中的“Insert#include”即完成了头文件的添加。我们可以看到源文件中多了一行头文件包含代码“#include”。2、保存源文件:注意保存源文件时所书写的源文件扩展名决定了源文件的类型(C51 文件或者汇编语言源文件)。这里我们将源文件保存为“main.c”。你可以看出在源文件保存以后,文件中的关键字已经高亮显示,可以帮助我们及时发现错误。源文件编辑好以后,我们就可以将其添加到工程中了。如下图所示,右键点击“Project Workspace”窗口中的“Source Group 1”(如果你不能看到这个项目,你可以点击一下图中“Target 1
6、”前面的“+”号展开文件夹),这时软件将弹出如图所示的菜单。我们选择“Add Files to Group Source Group 1”,软件弹出添加源文件窗口,我们就可以将相应的源文件加入到工程了。下面我们还需要对工程作一些设置,以使其满足我们的要求。右键点击上图中的“Target 1”,软件将弹出工程菜单,如下图所示。我们选 择点击“Options for Target Target1”,软件将弹出工程设置窗口。在工程设置中其他的我们暂时不管,只需将“Output”选项卡下面的“Create HEX File”选中就可以了,如下图所示。这样,当我们调试工程项目时,软件将能够生成 HEX
7、文件,用来装入单片机,使之运行我们的指令。设置好以后,我们就可以编译、链接、调试我们的工程项目了。首先让我们来熟悉一下调试工具栏。在这个工具栏中我们只需了解左边的三个按钮。其中,调试工具栏中最左侧的按钮是“Translate current file”按钮,即编译按钮,用来编译当前文件;中间的按钮是“Build target”按钮,即建立工程按钮,用来编译、连接当前的工程,产生相应的工程目标文件,比如 HEX 文件;最右侧的按钮是“Rebuild all target files”按钮,即全部重建按钮,主要在工程文件有改动时使用,作用是全部重建整个工程,产生相应的目标文件。在整个工程生成 HE
8、X 文件以后,我们在 Keil 中的任务就算完成了。当然,你可以在 Keil 中进行各种调试。事实上,Keil 的功能十分强大,它能仿真单片机的各种功能。但是我们在此并不讨论它的这些功能。如果你想深入地学习 Keil 的各种功能和使用方法,请参阅相关参考文献。我的毕业论文(三):Proteus 软件使用简介 Proteus 软件是 Labcenter Electronics 公司的一款电路设计与仿真软件,它包括ISIS、ARES 等软件模块,ARES 模块主要用来完成 PCB 的设计,而 ISIS 模块用来完成电路原理图的布图与仿真。Proteus 的软件仿真基于 VSM 技术,它与其他软件最
9、大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51 系列、PIC 系列等等,以及单片机外围电路,比如键盘、LED、LCD 等等。通过 Proteus 软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。本文中由于我们主要使用 Proteus 软件在单片机方面的仿真功能,所以我们重点研究 ISIS 模块的用法,在下面的内容中,如不特别说明,我们所说的 Proteus 软件特指其 ISIS 模块。在进行下面的操作前,我先说明一点:我的 Proteus 版本是 7.1,如果你使用的是6.9以前的版本,可能你发现在鼠标操作上会略有不同。这主要表现在 6.9 以前的版本
10、鼠标左右键的作用与一般软件刚好相反,而 7.0 以后已经完全改过。下面我们首先来熟悉一下 Proteus 的界面。Proteus 是一个标准的Windows 窗口程序,和大多数程序一样,没有太大区别,其启动界面如下图所示:如图中所示,区域为菜单及工具栏,区域为预览区,区域为元器件浏览区,区域为编辑窗口,区域为对象拾取区,区域为元器件调整工具栏,区域为运行工具条。下面我们就以建立一个和我们在 Keil 简介中所讲的工程项目相配套的 Proteus 工程为例来详细讲述 Proteus 的操作方法以及注意事项。首先点击启动界面区域中的“P”按钮(Pick Devices,拾取元器件)来打开“Pick
11、 Devices”(拾取元器件)对话框从元件库中拾取所需的元器件。对话框如下图所示:在对话框中的“Keywords”里面输入我们要检索的元器件的关键词,比如我们要选择项目中使用的 AT89C51,就可以直接输入。输入以后我们能够在中间的“Results”结果栏里面看到我们搜索的元器件的结果。在对话框的右侧,我们还能够看到我们选择的元器件的仿真模型、引脚以及 PCB 参数。这里有一点需要注意,可能有时候我们选择的元器件并没有仿真模型,对话框将在仿真模型和引脚一栏中显示“No Simulator Model”(无仿真模型)。那么我们就不能够用该元器件进行仿真了,或者我们只能做它的 PCB 板,或者
12、我们选择其他的与其功能类似而且具有仿真模型的元器件。搜索到所需的元器件以后,我们可以双击元器件名来将相应的元器件加入到我们的文档中,那么接着我们还可以用相同的方法来搜索并加入其他的元器件。当我们已经将所需的元器件全部加入到文档中时,我们可以点击“OK”按钮来完成元器件的添加。添加好元器件以后,下面我们所需要做的就是将元器件按照我们的需要连接成电路。首先在元器件浏览区中点击我们需要添加到文档中的元器件,这时我们就可以在浏览区看到我们所选择的元器件的形状与方向,如果其方向不符合你的要求,你可以通过点击元器件调整工具栏中的工具来任意进行调整,调整完成之后在文档中单击并选定好需要放置的位置即可。接着按
13、相同的操作即可完成所有元器件的布置,接下来是连线。事实上 Proteus 的自动布线功能是如此的完美以至于我们在做布线时从来都不会觉得这是一项任务,而通常像是在享受布线的乐趣。布线时我们只需要单击选择起点,然后在需要转弯的地方单击一下,按照你所需走线的方向移动鼠标到线的终点单击即可。本例我们布线的结果如下图所示(仿真我们在上面的 Keil 操作介绍中的简单例子)。因为该工程十分简单,我们没有必要加上复位电路,所以这点在图中予以忽略,请大家注意。除此以外,你可能还发现,单片机系统没有晶振,这一点你需注意。事实上在 Proteus 中单片机的晶振可以省略,系统默认为 12MHz,而且很多时候,当然
14、也为了方便,我们只需要取默认值就可以了。下面我们来添加电源。先说明一点,Proteus 中单片机芯片默认已经添加电源与地,所以我们可以省略。然后在添加电源与地以前,我们先来看一下上面第一个图中区域的对象拾取区,我们在这里只说明本文中可能会用得到的以及比较重要的工具。l:(Selection Mode)。选择模式,通常情况下我们都需要选中它,比如布局时和布线时。l:(Component Mode)。组件模式,点击该按钮,能够显示出区域中的元器件,以便我们选择。l :(Wire Label Mode)。线路标签模式,选中它并单击文档区电路连线能够为连线添加标签。经常与总线配合使用。l :(Text
15、 Script Mode)。文本模式,选中它能够为文档添加文本。l :(Buses Mode)。总线模式,选中它能够在电路中画总线。关于总线画法的详细步骤与注意事项我们在下面会进行专门讲解。l:(Terminals Mode)。终端模式,选中它能够为电路添加各种终端,比如输入、输出、电源、地等等。l:(Virtual Instruments Mode)。虚拟仪器模式,选中它我们能够在区域中看到很多虚拟仪器,比如示波器、电压表、电流表等等。关于它们的用法我们会在后面的相应章节中详细讲述。好了,下面我们就来添加电源。首先点击,选择终端模式,然后在元器件浏览区中点击 POWER(电源)来选中电源,通
16、过区域中的元器件调整工具进行适当的调整,然后就可以在文档区中单击放置电源了。放置并连接好线路的电路图一部分如下图:连接好电路图以后我们还需要做一些修改。由上图我们可以看出,图中的 R1 电阻值为 10k,这个电阻作为限流电阻显然太大,将使发光二极管 D1 亮度很低或者根本就不亮,影响我们的仿真结果。所以我们要进行修改。修改方法如下:首先我们双击电阻图标,这时软件将弹出“Edit Component”对话框(见下图所示的对话框),对话框中的“Component Referer”是组件标签之意,可以随便填写,也可以取默认,但要注意在同一文档中不能有两个组件标签相同;“Resistance”就是电阻
17、值了,我们可以在其后的框中根据需要填入相应的电阻值。填写时需注意其格式,如果直接填写数字,则单位默认为;如果在数字后面加上 K 或者 k,则表示 k 之意。这里我们填入 270,表示 270。修改好各组件属性以后就要将程序(HEX 文件)载入单片机了。首先双击单片机图标,系统同样会弹出“Edit Component”对话框,如下图。在这个对话框中我们点击“Program files”框右侧的,来打开选择程序代码窗口,选中相应的 HEX 文件后返回,这时,按钮左侧的框中就填入了相应的 HEX 文件,我们点击对话框的“OK”按钮,回到文档,程序文件就添加完毕了。装载好程序,我们就可以进行仿真了。首
18、先来熟悉一下上面第一个图中区域的运行工具条。因为比较简单,我们只作一下介绍。工具条从左到右依次是“Play”、“Step”、“Pause”、“Stop”按钮,即运行、步进、暂停、停止。下面我们点击“Play”按钮来仿真运行,效果如下图所示,可以看到系统按照我们的程序在运行着,而且我们还能看到其高低电平的实时变化。如果我们已经观察到了结果就可以点击“Stop”来停止运行。我的毕业论文(四):计算机仿真辅助单片机指令系统的学习 2007年 07 月 04 日 星期三 14:41 计算机仿真对单片机指令系统的学习的帮助主要在于帮助理解,加强记忆,适当应用。能够在单片机指令系统学习中的软件主要是Med
19、Win,因为其操作简单,而且可以直观地看到结果。1.数据传送指令:数据传送类指令主要包括:MOV、MOVX、MOVC、PUSH、POP、XCH 等。下面我们通过一个简单的汇编程序来学习这些指令。例 1.汇编语言源文件如下图所示:在 MedWin 中编辑好源文件以后,以“.asm”为后缀保存为汇编源文件。然后进行编译、汇编并将代码装入内存进行仿真。由于本程序对寄存器、特殊功能寄存器、内部存储器、外部数据存储器都进行了操作,所以需要首先点击“查看”菜单下的相应子菜单打开相应的窗口,即寄存器、特殊功能寄存器、数据区 IData、数据区 XData,并可以根据需要点击“窗口”菜单下的选项来横向或纵向平
20、铺窗口。因为本程序需要一步一步地详细查看相应指令执行的结果,所以我们需要在执行指令时点击“指令跟踪(F7)”或“指令单步(F8)”按钮来单步执行。指令执行中的一个画面如下图所示:从图中我们能够清晰地观察到每一条指令执行的每一个结果,从而加深我们对这些指令的理解与记忆。除以上实例程序中所书写的以外,我们还可以使用其他的指令书写程序并在 MedWin 中仿真,比如 PUSH、POP、MOVC 等,相信你会得到一个很好的结果,而且 MedWin 肯定会提高你学习指令的兴趣。2.算术操作类指令 算术操作类指令主要有:ADD、ADDC、DA A、SUB、INC、DEC、MUL、DIV 等。算术操作类指令
21、比较复杂,掌握起来比较困难,但在实际的单片机项目应用中很少涉及,尤其是 MUL、DIV 两条指令,在 51 系列单片机中更是被束之高阁,很少使用。此处,我们不再像上节那样逐条书写并仿真课本上的程序,如果感兴趣,你可以仿照上节自己书写程序并进行仿真,观察并体会每一条指令执行的结果以及对系统的影响。这里我们通过一个比较实用的例子来演示仿真算术类指令的操作。例 2.两个压缩 BCD 码求和:将两个 BCD 码(每个占 4 位)分别放在一个字节的高 4 位和低 4 位即组成压缩 BCD 码。本例中有两个压缩 BCD 码数字,都是四位数,第一个数的高两位放在 20H,低两位放在 21H 中;第二个高低位
22、分别放在 30H、31H 中。要求所得结果放在40H、41H 中。汇编源程序如下图:在 MedWin 中编辑好源文件后,以“.asm”为后缀将其保存为汇编文件,然后进行编译、汇编并将代码装入内存进行仿真。你可以像上例那样步进观察其详细执行过程,分析原因;当然也可以在“ljmp$”处设置断点,然后全速运行。需要注意程序中使用到了内部存储器,所以你需要将数据区“IData”窗口调出来进行观察。运行的最后结果如下图所示:从图中我们能够很清楚地看到内部存储器相应单元的内容,进而观察到程序执行的结果,即:2097+4559=6656。3.逻辑运算指令、控制转移类指令 逻辑运算指令,顾名思义,是用于逻辑运
23、算的指令。主要包括:CLR、CPL、ANL、ORL、XRL 等常用逻辑指令以及循环移位指令如:RL、RLC、RR、RRC 等。控制转移类指令是指在程序中根据具体的条件(或者没有条件)使程序转移到相应的入口的指令。它主要包括三类指令:一是无条件转移指令,比如:AJMP、SJMP、LJMP 等;二是条件转移指令,比如:JZ、CJNE、DJNZ 等;三是子程序调用返回指令,比如:ACALL、LCALL、RET、RETI 等。鉴于单独针对逻辑运算指令进行的仿真十分简单(事实上与数据传送类指令相同),可以很容易、很方便地自己针对相应的指令设计程序来观察结果,进行学习。所以此处不再针对逻辑运算指令举例仿真
24、。而控制转移类指令又不可能单独使用,往往与其他指令结合使用来组成相应的程序,所以也无法单独进行仿真。所以下面我们就将逻辑运算类指令与控制转移类指令相结合来编写仿真程序,通过一个实例同时来仿真这两类指令的应用。例 3.十六进制整数转化为 BCD 码整数:4 位十六进制整数高低位依次放在 R3、R4 中,要求转换后的 BCD 整数按高低位顺序放在 R5、R6、R7 中。程序源文件如下图:在 MedWin 中编辑好源文件以后,将其以“.asm”为后缀保存为汇编源文件,然后编译、汇编并将产生的代码装入内存进行仿真调试。仿真前需要注意首先输入 R3、R4 设置十六进制初始值,具体设置方法如下。首先调出寄
25、存器窗口,然后在需要修改的寄存器名称或者数值上双击,这时其内容将变为可修改,我们在其中填入需要设置的数值(字母大小写均可)即可,如下图所示:设置好初始值以后,你可以单步观察几步以便明白其原理,然后就可以设置一个断点全速运行了,最后就可以看到所得到的结果,比如我们输入 8FD6,将得到结果:R5=03,R6=68,R7=22。4.位操作指令 位操作比较简单,我们也不再写实例进行仿真,如果你感兴趣,可以自己写一些针对相应指令的小程序来仿真之。这里我们主要说明一下仿真位操作指令与其他指令的不同及注意事项。位操作指令是对单片机内部存储器的位地址空间进行的相应操作,所以我们查看相应结果时应该打开相应窗口
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Proteus 软件 仿真 教程
限制150内