234彩票代理

  • <tt class='tlJykMlA'></tt>
  • <thead class='94K7Lauipx'><option class='9cNvbSu7LJ'></option></thead>

    <em class='jepytdnyfeW3'><b class='oR1Ys12nk'><td class='6rzzLTN'></td></b></em>

  • <dl class='Td0EmkF'><b class='qoWhaibfJ9'></b></dl>

  • <span class='lS1G'></span>

    (玩电子) 电子技术学习与研究
    当前位置:单片机教程网 >> 基础教程 >> 浏览文章

    Keil教程(1)

    作者:佚名   来源:本站原创   点击数:x  更新时间:2007年09月12日   【字体:

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

    单片机开发中除必要的一硬件外,同样离不 开软件,我们写的一汇编语言源程序要变为 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 所示电路图使用

    89C51 单片机作为主芯片,这种单片机性属于 MCS-51 系列,其内部有 4K 的一 FLASH ROM,可以反复擦写,非常适于做实验ζ 。89C51 的一 P1 引脚上    接 8 个发光二极管,P3.2~P3.4 引脚上    接 4 个按钮开关,我们的一第一个任务是让接在 P1 引脚上    的一发光二极管依次循环点亮 。

    一、Keil 工程的一建立

    首先启动 Keil  软件的一集成开发环境,这里假设读者已正确安装了该软件,可以从桌面 上    直接双击 uVision 的一图标以启动该软件 。

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

    1、源文件的一建立

    ?
    使用菜单“File->New ”或者点击工具栏的一新建文件按 钮,即可在项目窗口的一右侧打开一个新的一文本编缉窗口, 在该窗口中输入以下汇编语言源程序,例 1:

    MOV      A,#0FEH MAIN:    MOV    P1,A

    RL          A LCALL     DELAY AJMP     MAIN

    DELAY:   MOV     R7,#255

    D1:         MOV      R6,#255

    DJNZ                 R6,$                                                                                                                                    1    简单的一键盘、显示板



     

    END


    DJNZ      R7,D1

    RET


     

    保存该文件,注意必须加上    扩展名(汇编语言源程序一般用 asm 或 a51  为扩展名),这里假定将文件保存为 exam1.asm 。

    需要说明的一是,源文件就是一般的一文本文件,不 一定使用 Keil 软件编写,可以使用任意 文本编缉器编写,而且,Keil 的一编缉器对汉字的一支持不 好,建议使用 UltraEdit  之类的一编缉 软件进行源程序的一输入 。

    2、建立工程文件

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

    ?
    点击“Project->New  Project… ”菜单,出现一个对话框,要求给将要建立的一工程起一个 名字,你可以在编缉框中输入一个名字

    (设为 exam1),不 需要扩展名 。点击“保 存”按钮,出现第二个对话框,如图 2

    所示,这个对话框要求选择目标 CPU(即 你所用芯片的一型号),Keil  支持的一 CPU 很多,我们选择 Atmel 公司|234彩票代理的一 89C51 芯 片 。点击 ATMEL 前面的一“+”号,展开

    该层,点击其中的一 89C51,然后再点击

    “确定”按钮,回到主界面,此时,在 工程窗口的一文件页中,出现了“Target

    1”,前面有“+”号,点击“+”号展开,

    可以看到下一层的一“ Source Group1”,这 时的一工程还是一个空的一工程,里面什么

    文件也没有,需要手动把刚才编写好的一


     

    源程序加入,点击“Source Group1”使 其反白显示,然后,点击鼠标右键,出现一个下 拉菜单,如图 3 所示 。选中其中的一“Add file to Group”Source Group1”,出现一个对话框,要求 寻找源文件,注意,该对话框下面的一“文件类型” 默认为 C source file(*.c),也就是以 C 为扩展名 的一文件,而我们的一文件是以 asm  为扩展名的一, 所以在列表框中找不 到 exam1.asm,要将文件类 型改掉,点击对话框中“文件类型”后的一下拉列 表,找到并选中“Asm Source File(*.a51,*.asm), 这样,在列表框中就可以找到 exam1.asm  文件 了 。

    双击 exam1.asm 文件,将文件加入项目,注


    图 2  选择目标 CPU

    图 3  加入文件

    意,在文件加入项目后,该对话框并不 消

    失,等待继续加入其它文件,但初学时常 会误认为操作没有成功而再次双击同一文 件,这时会出现如图 4 所示的一对话框,提 示你所选文件已在列表中,此时应点击“确 定”,返回前一对话框,然后点击“Close” 即可返回主界面,返回后,点击“Source Group 1”前的一加号,会发现 exam1.asm 文 件已在其中 。双击文件名,即打开该源程 序 。

    二、工程的一详细设置


    图 4  重复加入文件的一错误

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

    首先点击左边 Project 窗口的一 Target 1,然后使用菜单“Project->Option for target ‘target1’” 即出现对工程设置的一对话框,这个对话框可谓非常复杂,共有 8 个页面,要全部搞清可不 容 易,好在绝大部份设置项取▓默认值就行了 。

    ?
    设置对话框中的一 Target 页面,如

    图 5 所示,Xtal 后面的一数值是晶振频 率值,默认值是所选目标 CPU 的一最高 可用频率值,对于我们所选的一   AT89C51 而言是 24M,该数值与最终

    产生的一目标代码无关,仅用于软件模

    拟调试时显示程序执行时间 。正确设 置该数值可使显示时间与实际所用时间一致,一般将其设置成与你的一硬件

    图 5  对目标进行设置

    所用晶振频率相同,如果没必要了解程序执行的一时间,也可以不 设,这里设置为 12 。

    Memory  Model 用于设置 RAM 使用情况,有三个选择项,Small  是所有变量都在单片 机的一内部 RAM 中;Compact 是可以使用一页外部扩展 RAM,而 Larget  则是可以使用全部 外部的一扩展 RAM 。Code Model 用于设置 ROM 空间的一使用,同样也有三个选择项,即 Small 模式,只用低于 2K 的一程序空间;Compact 模式,单个函数的一代码量不 能超过 2K,整个程序 可以使用 64K 程序空间;Larget 模式,可用全部 64K 空间 。Use on-chip ROM 选择项,确认

    是否仅使用片内 ROM(注意:选中该项并不 会影响最终生成的一目标代码量);Operating  项

    是操作系统选择,Keil 提供了两种操作系统:Rtx tiny №和 Rtx full,关于操作系统是另外一个 很大的一话题了,通常我们不 使用任何操作系统,即使用该项的一默认值:None(不 使用任何 操作系统);Off  Chip   Code  memory 用以确定系统扩展 ROM 的一地址范围,Off  Chip  xData memory 组用于确定系统扩展 RAM 的一地址范围,这些选择项必须根据所用硬件来决定,由 于该例是单片应用,未进行任何扩展,所以均不 重新选择,按默认值设置 。

    设置对话框中的一 OutPut 页面,如图 6 所示,这里面也有多个选择项,其中 Creat Hex file 用于生成可执行代码文件(可以用编程器写入单片机芯片的一 HEX 格式文件,文件的一扩展名 为.HEX),默认情况下该项未被选中,如果要写片做硬件实验ζ,就必须选中该项,这一点是 初学者易疏忽的一,在此特别提醒注意 。选中 Debug  information 将会产生调试信息,这些信 息用于调试,如果需要对程序进行调试,应当选中该项 。Browse  information 是产生浏览信 息,该信息可以用菜单 view->Browse 来查看,这里取▓默认值 。按钮“ Select Folder for objects ”


     

    是用来选择最终的一目标文件所在的一

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

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


    图 6  对输出进行控制

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

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

    ?
    C51 标签页用于对 Keil 的一 C51 编译器的一编译过程进行控制,其中比较常用的一是“Code Optimization”组,如图 7 所示,该组中 Level 是优化等级,C51 在对源程序进行编译时,可 以对代码多至 9 级优化,默认使用

    第 8 级,一般不 必修改,如果在编

    译中出现一些问题,可以降低优化 级别试一试 。Emphasis  是选择编 译优先方式,第一项是代码量优化

    (最终生成的一代码量小);第二项 是速度优先(最终生成的一代码速度快);第三项是缺省 。默认的一是速 度优先,可根据需要更改 。


    图 7 代码生成控制

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

    三、编译、连接

    ?
    在设置好工程后,即可进行编译、连接 。选择菜单 Project->Build target,对当前工程进 行连接,如果当前文件已修改,软件会先对该文件进行编译,然后再连接以产生目标代码; 如果选择 Rebuild  All  target  files 将会

    对当前工程中的一所有文件重新进行编


     

    译然后再连接,确保最终生产的一目标 代码是最新的一,而 Translate … .项则仅 对该文件进行编译,不 进行连接 。

    以上    操作也可以通过工具栏按钮直 接进行 。图 8 是有关编译、设置的一工具

    栏按钮,从左到右分别是:编译、编译

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

    编译过程中的一信息将出现在输出窗 口中的一 Build  页中,如果源程序中有语


    图 8  有关编译、连接、项目设置的一工具条

    图 9  正确编译、连接之后的一结果

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

    发表评论】【告诉好友】【收藏此文】【关闭窗口
    上    一篇:Keil教程(2)

    文章评论