- 单片机技术与设备检修技能
- 刘雪雪主编
- 9364字
- 2020-08-28 14:56:03
任务2 单片机最小系统检测程序编写与仿真技能训练
工作任务:
学会使用单片机开发系统,编写程序用单片机控制I/O口使发光二极管隔灯亮。
知识目标:
1.了解单片机开发系统。
2.熟悉Keil μVision3软件的环境。
3.熟悉Proteus仿真软件的环境。
4.熟悉编程器软件的环境。
5.掌握C语言常量的使用方法。
技能目标:
1.能够初步使用Keil μVision软件编写简单程序并仿真。
2.Proteus软件画原理图并仿真。
3.掌握编程器的使用方法。
任务分析:
学习本任务首先要学习C51编程软件、编程的方法和软件调试的方法;然后学习单片机最小系统原理图的画法,并仿真调试程序;最后学习编程器的使用方法。下面通过编写单片机最小系统检测程序来学习以上内容。
1.5 单片机开发系统及功能
单片机开发系统是单片机应用系统设计的必需工具,包括计算机、单片机在线仿真器、工具软件、编程器等。
单片机开发系统的功能包括在线仿真、调试、软件辅助设计、目标程序固化等。
1.在线仿真功能
在线仿真器(In Circuit Emulator,ICE)是由一系列硬件构成的设备,它能仿真用户系统中的单片机,并能模拟用户系统的ROM、RAM和I/O端口,因此,处于在线仿真状态时,用户系统的运行环境和脱机运行完全“逼真”。
2.调试功能
开发系统对用户系统软、硬件调试功能的强弱,将直接关系到开发的效率。性能优良的单片机开发系统应具备下列调试功能。
(1)运行控制功能
开发系统应能使用户有效地控制目标程序的运行,以便检查程序运行的结果,对存在的硬件故障和软件错误进行定位。
单步运行:CPU从任意程序地址开始执行一条语句后停止运行。
断点运行:允许用户任意设置断点条件,启动CPU从规定地址开始运行后,当遇到断点条件(程序地址和指定断点地址符合或者CPU访问到指定的数据存储器单元等条件)符合以后停止运行。
全速运行:CPU从指定地址开始连续全速运行目标程序。
跟踪运行:类似单步运行过程,但可以跟踪函数内部运行状态。
(2)目标系统状态的读出修改功能
当CPU停止执行目标系统程序后,允许用户方便地读出或修改目标系统资源的状态,以便检查程序运行的结果,设置断点条件及设置程序的初始参数。
3.辅助设计设置功能
软件辅助设计功能的强弱也是衡量单片机开发系统性能高低的重要标志。单片机应用系统软件开发的效率在很大程度上取决于开发系统的辅助设计功能。
(1)程序设计语言
单片机程序设计语言包括机器语言、汇编语言和高级语言。
机器语言是单片机唯一能够识别的语言,程序的设计、输入、修改和调试都很麻烦,只能用来开发一些非常简单的单片机应用系统。
汇编语言具有使用灵活、实时性好的特点,是单片机应用系统设计常用的程序设计语言。但是采用汇编语言编写程序,要求编程人员必须对单片机的指令系统非常熟悉,并具有一定的程序设计经验,才能编制出功能复杂的应用程序,且汇编语言程序的可读性和可移植性都较差。
高级语言的通用性好,程序设计人员只要掌握开发系统所提供的高级语言使用方法,就可以直接编写程序。MCS-51系列单片机的编译型高级语言有PL/M51、C51、MBASIC-51等。高级语言对不熟悉单片机指令系统的用户比较适用,且具有较好的可移植性,是目前单片机编程语言的主流,本书采用的是C51编程语言。
(2)程序编译
几乎所有的单片机开发系统都能与PC连接,允许用户使用PC的编辑程序编写汇编语言或高级语言,生成汇编语言或高级语言文件的源文件;然后利用开发系统提供的交叉汇编或编译系统,将源程序编译成可在目标机上直接运行的目标;通过PC的串口或并口直接传输到开发机的RAM中。
一些单片机的开发系统还提供反汇编功能,并可提供用户宏调用的子程序库,以减少用户软件研制的工作量。
4.程序固化功能
当系统调试完毕,确认软件无故障时,应把用户应用系统的程序固化到程序存储器中脱机运行,编程器就是完成这种任务的专用设备,它也是单片机开发系统的重要组成部分。
1.6 单片机最小系统检测程序编写
要检测焊接的单片机最小系统运行是否正常,可通过单片机控制一盏LED灯亮来实现。
1.用单片机的P2.0控制一盏LED灯亮的方法
(1)如何使P2.0上的灯亮
要使P2.0上的灯亮,应使P2.0引脚上为低电平;要使P2.0上的灯暗,应使P2.0引脚上为高电平。
(2)如何用软件编程控制P2.0为低电平
如何使P2.0=0,可使用指令:P2_0=0;要使P2.0=1,可使用指令:P2_0=1。
(3)如何把P2_0=1转成计算机认识的机器语言
计算机只认识机器语言,P2_0=0是C语言,要把C语言转成机器语言,方法是用交叉汇编或编译系统,就是使用编译软件,把程序输入后编译,然后汇编成HEX文件。如用Keil C51编写并编译成机器语言,这个软件在下一个知识点中介绍。
2.控制编程
#include <AT89X52.h> //预处理命令 void main(void) //主函数名 { /* 这是第二种注释方式 */ P2_0=0; //让P2.0上的发光二极管亮 }
小提示:
头文件
所谓头文件,就是放在C51程序开头的文件。这些文件一般都是由C51开发商和芯片厂商提供的,这些文件的后缀为“h”,我们在程序的开头用#include<…>格式标注出来,C51在编译时首先会将标注的程序引用到编译器里,所以在使用时要确保这些文件的存在。以下是头文件的举例:
#include<AT89X52.H> //AT89X52系列芯片的头文件 #include<stdio.h> //键盘标准输入 #include<absacc.h> //包含数学的三角函数 #include<intrins.h>
头文件里包含了C51开发商编写的一些语言函数,如头文件AT89X52,包含芯片的引脚定义和功能电路的定义变量,这样可以直接使用。如我们要用单片机的P1.1引脚输出低电平,只要写P1_1=0就可以了。同样,有的头文件包含数学的三角函数。如果弄不清头文件的确切含义,不要紧,只要在程序开头附上上述几条就可以了。
接下来编写主函数main(),C语言没有主函数是无法运行的。
1.7 Keil μVision 3集成开发软件使用
MCS-51单片机开发系统是一种专门用来开发单片机系统或目标系统的微型计算机开发系统,而微型计算机开发系统实际上是一种特殊的微型计算机系统,专门用来调试微机应用系统的硬件和开发应用软件。无论是学习还是工程应用,单片机开发系统都是必不可少的工具。本任务首先介绍两种具有模拟调试器的集成开发环境,一种是德国Keil公司的Keil μVision3系列,另一种是英国Labcenter公司开发的单片机实物仿真系统Proteus软件。最后介绍SUPERPRO 280U编程器的使用和Atmel下载线的使用。
Keil μVision3 集成开发环境有编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的HEX文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存储器如Flash ROM中进行调试。
1.7.1 Keil μVision3软件的安装
先安装Keil μVision2,后安装Keil μVision3。注意安装在同一目录下。
安装Keil μVision2:安装盘下的setup子目录,运行setup.exe执行文件,按照逐级提示即可完成Keil μVision2的安装。在安装过程中,可以选择“Eval version”和“Full version”两种安装方式,前者有2KB的代码限制,后者没有代码限制,但需要使用者提供授权的安装序列号和用户名。Keil μVision2将各种文件分类安装在相应的目录,有的文件和单片机应用系统的设计和引用有关。因此要了解文件的存放位置。以Keil μVision2安装在C:\\Keil为例,则安装后生成的各类文件所对应的文件夹如表1-7所示。
表1-7 Keil Cx51安装后生成的各类文件夹
1.7.2 Keil 工程的建立
首先启动 Keil μVision3软件的集成开发环境,这里假设读者已正确安装了该软件,可以从桌面上直接双击Keil μVision3图标以启动该软件。
Keil μVision3启动后,出现的界面由标题栏、下拉菜单、快捷键工具栏、文件标题栏、编辑窗口、管理窗口和信息窗口等部分组成。在调试模式下,还可以打开观察窗口、寄存器窗口、存储器窗口和串行窗口等。编辑窗口的左边是工程管理窗口,该窗口有5个标签,分别是Files、Regs、Books、Functions和Templates,这5个标签页分别显示当前程序的文件结构、CPU的寄存器及部分特殊功能寄存器的值(调试时才出现)和所选源文件和文件中所用保留字。如果是第一次启动Keil μVision3那么这5个标签页全是空的。如果有文件,则如图1-13所示。
图1-13 Keil μVision3的界面
在编辑窗口中单击鼠标右键,弹出快捷菜单如图1-14所示。在项目管理窗口中,用鼠标右击管理窗口的目标系统(Target 1)或空白区域、源程序组(Source Group 1)或某个文件,都会弹出相应的快捷菜单,分别如图1-15与图1-16所示的快捷菜单。利用菜单中的选项可对当前项目、源程序组和指定的文件进行管理或设置操作。
图1-14 鼠标右击编辑窗口时弹出的菜单
图1-15 鼠标右击Target时弹出的菜单
图1-16 鼠标右击指定文件弹出的菜单
1.建立工程文件
在项目开发中,并不是仅有一个源程序就行了,还要为这个项目选择CPU(Keil 支持数百种CPU,而这些CPU的特性并不完全相同),确定编译、汇编、连接的参数,指定调试的方式,有一些项目还会有多个文件组成等,为管理和使用方便,Keil 使用工程(Project)这一概念,将这些参数设置和所需的所有文件都加在一个工程中,只能对工程而不能对单一的源程序进行编译(汇编)和连接等操作,下面我们就一步一步地来建立工程。
单击Project→New→μVision Project菜单,出现一个对话框,要求给将要建立的工程起一个名字,可以在编辑框中输入一个名字(建立以班级名的目录,在该目录下建立以LED8的子目录,在这个子目录取工程名为LED8。目的是便于管理文件),不需要扩展名。单击“保存”按钮,出现第二个对话框,如图1-17所示。这个对话框要求选择目标 CPU(即你所用芯片的型号),Keil支持的CPU很多,我们选择Atmel公司,单击Atmel前面的“+”号,展开该层,单击其中的89S52,然后再单击“确定”按钮,回到主界面。此时,在工程窗口的文件页面中,出现了“Target 1”,前面有“+”号,单击“+”号展开,可以看到下一层的“Source Group 1”,这时的工程还是一个空的工程,里面什么文件也没有。
图1-17 工程建立对话框
2.源文件的建立
使用菜单File→New或者单击工具栏的“新建文件”按钮,即可在项目窗口的右侧打开一个新的文本编辑窗口,在该窗口中输入以下C语言源程序:
# include <reg52.h> # include <stdio.h> main() { P2=0X55; }
保存该文件,注意必须加上扩展名(C语言源程序一般用.C为扩展名),这里假定将文件保存为 LED8.C。需要说明的是,源文件就是一般的文本文件,不一定使用Keil软件编写,可以使用任意文本编辑器编写,而且Keil的编辑器对汉字的支持不好,建议使用UltraEdit之类的编辑软件进行源程序的输入。
3.把源程序加入工程
单击“Source Group 1”使其反白显示,然后,单击鼠标右键,出现一个下拉菜单,如选中其中的“Add File to Group‘Source Group 1’”,出现一个对话框,要求寻找源文件,注意该对话框下面的“文件类型”默认为 C source file(*.c),也就是以C 为扩展名的文件。双击LED8.C文件,将文件加入项目。注意,在文件加入项目后,该对话框并不消失,等待继续加入其他文件,但初学时常会误认为操作没有成功而再次双击同一文件,这时会出现如图1-18所示的对话框,提示你所选文件已在列表中,此时应单击Add按钮,返回前一对话框,然后单击Close按钮即可返回主界面,返回后,单击“Source Group 1” 前的加号,会发现LED8.C 文件已在其中。双击文件名,即打开该源程序。
图1-18 把源程序加入工程
4.工程的详细设置
工程建立好以后,还要对工程进行进一步的设置,以满足要求。首先单击左边Project窗口的Target 1,然后使用菜单Project→Option for Target ′ Target1′,即出现对工程设置的对话框,这个对话框非常复杂,要全部搞清可不容易,好在绝大部分设置项取默认值就行了。设置对话框中的Target页面,如图1-19所示,Xtal后面的数值是晶振频率值,默认值是所选目标CPU的最高可用频率值,对于我们所选的AT89S52而言是33MHz。
图1-19 Target页面
该数值与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。正确设置该数值可使显示时间与实际所用时间一致,一般将其设置成与硬件所用晶振频率相同,如果没必要了解程序执行的时间,也可以不设,这里设置为11.0592MHz。
Memory Model用于设置RAM使用情况,有3个选择项,Small是所有变量都在单片机的内部RAM中;Compact是可以使用一页外部扩展RAM,而Larget则是可以使用全部外部的扩展RAM。Code Rom Size用于设置ROM空间的使用,同样也有3个选择项,即Small模式,只用低于2KB的程序空间;Compact模式,单个函数的代码量不能超过2KB,整个程序可以使用64KB程序空间;Larget模式,可用全部64KB空间。Use on-chip ROM复选项,确认是否仅使用片内ROM(注意:选中该项并不会影响最终生成的目标代码量)。
Operating System项是操作系统选择,Keil提供了两种操作系统:Rtx tiny和Rtx full,关于操作系统是另外一个很大的话题了,通常我们不使用任何操作系统,即使用该项的默认值:None(不使用任何操作系统);off-Chip Code memory用以确定系统扩展ROM的地址范围,off-Chip Xdata memory组用于确定系统扩展RAM的地址范围,这些选择项必须根据所用硬件来决定,由于该例是单片应用,未进行任何扩展,所以均不重新选择,按默认值设置。设置对话框中的Output页面,如图1-20所示。这里面也有多个选择项,其中Create HEX File用于生成可执行代码文件(可以用编程器写入单片机芯片的HEX格式文件,文件的扩展名为.HEX),默认情况下该项未被选中,如果要写片做硬件实验,就必须选中该项,这一点是初学者易疏忽的,在此特别提醒注意。选中Debug Information将会产生调试信息,这些信息用于调试,如果需要对程序进行调试,应当选中该项。Browse Information是产生浏览信息,该信息可以用菜单 View→Browse来查看,这里取默认值。“Select Folder for Objects”按钮是用来选择最终的目标文件所在的文件夹,默认是与工程文件在同一个文件夹中。
图1-20 Output页面
Name of Executable用于指定最终生成的目标文件的名字,默认与工程的名字相同,这两项一般不需要更改。工程设置对话框中的其他各页面与C51编译选项、A51的汇编选项、BL51连接器的连接选项等用法有关,这里均取默认值,不做任何修改。以下仅对一些有关页面中常用的选项作一个简单介绍。Listing标签页用于调整生成的列表文件选项。在汇编或编译完成后将产生(*.lst)的列表文件,在连接完成后也将产生(*.m51)的列表文件,该页用于对列表文件的内容和形式进行细致的调节,其中较常用的选项是“C Compile Listing”下的“Assamble Code”项,选中该项可以在列表文件中生成C语言源程序所对应的汇编代码。C51标签页用于对Keil的C51编译器的编译过程进行控制。
设置完成后返回主界面,工程文件建立、设置完毕。
5.编译、连接
在设置好工程后,即可进行编译、连接。选择菜单Project→Build target,对当前工程进行连接,如果当前文件已修改,软件会先对该文件进行编译,然后再连接以产生目标代码;如果选择Rebuild All Target Files将会对当前工程中的所有文件重新进行编译然后再连接,确保最终生产的目标代码是最新的,而Translate项则仅对该文件进行编译,不进行连接。
以上操作也可以通过工具栏按钮直接进行。这是有关编译、设置的工具栏按钮,从左到右分别是:编译、编译连接、全部重建、停止编译、下载到Flash Memory和对工程进行设置。
编译过程中的信息将出现在输出窗口中的Build页面中,如果源程序中有语法错误,会有错误报告出现,双击该行,可以定位到出错的位置,对源程序反复修改之后,最终会得到如图1-21所示的结果,提示获得了名为LED8.hex的文件,该文件即可被编程器读入并写到芯片中,同时还产生了一些其他相关的文件,可被用于Keil的仿真与调试,这时可以进入下一步调试的工作。
图1-21 正确编译、连接之后的结果
1.7.3 用Keil C51软件模拟仿真
单击菜单栏的Debug→Start/Stop-Debug Session,显示图1-22所示的界面。然后单击Peripherals→I/O-Ports点→Port 2,如图1-23所示,结果显示如图1-24(a)所示。单击为全速运行或单击单步运行,仿真结果如图1-24(b)所示。如果要重新仿真可单击复位后再按上面的步骤重新仿真。
图1-22 仿真时的画面
图1-23 显示I/O端口仿真情况
图1-24 P2口仿真前后的状态
1.8 Proteus仿真软件使用
Proteus是英国Labcenter公司开发的电路分析、实物仿真系统。它可仿真、分析各种电路和集成IC,它最大的特点是可以支持许多型号的单片机的仿真,该软件的单片机仿真库里有51系列、PIC系列、AVR系列、摩托罗拉的68MH11系列等,另外还提供Schematic Drawing(原理图)与PCB(印制板)设计功能。它的元件库齐全,使用方便,是不可多得的电子电路设计辅助软件。Proteus还能与Keil目前世界上最好的51单片机的汇编和C语言的开发工具相结合,还可与MPLAB IDE等编译模拟软件结合。
1.8.1 模拟仿真ISIS界面简介
1.启动Proteus
执行“开始”→“程序”→“Proteus 7 Professional”→“ISIS 7 Professional”命令,出现Proteus 7的界面,如图1-25所示。
2.Proteus 7界面介绍
整个屏幕被分成七个区域。最上面是菜单栏,下面接着是工具栏,再下面左边是工具箱;右边很大的区域是编辑窗口,编辑窗口显示当前正在编辑的电路原理图;左上方是预览窗口,预览窗口通常显示整个电路图的缩略图。预览窗口的蓝色框标示出了图的边框,同时窗口上的绿色框标出在编辑窗口显示的区域。在预览窗口上单击鼠标左键,将会以单击位置为中心刷新编辑窗口;在左下方是对象选择器,对象选择器根据图标决定的当前状态显示不同的内容。显示对象的类型包括设备、终端、引脚、图形符号、标注和图形等。在某些状态下,对象选择器有一个Pick切换按钮,单击该按钮可以弹出库元件选取窗口。通过该窗口可以选择元件并置入元器件选择器,在今后绘图时使用;工具箱由三部分组成;左边的下方是元器件旋转工具,有4个按钮,分别是顺时针旋转、逆时针旋转、水平方向旋转、竖直方向旋转;左边的最下方是调试时所使用的快捷工具按钮。
图1-25 Proteus 7界面
1.8.2 Proteus软件绘制单片机原理图的方法
1.用Proteus绘制单片机控制原理图
单击菜单File→New Design →Landscape A3 →OK按钮。
下面我们以绘制如图1-26所示的图形为例来介绍用ISIS设计电路图的方法。
(1)元器件的添加和放置
单击ISIS元器件选择器左边上面的图标,然后单击按钮,出现Pick Devices对话框,如图1-27所示。在这个对话框里选择元器件。在Category(器件种类)下面我们找到“Microprocessor IC”选项,使用鼠标左键单击,在对话框的右侧,会发现这里有大量的常见的各种型号的单片机。这里选择“AT89C52”选项,如图1-28所示。
在图1-28的右上方出现了AT89C52的SCH的图样,在下面出现了它的PCB的图样,这意味着我们在ISIS设计好原理图(SCH)后,还可以在Proteus的ARES里设计印制板(PCB)图。双击这个元件,则在左边的对象选择器里就有了AT89C52这个元件了,关闭选择器件窗口。在对象选择器窗口单击这个元件,然后把鼠标指针移到右边的原理图编辑区的适当位置,单击鼠标左键,这时就把AT89C52器件放到了原理图设计区,如图1-29所示。
图1-26 单片机控制8个发光二极管原理图
图1-27 Pick Devices对话框
图1-28 选择器件
图1-29 放置元件
下面把需要的另外的器件找到,并添加到对象选择器下。打开选择器件窗口,在Resistors选项,选择电阻功率,找到RES(电阻);在Capacitors选项,找到CAP(电容);在Miscellaneous选项,找到CRYSTAL(晶振);在Optoelectronics选项,找到LED-YELLOW(黄色发光二极管),在这里有各种颜色的二极管可以选择。如果你需要开关或按钮可在Switches&Relays选项,找到SWITCH (开关)或BUTTON(按钮);其实如果知道元器件的名称,也可以在Pick Devices对话框的左上方Keywords的下面,输入要添加的元器件名字,就会自动的找到器件所在的位置。接着把需要的元器件添加到原理图设计区,方法同放置AT89C52一样。
(2)放置电源及接地符号
单击工具箱的“接线端”图标,在对象选择器里单击地Vss,鼠标移到原理图编辑区,使用鼠标左键单击即可放置接地符号;类似地单击电源符号→放上电源Vcc,也可以放到原理图编辑区。
(3)元器件的编辑
在设计电路图时,要不断地调整元器件的位置和朝向以及改变元器件的属性。操作如下:
选中元器件:用鼠标指向元器件并单击鼠标右键可以选中该元器件。该操作选中元器件并使其高亮显示,然后可以进行编辑。
调整元器件的朝向:通过4个按钮可对许多类型的对象进行朝向为0°、90°、270°、360°的调整或X轴Y轴镜像。
改变元件的属性:元器件一般具有图形或文本属性,这些属性可以通过一个对话框进行编辑。编辑单个对象的步骤如下:
先选中元器件,如用鼠标指向对象并右击“RES”电阻,被选中的对象显示红色。然后用鼠标左键单击元器件,此时出现属性编辑对话框。图1-30是电阻的编辑对话框,这里可以改变电阻的标号和它的电阻值以及是否把这些东西隐藏(默认为显示)等。修改电阻值,在“Resistance”栏中把电阻改为470,单击OK按钮。
改变编辑对象文本属性元件、端点、线和总线的文本属性都可以像元件一样编辑。
(4)在两个对象间连线
使用鼠标指向一个元器件的连接点,出现一个“×”形状时,单击元器件的连接点,移动鼠标到另一点。
图1-30 电阻编辑对话框
(5)画总线和总线分支线
利用总线方式可以节省画线的时间,并且画出的电路图简洁、美观、清晰。单击工具箱的总线按钮BUS,即可在编辑窗口画总线。这时画出的总线与其他元器件还没有任何电气连接关系。注意,画的时候是粉红色的线,单击鼠标右键退出画线状态,此时粉红色的线变成了较粗的蓝色的线。接着单击工具箱的Wire Label按钮画总线的分支线,分支线用来连接总线和元器件。画了分支线、总线后,这些分支线的总线就和元器件有了电气连接关系。画总线分支线有一个技巧:当画好一条分支线后,如果还需要重复画几条,可以在元器件的引脚上双击鼠标的左键,立刻就会出现和刚才画好的分支一样的分支线了。
画好数条分支线后,我们还需要给每条分支线起个名字,即总线标号,以区分它们。用鼠标右键单击分支线选中它,接着用鼠标左键单击选中的分支线就会出现分支线编辑对话框(Edit Wire Label)如图1-31所示。我们在Label标签下的String右边文本框填上起始的分支线标号的符号AD0,其他的设置默认即可。如果要连续为分支线标号,可在图1-31所示的对话框中,在Label标签下的String右边文本框填上要标的总线标号名字,如“AD\[0..7\]”,注意括号是英文状态下的,括号的内容是总线的起始号码,两个点,以及结束号码。然后,再选中一条分支线,在出现的分支线编辑对话框中,单击String后面的下三角按钮,可看到了“AD0、AD1、…、AD7”的标号名字,选择其中的一个作为这条分支线的名字即可。
图1-31 分支线编辑对话框
(6)删除元器件
用鼠标指向选中的元器件并单击鼠标右键可以删除该元器件,同时删除该元器件的所有连线。
(7)移动多个元器件
用鼠标选中要移动的元器件,单击移动按钮,拖动鼠标到要放置的位置,然后再单击鼠标左键。
(8)复制多个元器件
用鼠标选中要移动的元器件,单击复制按钮,拖动鼠标到要放置的位置,然后再单击鼠标左键。
2.加载目标文件
在 Proteus的ISIS中,右击单片机AT89C52,再单击AT89C52,在出现的对话框中单击“Program File”后面的按钮,找到刚才编译得到的 “led8.hex”文件,如图1-32所示,然后单击OK按钮。下面就可模拟了。
图1-32 添加目标文件
3.运行程序
在屏幕左下方有模拟仿真运行的工具条,它们分别是连续运行、单步运行、暂停、停止。单击模拟调试按钮的运行按钮,进入调试状态。看到P2口的发光二级管隔灯亮,如图1-33所示。
图1-33 仿真效果
4.Keil μVision 4与Proteus 7.7 SP2联调仿真和设置
(1)Keil与Proteus连接
Keil与Proteus连接,连接开始必须在Proteus安装目录下将VDM51.dll文件复制到Keil安装目录的\\C51\\BIN目录中(如果找到可以自己下载,并复制一份到Labcenter Electronics\\Proteus 7 Professional\\BIN)。
(2)修改Keil安装目录下 Tools.ini文件
用记事本(其他的编辑软件也可以,如Ultra Edit)打开Keil根目录下的Tools.ini文件,在“C51”栏目下加入TDRV3=BIN\\VDM51.DLL ("Proteus VSM Monitor-51 Driver" ),如图1-34所示,其中“TDRV9”中的“9”要根据实际情况写,不要和原来的重复。
图1-34 Tools.ini文件修改
(3)在Keil中编写MCU的程序
进入Keil的Project菜单中的Options for Target ′工程名′。在Debug选项卡中右栏上部的下拉菜单中选择Proteus VSM Monitor-51 Driver选项,如图1-35所示。
图1-35 Debug选项设置
决策
单片机最小系统检测程序方案决策
编程软件采用Keil μVision3。仿真可以用Keil μVision3软件,但不如用Proteus直观。
单片机最小系统检测程序可以采用给某个I/O口全亮,但如果有一盏灯常亮,就检测不出。采用隔灯亮控制,硬件调试时会更方便,只要正插一次,反插一次,8个灯的电路情况就全部显示。
工作任务实施
技能训练1-2
单片机最小系统检测程序编写与仿真技能训练
一、工作任务
学会使用单片机开发系统,编写程序用单片机控制I/O口使发光二极管隔灯亮。
二、设备检查、软件安装
1.计算机上安装Keil软件、Proteus软件、SUPERPRO 280U编程器软件。
2.SUPERPRO 280U编程器一只。
三、训练实施过程
1.用Keil μVision3软件编写I/O口控制一盏灯亮程序。
2.用Keil μVision3软件仿真调试软件。
3.用Proteus软件绘制单片机最小系统原理图,并下载仿真调试。
任务评价
实验报告要求
1.画出最小系统原理图。
2.你在焊接单片机最小系统过程中遇到什么困难?你是怎么解决的?