一、概述
工欲善其事必先利其器。Keil uVersion 4.0(后文簡稱為Keil 4.0)是單片機程序開發的集成開發環境(IDE),集成了C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器。
本節以點亮一個LED為例,演示如何通過Keil新建工程、添加源文件、編譯等基本操作。
二、Keil基本操作 ——以點亮一個LED項目為例
本項目通過8051單片機的P2.0管腳控制一個紅色LED, 支持兩種控制模式:長亮模式和閃爍模式。電路圖如下圖所示,由圖可知,P3.0輸出低電平時,LED點亮;輸出低電平時,LED熄滅。
項目程序由一個.c和一個.h組成,其中,LedCtrl.c為主程序,演示LED的兩種控制模式;led.h為LED控制實現,定義了長亮函數LED_lit(bit flag)、閃爍函數LED_flash(unsigned int interval)和軟件延時函數LED_delayMS(unsigned int ms)。
下面演示基於Keil完成本項目的開發過程。
1. 新建工程。
(1) 運行Keil uVision4。
(2)選擇菜單【Project>New μVersion Project】,打開Create New Project對話框。
(3)設置工程保存路徑和工程名稱。注意,建議一個工程對應一個文件夾,方便管理。
(4)設置單片機型號。 在Select a CPU Data Base File對話框選擇Generic Data Base,然后彈出的對話框中選擇ATMEL>AT89C51,單擊【OK】按鈕。
(5)單擊【否 】按鈕,選擇不復制8051啟動代碼到工作文件。
到此,空白工程已經建好。
編寫代碼
(1)選擇菜單【File>New】(快捷鍵Ctrl+N)新建一個空白文件,則進入文件編輯狀態。
(2)選擇菜單【File>Save As】(快捷鍵Ctrl+S)將新建文件存儲到工程目錄LEDCtrl下,命名為led.h。
(3)重復步驟(1)~(2),新建 文件 LedCtrl .c,存儲路徑為工程目錄 LEDCtrl 下。
(4)編寫led.h,代碼如下:
#include <reg51.h> //導入8051特殊功能寄存器定義及其可尋址位定義
sbit led_red = P3^0; //定義led_red變量控制P3.0引腳:
//輸出0時(低電平),LED亮,輸出1時,LED滅。
/******************************
*函數:LED_lit
*功能:點亮/熄滅led_red
*參數:bit flag: flag = 1, 點亮;flag = 0,熄滅
*返回:無
*****************************/
void LED_lit(bit flag)
{
led_red = ~flag; //不用if語句,控制輸出與flag為相反,直接取反操作即可。
}
/******************************
*函數:delayMS
*功能:ms級延時函數@12MHz晶振
*參數:unsigned int: 延時時間,單位ms
*返回:無
*****************************/
void LED_delayMS(unsigned int ms)
{
unsigned int i,j;
for(i=0;i<ms;i++)
for(j=0;j<150;j++);
}
/******************************
*函數:LED_flash
*功能:led_red閃爍:亮->滅>亮>滅...
*參數:unsigned int: 閃爍間隔,單位ms
*返回:無
*****************************/
void LED_flash(unsigned int interval)
{
lit(1);
delayMS(interval);
lit(0);
delayMS(interval);
}
(5)編寫LEDCtrl.c,代碼如下:
#include "led.h"
/******************************
*函數:main
*功能:程序入口,演示:1. LED長亮10s; 2. LED閃爍10次.
*參數:無
*返回:無
*****************************/
void main()
{
unsigned char flash_times = 10;
unsigned char i;
while(1)
{
LED_lit(1);
LED_delayMS(10000);
for(i=0;i<flash_times;i++)
{
LED_flash(1000);
}
}
}
(6)添加LEDCtrl.c和led.h到當前工程。
a. 在工程瀏覽區雙擊Target 1下的Source Group1,打開添加對話框。
b. 再添加對話框中先選擇文件類型(.h或.c),再雙擊要添加的文件即可。
添加的文件會出現在工程資源瀏覽區下,如下圖所示。
編譯程序。
(1)設置輸出.hex選項,輸出目錄默認為工程路徑的根目錄。
選擇菜單【Project>Options for Target 'Target1'...】(快捷鍵ALT+F7或快捷圖標),在彈出的對話框的Output頁簽中勾選Create Hex File選項,單擊【OK 】按鈕。。
(2)單擊工具欄的快捷圖標或按快捷鍵F7,編譯程序。
在編譯信息輸出區域顯示編譯結果,如下圖所示。
若有錯誤(error),雙擊錯誤提示即可。
如將LEDCtrl.c里的LED_lit函數調用改為lit,則錯誤提示如下,表示lit函數缺少原型,即沒有定義ing。
至此,整個工程從創建到編譯已經介紹完成,以上就是Keil最基本的操作。
