购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 Keil 5集成开发环境

Keil 5是基于Windows操作系统的集成开发环境,包含对源程序的编辑、工程项目管理、编译、调试。它支持C语言、汇编语言、宏定义等的编译,能产生十六进制格式的机器代码HEX,还能加速嵌入式应用程序的开发。本节将全面介绍Keil 5的软件界面和操作方法,并通过实例讲述如何使用Keil 5开发应用程序。

1.2.1 Keil 5简介

开发人员可以用Keil 5编辑器或其他编辑器编译C语言或汇编语言源程序文件,然后分别由C51语言和A51语言编译生成目标文件(.obj)。目标文件可由LIB51创建生成库文件(.lib),也可与库文件一起经L51链接定位生成绝对目标文件(.abs)。绝对目标文件由OH51置换成标准的HEX文件,以供调试器进行源代码级调试,也可由仿真器直接对目标板进行调试,或直接写入程序存储器,如可擦可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、Flash中进行验证。

Keil 5支持命令模式和工具条操作。一个工具条内有多个命令按钮,源文件以窗口的形式进行编辑。Keil 5有对话框、信息显示等,人机界面友好、操作方便、易学易用。

一、Keil 5的特点

(1)全功能原始代码编辑。

(2)开发工具配置及可选择相应芯片的数据库。

(3)通过工程管理可以很方便地创建和管理工程。

(4)集成源程序的编译、连接、生成机器代码等,用户可以很方便地得到HEX文件。

(5)所有开发工具的配置都是基于窗口或对话框的图形界面。

(6)集成高速CPU及对单片机外围器件的模拟,另外还有信号发生及信号分析等功能。

(7)高级的图形设备接口(Graphics Device Interface,GDI)在目标硬件的软件调试和与Keil ULINK的连接方面,都可用于硬件仿真。

(8)支持对Flash的程序下载。

(9)可通过网站下载最新的工具、芯片的数据库和用户操作手册。

二、Keil 5的工作模式

Keil 5提供了许多功能,能让人加快开发速度并成功开发嵌入式应用程序。由于这些功能(工具)易于使用,因而能实现对设计目标的保证。Keil 5集成开发环境有两种操作模式:编译模式和调试模式。

(1)编译模式。

在编译模式下,可以编辑源程序和项目中的源文件并产生应用程序。图1.13所示为Keil 5的编译模式界面。

(2)调试模式。

调试模式用来验证程序的结果并能与外部Keil ULINK USB-JTAG适配器进行连接,构成硬件仿真系统,还可以下载应用程序到目标系统的Flash 只读存储器(Read-Only Memory,ROM)中。图1.14所示为Keil 5的调试模式界面。

图1.13 Keil 5的编译模式界面

图1.14 Keil 5的调试模式界面

三、停靠窗口

窗口可以停靠到另一个窗口、多文档界面(Multiple Document Interface,MDI),甚至可以浮动到另一个屏幕上。只要拖动一个窗口,就会显示几个停靠符号,图1.15所示为窗口拖动操作。这适用于从菜单视图和所谓的项目窗口中选择的大多数窗口,但是,源代码文件必须留在文本编辑器窗口中。

图1.15 窗口拖动操作

移动窗口到另外一个位置的步骤如下。

(1)单击窗口的标题栏或页面/目标名。

(2)拖动窗口到停靠标记处。

(3)松开鼠标。

1.2.2 创建应用程序

创建应用程序是通过窗口及菜单进行操作的,通过工程管理可以很容易地设计基于单片机的应用程序。创建应用程序主要包括创建项目文件并选择CPU、创建新的源程序、添加源程序到项目中、创建文件组、设置硬件调试操作工具、配置CPU启动代码、编译项目并生成应用程序代码、生成HEX文件或可编程只读存储器(Programmable Read-Only Memory,PROM)程序。下面依次进行讲解。

一、创建项目文件并选择CPU

1.选择“Project>New µVision Project...”,打开Create New Project对话框,输入新项目名及保存路径,如图1.16所示。用户可以根据项目特点对项目进行命名,还可以使用新建文件夹图标创建新的文件夹并用于保存新建的项目。

图1.16 Create New Project对话框

2.完成第1步操作后单击“保存”,会弹出选择CPU的对话框,如图1.17所示。展开“Atmel”,选择“AT89S51”。

图1.17 选择CPU的对话框

3.完成第2步操作后单击“OK”,会弹出复制并添加CPU启动代码的对话框,如图1.18所示。选择“是”就会自动生成CPU启动代码。

图1.18 复制并添加CPU启动代码的对话框

二、创建新的源程序

通过新建命令图标 或“File>New”命令创建一个新的源程序文件,这将打开一个空的编辑窗口,这个窗口可用来输入程序的源代码。使用保存文件对话框的“File>Save As...”,并将其保存为.c文件(如果是汇编源程序应保存为.asm文件)。以下示例的文件名为main.c。

【例1-1】 创建源程序文件。

#include "stdio.h"
#include "reg51.h"   //引用51单片机reg51.h头文件
/******************************************************************************
* Function:       main
* author:         gxt
* date:           2018.03.06
* Description:
*                 Test工程的主函数  
* Parameters:    
*                 NONE
* Return:  
*                 NONE
******************************************************************************/
void main(void)
{
      unsigned int delay;
       //以下代码的作用是初始化串行口,为printf接口输出做好准备
       SCON = 0x50;                    //8位数据,可变波特率
       TMOD &= 0x0F;                   //清除定时器1模式位
       TMOD |= 0x20;                   //设定定时器1为8位自动重装方式
       TL1 = 0xFD;                     //设定定时初值
       TH1 = 0xFD;                     //设定定时器重装值
       ET1 = 0;                        //禁止定时器1中断
       TR1 = 1;                        //启动定时器1  
       TI = 1;                         //发送中断标志位置1
       //串行口初始化代码结束
        while(1)
        { 
         printf("Test By Gxt\n");     //调用标准输出接口输出字符串"Test By Gxt\n"
         while(1);                     //无限循环
    }    
}

三、添加源程序到项目中

将创建的源文件添加到新建的项目。Keil 5提供了多种方法将源代码文件添加到项目。例如,可以选择项目(Project)工作区中的Source Group 1,单击鼠标右键,在弹出的图1.19所示的快捷菜单中选择“Add Existing Files to Group‘Source Group 1’...”,会弹出图1.20所示的对话框,在该对话框中选择main.c文件,然后单击Add就可以把main.c文件添加到项目中。也可以使用“Project>Manage>Project Items”打开管理项目项对话框进行添加(详见“四、创建文件组”)。

四、创建文件组

用户可以创建文件组,并以代码文件结构为逻辑块,简化代码的维护。通过鼠标右键单击目标名称并选择Add Group,也可以将文件拖放到组名上来重新排列顺序或添加文件。使用“Project>Manage>Project Items”打开Manage Project Items对话框,创建文件组如图1.21所示。

图1.19 快捷菜单

图1.20 添加文件对话框

图1.21 创建文件组

在Files栏中可以单击“Add Files...”增加文件到选中的组中,也可以用按住鼠标左键拖动的方式来重新排列该组中的源文件顺序。

项目工作区显示项目名称、活动目标名称以及所有的组和文件、图标标识项目类型和权限。在项目工作区双击某个文件,可以打开该文件进行编辑。例如,打开main.c文件内的reg51.h文件,只需在图1.22所示的界面双击“reg51.h”即可。

图1.22 创建文件组后的项目界面

五、设置工具选项

Keil 5允许配置开发环境。通过工具栏图标 或通过“Project>Options for Target ‘Target 1’...”命令,在目标选项对话框中指定硬件所有相关参数和所选设备的芯片组件,如图1.23所示。

图1.23 目标选项对话框

(1)Device(设备):为项目选择单片机。

(2)Target(目标):指定目标硬件参数。

(3)Output(输出):配置可执行文件、库文件输出和十六进制文件输出。

(4)Listing(清单):配置清单文件。

(5)User(用户):配置预构建和后构建活动。

(6)C51(或CX51):配置编译器选项。

(7)A51(或AX51)(在设备下启用时):配置汇编器选项。

(8)BL51 Locate(或LX51定位)(在设备下启用时):指定链接器/定位器内存位置指令。

(9)BL51 Misc(或LX51 Misc)(在设备下启用时):输入其他链接器/定位器指令。

(10)Debug(调试):配置µVision调试器/模拟器。

(11)Utilities(实用程序):配置Flash下载实用程序。

六、编译项目

通过编译工具对源程序进行编译,编译工具如图1.24所示。

图1.24 编译工具

七、生成HEX文件

打开“Options for Target ‘Target 1’...”后,选择“Output”,生成HEX文件设置对话框如图1.25所示。可以通过“Select Folder for Objects...”选择生成的HEX文件保存路径。“Name of Executable:”右边为生成的HEX文件的名称。需要生成HEX文件,还必须将“Create HEX File”前面的复选框选中。选中“Create Library:.\Objects\Test.LIB”可以生成Test.LIB库文件,而选中“Create Batch File”前面的复选框可创建批处理文件。

图1.25 生成HEX文件设置对话框

八、查找和浏览源程序

用户在编辑或调试源代码时,可单击工具栏中的 图标,在多个文件中使用查找命令,以便快速定位代码。在多个文件中使用查找命令查找“In”的对话框如图1.26所示,单击“Find All”后的查找结果如图1.27所示。

图1.26 查找“In”

图1.27 查找结果

源代码浏览器可显示用户代码中的符号信息。首先需要在图1.25所示的对话框中配置输出浏览器信息(选择“Target>Output>Browser information”),然后使用“View>Source Browser Window”命令打开浏览界面。浏览界面如图1.28所示。

图1.28 浏览界面

1.2.3 调试工程

一、进入调试模式

单击调试工具图标 或通过命令“Debug>Start/Stop Debug Session”(或按Ctrl+F5快捷键)可进入调试模式。在调试模式下仍可对程序源文件进行编辑。调试工具如图1.29所示。

图1.29 调试工具

调试工具从左至右,依次为CPU复位、全速执行、停止执行、单步进被调模块内执行、单步不进被调模块内执行、单步跳出被调模块内部执行、执行到光标所在行。

二、汇编窗口

通过汇编窗口可以看出用C51语言编写的代码被翻译成汇编语句及相关寄存器的值。打开汇编窗口的方法是:单击 图标或使用“View>Disassembly window”命令。汇编窗口如图1.30所示。

图1.30 汇编窗口

三、逻辑分析窗口

单击 图标或使用“View>Analysis Window>Logic Analyzer”命令打开逻辑分析窗口,如图1.31所示。

图1.31 逻辑分析窗口

1.2.4 创建“Hello World”项目

可在Keil 5安装目录\Examples\Hello中打开Hello实例进行学习,也可使用下述步骤建立一个新的项目进行学习。

1.新建源程序文件

使用“file>New...”命令、单击 图标或按Ctrl+N快捷键,新建一个源程序文件,并保存为D:\Keil51\test\Hello.c。输入下列程序后再次保存。

#include <REG52.H>                  /*特殊功能寄存器头文件*/
#include <stdio.h>                  /*标准输入/输出头文件*/
void main(void)
{  
     SCON  = 0x50;                  /*模式1,8位数据,允许数据接收*/
     TMOD |= 0x20;                  /*定时器1,模式2,8位自动重装初值模式*/
     TH1   = 0xE6;                  /*设置,12MHz晶振,1200波特率,TH1初值*/
     TR1   = 1;                     /*TR1:运行定时器1*/
     TI    = 1;                     /*TI:设置发送标志为1*/
     while (1)
     {
          P1 ^= 0x01;                /*每输出一行字符串,P1.0取反1次*/
          printf ("Hello World\n");  /*输出 "Hello World"*/
     }
}

2.新建项目

使用“Project>New µVision Project...”命令,新建一个项目,保存为D:\Keil51\test\Simulator,并将新建的源程序文件添加到项目中。

3.项目设置

使用“Project>Options for Target 'Simulator'”命令或单击快捷图标 ,打开Target 'Simulator' 配置窗口,选择Device选项卡并选择好芯片组件数据库,如图1.23所示。参照1.2.2小节配置好其他相关参数。

4.项目编译调试

参照1.2.3小节相关内容编译好项目,并进入调试界面,全速执行;使用“View>Serial Windows>UART #1”命令,打开串行口1观察其运行结果,如图1.32所示。

图1.32 Hello World 运行结果 Hg5vZquRnOL1p0wo7dnkrkBrzMDjuIcVr94Lr1W2bryDPWY7NuGYFo9mTvr+imGA

点击中间区域
呼出菜单
上一章
目录
下一章
×