學單片機如何編程?非常詳細的Keil工程建立全過程講解

2021-01-08 從零學電子技術

在單片機的開發或使用過程中除了掌握必要的硬體外,同樣離不開軟體,只有通過軟體(程序)的執行,硬體才能發揮出具體的作用。機器如何認識我們用各種符號編寫的程序呢?早期我們寫的彙編語言源程序要變為CPU可以執行的機器碼有兩種方法,一種是手工彙編,另一種是機器彙編,目前已極少使用手工彙編的方法了。機器彙編是通過彙編軟體將源程序變為機器碼,隨著單片機開發技術的不斷發展,從使用彙編語言逐漸過渡到使用高級語言開發,單片機的開發軟體也在不斷發展,Keil軟體是目前最為流行的開發MCS-51系列單片機軟體。Keil提供了包括C編譯器、宏彙編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(uVision)將這些部份組合在一起。Keil軟體對計算機的硬體資源要求很低,可以說現在市面上的計算機都能滿足其硬體需求。

Keil C51

Keil C51是51系列兼容單片機C語言軟體開發系統,採用全Windows界面,提供了豐富的庫函數和功能強大的集成開發調試工具。生成的目標代碼效率非常之高,且生成的彙編代碼緊湊,容易理解。在開發大型軟體時更能體現高級語言的優勢。與彙編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。相信用過彙編語言後再使用C來開發,體會更加深刻,當然如果彙編語言和硬體結構熟練到一定程度,使用彙編語言會更具優勢,但對於大部分初學者而言,Keil C51應該是首選。掌握這一軟體的使用對於使用51系列單片機的愛好者來說是十分必要的,即使不使用C語言而僅用彙編語言編程,其方便易用的集成環境、強大的軟體仿真調試工具也會令你事半功倍。

Keil uVison4是普通版本,只能適用於單片機,主要是基於8051系列單片機的開發環境;Keil MDK是擴展版本,包含了部分ARM。為基於Cortex-M、Cortex-R4、ARM7、ARM9處理器設備提供了一個完整的開發環境;初學者建議採用Keil uVison4及更低版本,注意:Keil uVison4分Keil MDK-ARM和Keil C51版本,初學者應安裝Keil C51版的。

關於Keil軟體的安裝與常用其它軟體安裝的方法類似,安裝按照說明一步一步操作即可,不再贅述。本文主要詳細講解用Keil uVison4新建一個工程的詳細過程,相信通過這個教程的學習,您一定會對使用Keil軟體創建一個新的工程有深入的掌握。

第一步:從桌面找到Keil圖標,雙擊圖標啟動Keil軟體,

啟動Keil

會看到如圖所示界面。

啟動後的界面

第二步:點擊菜單條中的"Project"並從下拉菜單中選擇"New uVision Project…",

新建工程

自動彈出一個項目路徑選擇對話框,(若打開keil軟體時,如果發現此軟體默認打開了一個之前已經存在的工程,請先關閉此工程。點擊上面"Project"選項,在彈出的下拉菜單中選擇"Close Project"即可。)

選擇路徑新建文件夾

在彈出的對話框中,選擇即將創建工程的保存路徑和文件夾,若不存在可以用與Window系統一致的方法新建文件夾,如"TEST",並在該文件夾下的對話框文件名處輸入自己為工程起的工程名,如下圖輸入的LCD1602。

輸入工程名

第三步:輸入文件名點擊保存後,彈出如圖所示控制器選擇對話框,

選擇單片機類型

在單片機類型列表中找到並選中"Atmel"下的AT89C52(大家根據自己控制器型號選擇),右側區域給出所選單片機的硬體資源,

單片機的硬體資源說明

點擊"OK",彈出詢問是否將標準51系列啟動代碼添加到新建工程中的彈窗,因為keil的庫文件裡面已經有一個默認的啟動代碼了,如果你的工程裡沒有啟動代碼,keil就會使用庫裡的默認啟動代碼,如果有,keil就會編譯並使用你的啟動代碼,庫裡的啟動代碼會被忽略。(初學者建議點擊"否即可")

選擇是否添加啟動代碼到工程中

第四步:點擊"File"菜單下的"New",新建會看到出來一個名字為"Text1"的文件,

新建C文件

再一次點擊上面"File"下拉菜單中 "Save"或點擊工具欄中的"保存",會彈出一個保存的對話框,輸入文件名如"LCD1602MAIN.C"(切記,此處無論你起什麼樣的文件名,但後面必須輸入.C!!!),單擊"保存",將文件在第二步新建的文件夾目錄下。

保存C文件

命名.C文件名

此時可以在新建文件中進行代碼編寫了,如包含頭文件 #include <Reg52.h>,但要注意,此時文件LCD1602MAIN.C並未與工程建立起聯繫。

此時的C文件還未和工程建立聯繫

第五步:將新建的文件添加到工程中,點擊左邊"Porject"選項框裡面的"Target 1"前面的"+"號, 在展開的下拉菜單下看到"Source Group 1"。右鍵單擊"Source Group 1"選項, 在下拉菜單中選擇"Add Files to Group 'Source Group 1'..."選項,彈出一個文件選擇對話框,單擊選中剛才新建的.c源文件,然後單擊一次"Add"按鈕,此時雖然對話框沒有關閉,但是已經把.c源文件添加到工程裡了,這時只要再點擊一次"Close"按鈕即可把此對話框關閉(初學者經常以為.c源文件沒有被添加進去,還要按"Add"按鈕)。這時發現左邊的"Source Group 1"前面多了一個"+"號, 單擊此"+"號展開, 發現下面出現了剛才我們新添加進去的.c源文件"LCD1602MAIN.c"。

將C文件添加到工程中

選擇要添加的文件

已將C文件成功添加到工程中

第六步:為了降低編程的疲勞,根據需要進行字體字號設置,點擊如圖"Edit"菜單最下面的"Configuration"選項,

設置舒適的字體字號

根據自己的需要進行字體設置即可,

如何設置字體字號

一個新的Keil工程建立完畢

至此,一個全新的Keil工程建立完畢,開啟自己的編程之旅吧!

相關焦點

  • 單片機編程軟體大佬:明確單片機編程軟體編寫單片機程序步驟
    單片機用什麼軟體編程?單片機開發中除必要的硬體外,同樣離不開軟體,我們寫的彙編語言源程序要變為CPU可以執行的機器碼有兩種方法,一種是手工彙編,另一種是機器彙編,目前已極少使用手工彙編的方法了。機器彙編是通過彙編軟體將源程序變為機器碼,用於MCS-51單片機的彙編軟體有早期的A51,隨著單片機開發技術的不斷發展,從普遍使用彙編語言到逐漸使用高級語言開發,單片機的開發軟體也在不斷發展,Keil軟體是目前最流行開發MCS-51系列單片機的軟體,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。
  • 單片機keil 常見問題
    一、混合編程1、模塊內接口:使用如下標誌符:#pragma asm彙編語句#pragma endasm注意:如果在c51程序中使用了彙編語言
  • 單片機模塊化編程的原則有哪些
    目前我們在學習和開發單片機時廣泛採用 c 語言進行編程,當我們開發的單片機項目較小時,或者我們所寫的練習程序很小時,我們總是習慣於將所有代碼編寫在同一個 c 文件下,由於程序代碼量較少,通常為幾十行或者上百行, 此時這種操作是可行方便的, 也沒有什麼問題。
  • KEIL4 工程到 KEIL5 程序的移植方法
    由於 KEIL4 和 KEIL5 程序之間的差異, 所以 KEIL5 不能直接打開 KEIL4 的工程。 但是為了確保 KEIL5 向下的兼容性, ARM 公司為我們提供了兩種兼容 KEIL4 程序的方式。首先我們用 keil5 打開 keil4 的工程, 則會彈出下面的窗口, 這就是我們程序兼容的關鍵。
  • 第5節:用keil軟體新建,關閉,打開一個完整工程的操作流程
    從業十年,教你單片機入門基礎 第五講:Keil平臺軟體的安裝我就不多講了,網上這方面的資料很多,大家可以百度一下如何安裝keil的教程。
  • 單片機C語言模塊化編程方法
    初學者往往搞不懂如何模塊化編程,其實它是簡單易學,而且又是組織良好程序結構行之有效的方法之一.本文將先大概講一下模塊化的方法和注意事項,最後將以初學者使用最廣的keil c編譯器為例,給出模塊化編程的詳細步驟。
  • 單片機學習之二:單片機軟體使用簡明教程
    在我們開始單片機學習之前,我們有必要先來介紹一下單片機編程開發環境。我們現在常用的2種編程開發環境是:偉福WAVE和KEIL C軟體。我們這裡以大家最常用的KEIL C軟體為例,簡單介紹一下編程環境。
  • ARM7單片機輕鬆入門與實踐 — 暢學單片機
    巧妙地將單片機原理與應用和單片機C語言編程的知識點融入各個實例中,不僅開闢了單片機應用的視野,又充實了對單片機從基礎到應用所需要的知識。使廣大學者可一邊學單片機結構理論知識一邊用C語言編程實現各種功能,既能高效地系統學習知識,又能提高編程思維能力。      在多角度、多方面的實例化講解中,讀者不僅掌握了單片機系統開發的基本技能,還開闊了單片機流行應用的視野。
  • 自學單片機第三篇:keil軟體
    圖標雙擊打開軟體,界面如下。第一個選項是文件,下拉表中,我們當前要點擊下圖黃色部分,安裝證書。設置打開後,第一個選中文簡體,這是編程時用的,軟體還是英文的。然後第二個是調整程序中文字的顏色,可以自己設置,不設置也行,我喜歡設置成對比色,編程時方便觀查。
  • 圖形化編程玩51單片機(十七)-數字鐘
    我們學習單片機的同學們,大家都想用自己學到的單片機知識來做一個有實用價值的電子產品。那麼數字鐘就是最好的首選。1,邏輯思維相對簡單,容易理解,比如:我們都知道60秒=1分鐘;60分鐘=1小時;24小時=1天,;所以,到了24小時清零,再循環就可以了。2,儘管邏輯相對簡單,但要運用我們單片機的多個器件的配合使用。
  • Keil uVision4單片機
    今天也是第一次接觸到了單片機技術 想和大家分享關於Keil uVision4的一些問題和經驗Keil uVision4免費版是一款非常專業且權威的單片機開發工具。在學習單片機,微型計算機控制等課程,或者在protuse軟體上,Keil uVision4免費版會給你很大幫助。軟體簡介      keil 4可以幫你編寫程序,檢測程序,簡單的說就是通過這款軟體將高級語言翻譯成單片機能識別的語言,Keil uVision4可以用在彙編語言、C語言等等。
  • 在keil中怎麼燒寫程序
    打開APP 在keil中怎麼燒寫程序 發表於 2017-11-16 10:52:58   什麼是keil
  • 51單片機程序執行流程詳細分析
    來源:http://www.dzsc.com/data/2015-3-6/107977.html單片機是沒有上作業系統的東西,在keil中編寫的代碼都是裸機代碼,深入編寫裸機代碼有助於了解硬體的特性。單片機是沒有上作業系統的東西,在keil中編寫的代碼都是裸機代碼,深入編寫裸機代碼有助於了解硬體的特性。
  • 有關Keil軟體仿真的51單片機串口調試技巧
    通常使用單片機串口通過RS232/RS485電平轉換晶片與上位機連接,以進行上位機與下位機的數據交換、參數設置、組成網絡以及各種外部設備的連接等。RS232/RS485串行接口總線具有成本低、簡單可靠、容易使用等特點,加上其歷史悠久,所以目前應用仍然非常廣泛;特別對於數據量不是很大的場合,串口通信仍然是很好的選擇,有著廣闊的使用前景。  在單片機編程中,串口佔了很重要的地位。
  • 單片機與C語言——keil c51教程(1)
    單片機C語言教程(一) 學習單片機實在不是件易事,一來要購買高價格的編程器,仿真器,二來要學習程式語言,還有眾多種類的單片機選擇真是件讓人頭腦的事
  • 簡析單片機keil常見問題
    一、混合編程  1、模塊內接口:  使用如下標誌符:  #pragma asm  彙編語句  #pragma endasm  注意:如果在c51程序中使用了彙編語言,注意在keil編譯器中需要激活Properties中的「
  • 單片機程式語言的比較
    例如,懂得彙編語言指令就可以使用在片內ram作變量的優勢,因為片外變量需要幾條指令才能設置累加器和數據指針進行存取。同樣的,當要求使用浮點數和啟用函數時也只有具備彙編編程經驗才能避免生成龐大的、效率低的程序,對於這方面的編程,沒有彙編語言是做不到的。
  • 單片機的程式語言:彙編語言、C語言、PL/M和BASIC語言
    (3)功能較全、適用面廣。BASIC語言除了能進行科學計算和數據處理外,還能進行字符處理、圖形處理、音樂演奏等。因此BASIC語言不僅適用於科學計算,也適用於事務管理、計算機輔助教學和遊戲編程等方面。(4)執行方式靈活。BASIC語言提供兩種執行方式,分別是程序執行方式和命令執行方式。
  • keil c語言編程常見問題解析(一)
    >」獲取單片機相關資料。一起走向智能工業革命時代,單片機DIY、基於c語言/彙編的編程。重新編譯工程,如果警告該函數沒被調用,在主文件中調一下。5.建一個新的c文件,把主文件中的幾個函數移至該文件,把該文件添加到project中,注意該文件不能再選generate assembler SRC file和assemble SRC file選項。
  • keil5.24創建uCOSIII工程實現stm32實時作業系統(環境配置)
    但是這個新版本os_cpu_a.s是禁止修改的,說明keil不建議這樣做。     你如果不想用系統的,就得自己寫2個同名函數,但是沒必要。     那麼我們直接修改中斷向量表文件,把startup_stm32f10x_hd.s 裡面的PendSV_handler全替換成OS_CPU_PendSV_handler。