官术网_书友最值得收藏!

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啟動代碼的對話框

二、創建新的源程序

通過新建命令圖標New File Button或“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 添加文件對話框

Add targets, groups, files

圖1.21 創建文件組

在Files欄中可以單擊“Add Files...”增加文件到選中的組中,也可以用按住鼠標左鍵拖動的方式來重新排列該組中的源文件順序。

項目工作區顯示項目名稱、活動目標名稱以及所有的組和文件、圖標標識項目類型和權限。在項目工作區雙擊某個文件,可以打開該文件進行編輯。例如,打開main.c文件內的reg51.h文件,只需在圖1.22所示的界面雙擊“reg51.h”即可。

圖1.22 創建文件組后的項目界面

五、設置工具選項

Keil 5允許配置開發環境。通過工具欄圖標Options for Target Button或通過“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文件保存路徑?!癗ame of Executable:”右邊為生成的HEX文件的名稱。需要生成HEX文件,還必須將“Create HEX File”前面的復選框選中。選中“Create Library:.\Objects\Test.LIB”可以生成Test.LIB庫文件,而選中“Create Batch File”前面的復選框可創建批處理文件。

圖1.25 生成HEX文件設置對話框

八、查找和瀏覽源程序

用戶在編輯或調試源代碼時,可單擊工具欄中的Find in Files Button圖標,在多個文件中使用查找命令,以便快速定位代碼。在多個文件中使用查找命令查找“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 調試工程

一、進入調試模式

單擊調試工具圖標Start/Stop Debug Button或通過命令“Debug>Start/Stop Debug Session”(或按Ctrl+F5快捷鍵)可進入調試模式。在調試模式下仍可對程序源文件進行編輯。調試工具如圖1.29所示。

圖1.29 調試工具

調試工具從左至右,依次為CPU復位、全速執行、停止執行、單步進被調模塊內執行、單步不進被調模塊內執行、單步跳出被調模塊內部執行、執行到光標所在行。

二、匯編窗口

通過匯編窗口可以看出用C51語言編寫的代碼被翻譯成匯編語句及相關寄存器的值。打開匯編窗口的方法是:單擊Disassembly Button圖標或使用“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...”命令、單擊New File Button圖標或按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'”命令或單擊快捷圖標Options for Target Button,打開Target 'Simulator' 配置窗口,選擇Device選項卡并選擇好芯片組件數據庫,如圖1.23所示。參照1.2.2小節配置好其他相關參數。

4.項目編譯調試

參照1.2.3小節相關內容編譯好項目,并進入調試界面,全速執行;使用“View>Serial Windows>UART #1”命令,打開串行口1觀察其運行結果,如圖1.32所示。

圖1.32 Hello World 運行結果

主站蜘蛛池模板: 津市市| 临夏市| 买车| 库伦旗| 赣州市| 锡林浩特市| 内黄县| 商城县| 临湘市| 噶尔县| 资兴市| 牡丹江市| 封丘县| 呼伦贝尔市| 铁岭市| 揭阳市| 沭阳县| 雷山县| 阿尔山市| 阳朔县| 景谷| 韶关市| 乌什县| 马鞍山市| 当涂县| 茂名市| 喀什市| 清苑县| 靖宇县| 高安市| 云浮市| 德钦县| 乃东县| 富顺县| 博客| 乐东| 大厂| 行唐县| 汾阳市| 临沧市| 三台县|