<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

單片機Keil開發環境的搭建

CHANBAEK ? 來源:郎哥編程課堂 ? 作者:郎宏林 ? 2023-11-01 09:17 ? 次閱讀

歡迎大家來到C語言單片機編程課堂。前面一課我們了解了單片機編程嵌入式開發內容,這節課我們來學習單片機開發環境Keil,并使用keil完成單片機編程第一個實驗任務。

Keil是由美國Keil Software公司研發的嵌入式開發工具,它支持使用匯編語言和C語言開發單片機嵌入式程序。Keil提供了不同的工具包用于支持不同指令架構的單片機,在課程中我們主要學習51單片機ARM指令架構的單片機嵌入式開發,Keil完全支持51和ARM指令架構的單片機開發。

Keil開發工具沒有發布中文版,但絕大多數嵌入式開發工程師都在使用Keil開發工具,它內置了CC++編譯器、匯編編譯器、軟件仿真硬件仿真。軟件仿真在程序運行調試狀態下,可以查看模擬單片機的寄存器、存儲器、I/O口狀態,也可以查看程序在單片機內部執行過程中內存的狀態。有了軟件仿真調試功能,開發者在沒有單片機的情況下,也可以開發單片機程序,并查看程序運行結果。硬件仿真可以接入外部仿真器仿真實際運行的單片機。

圖片

搭建Keil開發環境

安裝Keil開發工具

搜索Keil官網,進入Keil官網網站,在Keil官網我們主要下載MDK-Arm和C51兩個安裝包,C51用于51系列單片機開發,MDK-Arm用于ARM指令架構的系列單片機開發。

圖片

分別下載C51和MDK-Arm到本地,先安裝C51開發工具,C51安裝完成后,再安裝MDK-Arm(安裝路徑選擇C51的安裝路徑)。

安裝STC51系列單片機仿真包

Keil安裝完成后,并不支持STC51系列單片機的仿真調試,需要單獨安裝STC51系列單片機仿真包。進入STC(宏晶科技)官網,下載STC-ISP安裝包,STC-ISP是宏晶公司提供的單片機下載燒錄軟件,是針對STC系列單片機而設計的,可下載程序到STC89、12C2052和12C5410等系列的STC單片機ROM內。

下載后解壓縮包,運行stc-isp程序,選擇“Keil仿真設置”標簽頁,單擊“添加STC仿真器驅動到Keil中”按鈕,在彈出的目錄選擇對話框選擇keil的安裝目錄,單擊確定即可完成STC仿真器驅動。

圖片

第一個單片機實驗

實驗目的

使用keil創建單片機開發項目,添加C文件到項目,編寫C代碼控制單片機I/O口輸出低電平,掌握代碼的仿真調試,查看單片機I/O電平變化。

實驗相關知識

TTL電平

實驗用單片機為STC89C52RC,實驗涉及到單片機I/O口的TTL電平檢測。TTL電平信號規定+5V等價于邏輯“1”,0V等價于邏輯“0”,使用Keil進行仿真調試時,若I/O口某位輸出“0”,則為低電平,輸出“1”則為高電平。

單片機I/O口

單片機I/O口用于單片機與外部設備的連接并控制外部設備。STC89C52RC有4個8位的雙向I/O口,即可用于外部設備輸入數據到單片機,也可以用于單片機向外部設備輸出數據或控制指令。

圖片

上圖的P0、P1、P2、P3為單片機的I/O口,每個I/O可以進行位控制,按位進行操作,每個位的初始邏輯狀態為1(高電平),使用程序可以改變每個I/O為的邏輯狀態,從而控制對應的外部設備。例如通過程序將P1.0位置為0(低電平)。

實驗過程

創建單片機開發項目

啟動keil開發工具,展開“Project”菜單,選擇“New μVision Project ……”命令,在彈出的“Create New Project”對話框內,選擇項目保存位置,輸入項目名稱。

圖片

在彈出的“Select Device for target”對話框內,選擇列表框內的“STC MCU Database”項,在單片機類型列表框內選擇“STC89C52RC”單片機,然后單擊“OK”按鈕。

圖片

添加C文件到項目

單片機項目創建成功后,需要添加C文件到項目,項目工作窗口如下圖所示。

圖片

選擇項目文件窗口“Source Group 1”節點,單擊鼠標右鍵,在彈出的菜單中選擇“ADD New Item to Group ‘Source Group 1’……”命令,如下圖所示。

圖片

在彈出的“Add New Item to Group ‘Source Group 1’”對話框內,在文件類型列表框選擇C文件類型,在Name輸入域輸入C文件名稱,這里輸入的是“controllio.c”,輸入完成后,單擊“Add”按鈕。如下圖所示。

圖片

C文件“controllio.c”已添加到項目節點“Source Group 1”節。

圖片

在“controllio.c”編輯窗口,輸入下面的C代碼:

#include
sbit led1 = P1^0;
void main()
{
       led1=0;
}

reg51.h是通用80C51和80C31單片機的頭文件。頭文件有兩個keil定義的關鍵字sbit和sfr,sbit用來定義位變量,sfr用來定義地址變量。

sbit的用法:

sbit X = A^n

其中X是位變量,A是一個可進行位尋址的變量,n表示變量A的第n位,注意這里的^不是C語言的異或操作符,是keil定義的一個特殊符號,用于確定可進行位尋址變量的第幾位。例如代碼:

sbit led1 = P1^0;

sbit定義了led1變量,該變量指向P1口的第0位,若執行語句led1=0; 則P1口的第0位被置為低電平。

sfr的用法:

sfr X = 0x80

其中X是地址變量,0x80是一個地址。例如代碼:

sfr P0 = 0x80;

sfr定義了P0變量,該變量指向0x80地址,該地址為單片機P0口的地址。

C程序仿真調試

Keil提供了仿真調試功能,即使在沒有單片機硬件的情況下,我們也可以判斷C程序在單片機內是否運行正常,并跟蹤和調試C程序完整的執行過程。

設置仿真

在進行仿真調試之前,需要查看Keil是否已設置了仿真調試,展開Project菜單,選擇“Options for Targets”命令,在彈出的對話框中,選擇“Debug”標簽頁,確定“Use Simulator”被選中。

圖片

仿真調試過程

展開“Debug”菜單,選擇“Insert/Remove Breakpoint”命令,或者用鼠標雙擊語句左側的灰色區域設置斷點,如下圖所示。

圖片

展開“Debug”菜單,選擇“Start/Stop Debug Session”命令,或按下Ctrl+F5鍵,或單擊工具條上的啟動調試圖標,都可以啟動程序的仿真調試。

程序啟動后,執行到斷點后暫停運行,仿真調試窗口如下圖所示。

圖片

通過寄存器窗口可以查看程序執行過程中寄存器狀態的變化,關于單片機的寄存器,在后面的實驗中會陸續講解。匯編指令窗口顯示了程序編譯后的匯編指令,通過該窗口可以查看匯編指令。在代碼窗口可以查看代碼,也可以繼續執行程序,或單步執行,或執行代碼行,或執行到光標所在行。

本實驗重點查看仿真單片機的I/O口狀態,展開“peripherals”菜單,選擇“I/O-Ports”菜單項,再彈出的子菜單中選擇“Port 1”項。

圖片

Keil彈出P1口狀態對話框,如下圖所示。

圖片

從圖中可以看到,當前P1口0~7位邏輯狀態都為1,繼續執行程序,再次查看P1口狀態。

圖片

P1口第0位的邏輯狀態已經發生了變化,其邏輯狀態為0。

實驗小結

通過這次實驗,掌握了Keil編寫單片機程序的過程,以及如何仿真調試單片機程序。實際上,在沒有硬件單片機的情況下,應用Keil仿真調試工具,完全可以監控程序在仿真單片機中的運行狀態。

本次實驗主要完成單片機I/O口單個位的控制。下次實驗應用EDA仿真工具proteus,設計單片機第一個應用,使用單片機I/O口控制發光二極管。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6008

    文章

    44087

    瀏覽量

    623140
  • 嵌入式
    +關注

    關注

    5002

    文章

    18414

    瀏覽量

    291575
  • C語言
    +關注

    關注

    180

    文章

    7548

    瀏覽量

    131350
  • keil
    +關注

    關注

    68

    文章

    1196

    瀏覽量

    165638
  • 開發環境
    +關注

    關注

    1

    文章

    204

    瀏覽量

    16482
收藏 人收藏

    評論

    相關推薦

    C51單片機學習筆記(一)——搭建開發環境及燒寫工具 精選資料分享

    C51單片機學習筆記(一)——搭建開發環境及燒寫工具文章目錄C51單片機學習筆記(一)——搭建
    發表于 07-14 07:53

    51單片機開發環境怎么搭建

    入門51單片機(一):開發環境搭建這里以目前最流行的STC89C52RC為例來介紹51單片機開發
    發表于 11-22 06:43

    51單片機軟硬件開發環境搭建方法

    摘要本文章主要介紹了51單片機軟硬件開發環境搭建,包括51單片機最小系統,固件燒錄電路,Keil
    發表于 11-22 06:17

    VScode + keil開發環境搭建

    GD32系列總結 - VScode + keil開發環境搭建寫在前面Keil Assistant插件安裝與使用遇見的問題include波浪線
    發表于 11-30 07:56

    C51單片機學習筆記(一)——搭建開發環境及燒寫工具

    C51單片機學習筆記(一)——搭建開發環境及燒寫工具文章目錄C51單片機學習筆記(一)——搭建
    發表于 11-12 10:06 ?17次下載
    C51<b class='flag-5'>單片機</b>學習筆記(一)——<b class='flag-5'>搭建</b><b class='flag-5'>開發</b><b class='flag-5'>環境</b>及燒寫工具

    mac 搭建單片機開發環境

    mac 搭建單片機開發環境
    發表于 11-13 11:21 ?1次下載
    mac <b class='flag-5'>搭建</b><b class='flag-5'>單片機</b><b class='flag-5'>開發</b><b class='flag-5'>環境</b>

    單片機優雅的開發Clion環境搭建

    單片機優雅的開發Clion環境搭建
    發表于 11-13 12:21 ?17次下載
    <b class='flag-5'>單片機</b>優雅的<b class='flag-5'>開發</b>Clion<b class='flag-5'>環境</b><b class='flag-5'>搭建</b>

    HT合泰單片機 入門 開發環境搭建(一)

    HT合泰單片機 入門 開發環境搭建(一)
    發表于 11-13 13:21 ?16次下載
    HT合泰<b class='flag-5'>單片機</b> 入門 <b class='flag-5'>開發</b><b class='flag-5'>環境</b><b class='flag-5'>搭建</b>(一)

    入門51單片機(一):開發環境搭建

    入門51單片機(一):開發環境搭建這里以目前最流行的STC89C52RC為例來介紹51單片機開發
    發表于 11-13 13:36 ?5次下載
    入門51<b class='flag-5'>單片機</b>(一):<b class='flag-5'>開發</b><b class='flag-5'>環境</b>的<b class='flag-5'>搭建</b>

    GD32單片機開發環境搭建Keil5安裝)

    GD32單片機開發環境搭建Keil5安裝)
    發表于 11-13 14:36 ?39次下載
    GD32<b class='flag-5'>單片機</b><b class='flag-5'>開發</b><b class='flag-5'>環境</b><b class='flag-5'>搭建</b>(<b class='flag-5'>Keil</b>5安裝)

    單片機集成開發環境Keil5的使用

    實驗1 單片機集成開發環境Keil5的使用實驗目的1、學會下載、安裝Keil μVision集成開發
    發表于 11-13 15:06 ?24次下載
    <b class='flag-5'>單片機</b>集成<b class='flag-5'>開發</b><b class='flag-5'>環境</b><b class='flag-5'>Keil</b>5的使用

    GD單片機Keil環境搭建

    GD單片機Keil環境搭建
    發表于 11-13 16:21 ?8次下載
    GD<b class='flag-5'>單片機</b><b class='flag-5'>Keil</b><b class='flag-5'>環境</b><b class='flag-5'>搭建</b>

    合泰單片機HT32之keil5開發環境搭建(一)

    也有keil5的支持包,也就是說可以從庫函數進行開發,不用從寄存器進行開發,但我找了好久,并沒有找到教程,后來實在沒辦法,打算自己動手搭建環境
    發表于 11-13 17:06 ?21次下載
    合泰<b class='flag-5'>單片機</b>HT32之<b class='flag-5'>keil</b>5<b class='flag-5'>開發</b><b class='flag-5'>環境</b><b class='flag-5'>搭建</b>(一)

    51單片機-開發環境搭建

    51單片機-開發環境搭建
    發表于 11-14 09:21 ?11次下載
    51<b class='flag-5'>單片機</b>-<b class='flag-5'>開發</b><b class='flag-5'>環境</b>的<b class='flag-5'>搭建</b>

    manjaro 開發51單片機環境搭建

    manjaro 開發51單片機環境搭建
    發表于 11-23 16:36 ?8次下載
    manjaro <b class='flag-5'>開發</b>51<b class='flag-5'>單片機</b><b class='flag-5'>環境</b><b class='flag-5'>搭建</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>