keilμVision4教程.docx

上传人:b****8 文档编号:10834308 上传时间:2023-02-23 格式:DOCX 页数:50 大小:1.05MB
下载 相关 举报
keilμVision4教程.docx_第1页
第1页 / 共50页
keilμVision4教程.docx_第2页
第2页 / 共50页
keilμVision4教程.docx_第3页
第3页 / 共50页
keilμVision4教程.docx_第4页
第4页 / 共50页
keilμVision4教程.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

keilμVision4教程.docx

《keilμVision4教程.docx》由会员分享,可在线阅读,更多相关《keilμVision4教程.docx(50页珍藏版)》请在冰豆网上搜索。

keilμVision4教程.docx

keilμVision4教程

 

KeilμVision4使用详解

 

zxmh6

 

前言

单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。

机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。

运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。

掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

我们将通过一些实例来学习Keil软件的使用,在这一部份我们将学习如何输入源程序,建立工程、对工程进行详细的设置,以及如何将源程序变为目标代码。

图1所示电路图使用AT89C51单片机作为主芯片,这种单片机性属于MCS-51系列,其内部有4K的FLASHROM,可以反复擦写,非常适于做实验。

AT89C51的P1引脚上接8个发光二极管,P3.2~P3.4引脚上接4个按钮开关,我们的第一个任务是让接在P1引脚上的发光二极管依次循环点亮。

 

第一章Keil的配置设置

在建立工程和编写程序之前最好将系统字体和关键字的颜色等信息进行设置一番,来使软件更适合使用,下面我们就来对这些配置进行简单的设置。

有多种方式可以打开配置对话框,常用的有两种,既通过菜单的方式打开配置对话框和点击快捷图标的方式打开配置对话框。

菜单打开配置对话框的方法是依次单击“Edit->Configuration...”如图1.1.1所示;单击快捷图标打开配置对话框是单击图标

来完成的。

图1.1.1打开配置对话框的步骤

利用上面的方法就可以打开如图1.1.2所示的配置对话框,其中有六个选项卡,分别为Editor(编辑)、Colors&Fonts(颜色和字体)、UserKeywords(用户关键字)、Shortcutkeys(快捷键)、Templates(模板)、Other(其他),看似复杂其实这六个选项卡中大部分是我们不需要改变的,我们只需要对“Colors&Fonts(颜色和字体)”选项卡进行更改就可以了。

图1.1.2配置对话框

在上面的对话框的最上面单击一下“Colors&Fonts”就可以切换到颜色和字体对话框了,如图1.1.2所示。

图1.1.2颜色和字体对话框

从上面的对话框中我们可以看到“Window”下面有许多的选项,其中我们需要关心的只有两个,既8051:

EditorAsmFeiles(8051汇编语言的编辑)和8051:

EditorCFeiles(8051C语言的编辑),在我们单击这两行字体时“Element”下的信息有变化,这里就以汇编语言文件为例,来将系统字体改为CourierNew字号为14(四号),关键字设为:

蓝色加粗。

操作步骤为在“Window”下面的选项中单击“8051:

EditorAsmFeiles”然后在“Element”下面的选项中选择“Text”在单击“Font”选项卡下面的“Font”右边凸起的那个按钮,如图1.1.3,这时就会弹出图1.1.4所示的字体设置窗口,然后在该窗口的左边“Font”下面的字体中选择“CourierNew”在右边“Size”下面的字号中选择“14”单击“OK”按钮回到颜色和字体配置对话框,这样就把系统字体设置成了CourierNew字体字号为14(四号)。

图1.1.3汇编语言字体设置

图1.1.4字体设置对话框

设置关键字和设置系统字体的方法类似,操作步骤为在“Window”下面的选项中单击“8051:

EditorAsmFeiles”然后在“Element”下面的选项中选择“Keyword”在单击“Font”选项卡下面的“Font”右边凸起的那个按钮来选择关键字的大小,改变颜色即是单击“Colors”选项卡下面的“Foreground”项下的

,来选择对应的颜色,如图1.1.5所示,这里选择蓝色,默认是黑色。

图1.1.5关键字颜色设置

将自己想要设置的项设置完,单击“OK”键返回软件界面。

如果是为了教学方便,要将程序编辑框铺满整个电脑铺满,可以依次单击“View->FullScreen”来达到目的,如图1.1.6,要从满屏页面恢复到一般页面也是非常简单的,只要在满屏界面窗口中单击悬浮的

图标就可以了。

图1.1.6满屏操作步骤

第二章Keil工程文件的建立、设置与目标文件的获得

第一节Keil工程的建立

当用户正确安装了该软件后,就会在桌面上建立名为“KeiluVision4”的一个快捷图标,我们只需双击这个快捷图就可以启动该软件了。

Keil软件启动后,程序窗口的左边有一个工程管理窗口,该窗口有4个标签,分别是Project、Books、Functions和Templates,这四个标签页分别显示当前项目的文件结构、CPU的寄存器及部份特殊功能寄存器的值(调试时才出现)和所选CPU的附加说明文件,如果是第一次启动Keil,那么这三个标签页全是空的,如图2.1.1所示。

图2.1.1第一次打开keiluVision4软件出现的界面

1、建立工程文件

在项目开发中,并不是仅有一个源程序就行了,还要为这个项目选择CPU(Keil支持数百种CPU,而这些CPU的特性并不完全相同),确定编译、汇编、连接的参数,指定调试的方式,有一些项目还会有多个文件组成等,为管理和使用方便,Keil使用工程(Project)这一概念,将这些参数设置和所需的所有文件都加在一个工程中,只能对工程而不能对单一的源程序进行编译(汇编)和连接等操作,下面我们就一步一步地来建立工程。

点击“Project->NewμVisionProject…”菜单,如图2.1.2所示。

图2.1.2创建工程选项

执行上面的操作就会出现一个对话框,为了管理方便最好新建一个文件夹,因为一个工程里面会包含多个文件,一般以工程名为文件夹名来对该新建的文件夹取名,如图2.1.3所示,在选择刚才建立的文件夹然后单击“打开”按钮,然后给将要建立的工程起一个名字,你可以在编缉框中输入一个名字(这里设为exam1),不需要扩展名,如图2.1.4所示。

图2.1.3给新建的工程建立一个文件夹

图2.1.4保存新建的工程

在图1-4的界面里点击“保存”按钮,出现一个对话框,如图2.1.5所示,这个对话框要求选择目标CPU(即你所用芯片的型号),Keil支持的CPU很多,我们选择Atmel公司的89C51芯片。

点击ATMEL前面的“+”号,展开该层,点击其中的AT89C51,如图2.1.6所示,然后再点击“OK”按钮,完成选择MCU型号。

图2.1.5选择MCU的型号

图2.1.6选择AT89C51单片机

在完成选择MCU型号后,软件会提示我们是否要复制一个源文件到这个工程中,这里我们选择“否”,因为我要自己添加一个C语言或者汇编语言源文件,如图2.1.7所示。

图2.1.7是否复制源文件到工程中

在执行上一步后,就能在工程窗口的文件页中,出现了“Target1”,前面有“+”号,点击“+”号展开,可以看到下一层的“SourceGroup1”,这时的工程还是一个空的工程,里面什么文件也没有,到这里我们就完整的把一个工程建立好了。

 

第二节源文件的建立

使用菜单“File->New”如图2-1所示或者点击工具栏的新建文件快捷按钮,就可以在项目窗口的右侧打开一个新的文本编缉窗口,如图2-2所示。

图2-1以菜单方式建立文本框

图2-2将文本框建立好后的窗口

在建立好文本框后一定要先保存,如果你是先将程序输入到文本框中在保存的话,有时由于特殊原因导致电脑断电或者死机,那么你所花费的时间和精力就相当于白费了,因此我们一定要养成先保存在输入程序的好习惯。

而且在先保存在输入程序,在文本框中关键字就会变成其他颜色,有利于我们在写程序时检查所写关键字是否写错。

保存文件很简单,也有很多种方法,这里以最常用的三种来讲。

第一种方法是直接单击工具条上的保存图标

;第二种方法是点击菜单栏的“File->Save”;第三种方法是点击菜单栏的“File->SaveAs...”;其中第三种方法是最好的,因为软件每次都会提示你将这个文件保存到那个路径里面,一定要选择保存在建立工程时建立的文件夹下,这样有利于设计者查找该文件,也有利于管理。

在第一次执行上面三种方法的其中一种后都会弹出文件保存窗口,在“文件名(N)”右面的文本框中输入源文件的名字和后缀名,为了好管理文件一般源文件和工程名一致,文件后缀名为“.asm或.c”,其中“.asm”代表建立的是汇编语言源文件,“.c”代表建立的是C语言源文件,由于我们是使用汇编语言编程,因此这里的后缀名为asm,如图2-3所示的。

图2-3源文件保存对话框

在上图所示的窗口中单击“保存”按钮,就将源文件保存好了,这时也回到了软件界面。

这时就可以将源文件中输入自己的程序了,这时注意经常保存,以免特殊情况导致电脑断电或者死机导致没有保存所写的程序。

第三节将源文件加到工程中并输入源程序

建立好的工程和建立好的程序源文件其实是两个相互独立,一个单片机工程是要将源文件和工程联系到一起的。

这时就需要手动把源程序加入,点击软件界面左上角的“SourceGroup1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单,选中其中的“AddfiletoGroup”SourceGroup1”如图3-1所示。

图3-1添加源文件步骤

在执行上面的步骤后会出现一个对话框,如图3-2所示,要求寻找源文件,注意,该对话框下面的“文件类型”默认为Csourcefile(*.c),也就是以C为扩展名的文件。

图3-2添加源文件窗口

由于我们是以汇编语言来编写程序,因此源文件是以asm为扩展名的,所以在列表框中找不到exam1.asm,要将文件类型改掉,点击对话框中“文件类型”后的下拉列表,找到并选中“AsmSourceFile(*.a51,*.asm),如图3-3所示,这样,在列表框中就可以找到exam1.asm文件了,如图3-4。

图3-3选择源文件的类型

图3-4添加汇编语言源文件

在上面的窗口中双击exam1.asm文件,将文件加入项目,注意,在文件加入项目后,该对话框并不消失,等待继续加入其它文件,但初学时常会误认为操作没有成功而再次双击同一文件,这时会出现如图4-5所示的对话框,提示你所选文件已在列表中。

图4-5提醒文件已在工程中

此时应点击“确定”,返回前一对话框,然后点击“Close”即可返回主界面,返回后,点击“SourceGroup1”前的加号,会发现exam1.asm文件已在其中。

双击文件名exam1.asm,即打开该源程序,如图3-6所示。

图3-6打开源程序文件后的主界面

需要说明的是,源文件就是一般的文本文件,不一定使用Keil软件编写,可以使用任意文本编缉器编写。

到这里我们就将一个源文件添加到工程中了,接下来的事就是编写源程序和编译程序生产目标文件了。

下面就将实例一的程序输入到该源程序中。

实例一的程序如下,实例一的硬件图如图2-4。

实例一的程序:

MOVA,#0FEH

MAIN:

MOVP1,A

RLA

LCALLDELAY

AJMPMAIN

DELAY:

MOVR7,#255

D1:

MOVR6,#255

DJNZR6,$

DJNZR7,D1

RET

END

图3-7实例一的硬件原理图

将实例一的源文件输入到软件后的主界面如图3-8所示。

图3-8输入程序后的主界面

第四节工程的详细设置

工程建立好以后,还要对工程进行进一步的设置,以满足要求。

首先点击左上边的Project窗口的Target1,然后使用菜单“Project->Optionfortarget‘target1’”如图4-1所示,也可以按快捷键“Alt+F7”来完成,还可以单击快捷图标

来完成。

图4-1打开设置对话框的步骤

在进行上面的操作后就会出现对工程设置的对话框,这个对话框可谓非常复杂,共有8个页面,要全部搞清可不容易,好在绝大部份设置项取默认值就行了,如图4-2所示。

图4-2设置对话框的Target页面

设置对话框中默认的就是Target页面,如图4-2所示,Xtal后面的数值是晶振频率值,默认值是所选目标CPU的最高可用频率值,对于我们所选的AT89C51而言是24M,该数值与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。

正确设置该数值可使显示时间与实际所用时间一致,一般将其设置成与你的硬件所用晶振频率相同,如果没必要了解程序执行的时间,也可以不设,这里设置为12.0,如图4-3所示。

图4-3设置晶振频率

MemoryMode用于设置RAM使用情况,有三个选择项,Small:

variablesinDATA是所有变量都在单片机的内部RAM中;Compact:

variablesinPDATA是可以使用一页外部扩展RAM,而Larget:

variablesinXDATA则是可以使用全部外部的扩展RAM,如图4-4所示。

一般都是采用默认方式,也就是Small:

variablesinDATA方式。

图4-4MemoryMode设置项

CodeRomSize:

用于设置ROM空间的使用,同样也有三个选择项,即Small:

program2korless模式,只用低于2K的程序空间;Compact:

2kfunctions,64kprogram模式,单个函数的代码量不能超过2K,整个程序可以使用64K程序空间;Larget:

64kprogram模式,可用全部64K空间,如图4-5所示。

一般都是采用默认方式,也就是Larget:

64kprogram模式。

图4-5CodeRomSize设置项

Operatingsystem:

项是操作系统选择,Keil提供了两种操作系统:

RTX-51Tiny和RTR-51Full,关于操作系统是另外一个很大的话题了,通常我们不使用任何操作系统,即使用该项的默认值:

None(不使用任何操作系统),如图4-6所示。

图4-6Operatingsystem设置项

Useon-chipROM选择项,确认是否仅使用片内ROM(注意:

选中该项并不会影响最终生成的目标代码量);Off-ChipCodememory用以确定系统扩展ROM的地址范围,Off-ChipXdatamemory组用于确定系统扩展RAM的地址范围,这些选择项必须根据所用硬件来决定,由于该例是单片应用,未进行任何扩展,所以均不重新选择,按默认值设置,如图4-7所示。

图4-7Target选项卡剩下项的设置

OutPut页面设置对话框,如图4-8所示,这里面也有多个选择项,其中CreatHexfile用于生成可执行代码文件(可以用编程器写入单片机芯片的HEX格式文件,文件的扩展名为.HEX),默认情况下该项未被选中,如果要写片做硬件实验,就必须选中该项,这一点是初学者易疏忽的,在此特别提醒注意。

选中DebugInformation将会产生调试信息,这些信息用于调试,如果需要对程序进行调试,应当选中该项。

BrowseInformation是产生浏览信息,该信息可以用菜单view->Browse来查看,这里取默认值。

按钮“SelectFolderforObjects…”是用来选择最终的目标文件所在的文件夹,默认是与工程文件在同一个文件夹中。

NameofExecutable:

用于指定最终生成的目标文件的名字,默认与工程的名字相同,这两项一般不需要更改。

图4-8OutPut页面设置对话框

工程设置对话框中的其它各页面与C51编译选项、A51的汇编选项、BL51连接器的连接选项等用法有关,这里均取默认值,不作任何修改。

以下仅对一些有关页面中常用的选项作一个简单介绍。

Listing标签页用于调整生成的列表文件选项,如图4-9所示。

在汇编或编译完成后将产生(*.lst)的列表文件,在连接完成后也将产生(*.m51)的列表文件,该页用于对列表文件的内容和形式进行细致的调节,其中比较常用的选项是“CCompileListing”下的“AssambleCode”项,选中该项可以在列表文件中生成C语言源程序所对应的汇编代码。

图4-8Listing标签页

C51标签页用于对Keil的C51编译器的编译过程进行控制,其中比较常用的是“CodeOptimization”组,如图4-9所示,该组中Level是优化等级,C51在对源程序进行编译时,可以对代码多至9级优化,默认使用第8级,一般不必修改,如果在编译中出现一些问题,可以降低优化级别试一试。

Emphasis是选择编译优先方式,第一项是代码量优化(最终生成的代码量小);第二项是速度优先(最终生成的代码速度快);第三项是缺省。

默认的是速度优先,可根据需要更改。

图4-9C51标签页

设置完成后按“OK”返回主界面,工程文件建立、设置完毕。

第五节编译、连接、生成目标文件

在设置好工程后,即可进行编译、连接。

选择菜单Project->Buildtarget,对当前工程进行连接,如果当前文件已修改,软件会先对该文件进行编译,然后再连接以产生目标代码;如果选择RebuildAlltargetfiles将会对当前工程中的所有文件重新进行编译然后再连接,确保最终生产的目标代码是最新的,而Translate….项则仅对该文件进行编译,不进行连接,如图5-1所示。

图5-1编译操作选项

以上操作也可以通过工具栏按钮直接进行。

图5-2是有关编译、设置的工具栏按钮,从左到右分别是:

编译、编译连接、全部重建、停止编译和对工程进行设置。

图5-2编译快捷图标

编译过程中的信息将出现在输出窗口中的Build页中,如果源程序中有语法错误,会有错误报告出现,双击该行,可以定位到出错的位置,对源程序反复修改之后,最终会得到如图5-3所示的结果,提示获得了名为exam1.hex的文件,该文件即可被编程器读入并写到芯片中,同时还产生了一些其它相关的文件,可被用于Keil的仿真与调试,这时可以进入下一步调试的工作。

图5-3编译成功并生成hex文件成功后的软件界面

第三章Keil的调试命令、在线汇编与断点设置

在上一章中我们学习了如何建立工程、汇编、连接工程,并获得目标代码,但是做到这一步仅仅代表你的源程序没有语法错误,至于源程序中存在着的其它错误,必须通过调试才能发现并解决。

事实上,除了极简单的程序以外,绝大部份的程序都要通过反复调试才能得到正确的结果,因此,调试是软件开发中重要的一个环节,这一章将介绍常用的调试命令、利用在线汇编、各种设置断点进行程序调试的方法,并通过实例介绍这些方法的使用。

第一节常用调试命令

在对工程成功地进行汇编、连接以后,按Ctrl+F5或者使用菜单“Debug->Start/StopDebugSession”如图2.1.1所示,也可以单击软件菜单栏下面的快捷图标

,即可进入调试状态。

Keil软件内建了一个仿真CPU用来模拟执行程序,该仿真CPU功能强大,可以在没有硬件和仿真机的情况下进行程序的调试,下面将要学的就是该模拟调试功能。

不过在学习之前必须明确,模拟毕竟只是模拟,与真实的硬件执行程序肯定还是有区别的,其中最明显的就是时序,软件模拟是不可能和真实的硬件具有相同的时序的,具体的表现就是程序执行的速度和各人使用的计算机有关,计算机性能越好,运行速度越快。

图2.1.1进入调试模式操作步骤

进入调试状态后,界面与编缉状态相比有明显的变化,Debug菜单项中原来不能用的命现在已可以使用了,工具栏会多出一个用于运行和调试的工具条,如图2.1.2所示,Debug菜上的大部份命令可以在此找到对应的快捷按钮,从左到右依次是复位、运行、暂停、单步、过程单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令。

图2.1.2调试工具条

学习程序调试,必须明确两个重要的概念,即单步执行与全速运行。

全速执行是指一行程序执行完以后紧接着执行下一行程序,中间不停止,这样程序执行的速度很快,并可以看到该段程序执行的总体效果,即最终结果正确还是错误,但如果程序有错,则难以确认错误出现在哪些程序行。

单步执行是每次执行一行程序,执行完该行程序以后即停止,等待命令执行下一行程序,此时可以观察该行程序执行完以后得到的结果,是否与我们写该行程序所想要得到的结果相同,借此可以找到程序中问题所在。

程序调试中,这两种运行方式都要用到。

使用菜单STEP或相应的命令按钮或使用快捷键F11可以单步执行程序,使用菜单STEPOVER或功能键F10可以以过程单步形式执行命令,所谓过程单步,是指将汇编语言中的子程序或高级语言中的函数作为一个语句来全速执行。

按下F11键,可以看到源程序窗口的左边出现了一个黄色调试箭头,指向源程序的第一行,如图图2.1.3所示。

每按一次F11,即执行该箭头所指程序行,然后箭头指向下一行,当箭头指向LCALLDELAY行时,再次按下F11,会发现,箭头指向了延时子程序DELAY的第一行。

不断按F11键,即可逐步执行延时子程序。

图2.1.3调试窗口

通过单步执行程序,可以找出一些问题的所在,但是仅依靠单步执行来查错有时是困难的,或虽能查出错误但效率很低,为此必须辅之以其它的方法,如本例中的延时程序是通过将D2:

DJNZR6,D2这一行程序执行六万多次来达到延时的目的,如果用按F1六万多次的方法来执行完该程序行,显然不合适,为此,可以采取以下一些方法,第一,用鼠标在子程序的最后一行(ret)点一下,把光标定位于该行,然后用菜单Debug->RuntoCursorline(执行到光标所在行),即可全速执行完黄色箭头与光标之间的程序行。

第二,在进入该子程序后,使用菜单Debug->StepOutofCurrentFunction(单步执行到该

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1