keil的使用與操作



一、概述
    工欲善其事必先利其器。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最基本的操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM