- 單片機開發從入門到實踐
- 郭學提編著
- 3820字
- 2022-04-13 16:12:03
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文件保存路徑?!癗ame 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 運行結果