久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5151|回復: 1
打印 上一主題 下一主題
收起左側

Keil C51單片機集成開發環境編程與調試教程

[復制鏈接]
跳轉到指定樓層
樓主
ID:701237 發表于 2020-3-2 16:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
作者:劉新陽
同 VC 之類的通用 C 語言集成開發環境(IDE)一樣,Keil 也采用“工程”

(Project)的方式管理源代碼及相關文件,這種管理方式為由多個源代碼文件組 成的大型程序開發提供了方便。不管是最簡單的 C51程序,還是復雜的多文件 程序都需要以下步驟:

1)先建立新的工程文件;
2)在工程中新建源代碼文件,或是將已經存在的源代碼文件加入工程;
3)編譯;
4)調試,修正錯誤再編譯;

5)將生成的二進制文件*.hex 燒入單片機。 本教程重點介紹上述前 4 個步驟。

二、Keil中新建工程的步驟
1. 單擊菜單“Project——New uVision Project……” 出現新建工程對話框:


在此對話框中選擇存放工程各類文件的路徑和文件夾,然后為工程的主文件

取個名字,以后單擊該主文件即可打開這個工程項目。

2. 選擇單片機型號 上個窗口關閉后,馬上會呈現下面這個窗口,在這里我們要選擇所使用的單

片機型號。

具體到這里,我們選擇 Atmel 文件夾下的 AT89C51。(也可以選擇下面的
AT89C52、AT89S51 或 AT89S52)


注意:單擊 OK 后會出現下面這個提示信息:

這里一定要選“否”,即:不需要自動添加起始代碼。

完成后,即可看到 Keil 主界面:


此時可以看到屏幕左側的“Project”窗口(工程文件管理器)中,Target1 下面的 Source Group1(源代碼文件組 1)為空,即現在新建的工程中還不包含任 何源代碼文件。所以,接下來要做的就是新建源代碼文件。

3. 新建源代碼文件 單擊菜單“File——New……”之后,即可在編輯區看到新建了一個名為 text1

的文本文件。 單擊工具欄上的“保存”(圖標為磁盤)按鈕,可以在保存文件對話框中選

擇這個文本文件的保存位置(一般和工程文件保存在同一級文件夾)和文件的主 名及擴展名。如果只有一個源代碼文件,一般主名命名為工程名,若是 C 語言 源代碼,擴展名設置為.c 即可。設置為.c 擴展名的目的,是為了告訴系統這是 C 語言源代碼,Keil 會進行語法著色。

4. 將源代碼文件加入工程 在屏幕左側的“Project”窗口(工程文件管理器)中,在 Source Group 1 上

單擊右鍵,選擇 Add Source File to “Source Group 1”菜單項。



在隨后彈出的對話框中選擇剛才建立的源文件。


注意,這里選中文件單擊“Add”后對話框并不消失,可以繼續添加多個文 件,添加完成后要單擊“Close”才能將對話框關閉。

關閉對話框后,可以在“Project”窗口(工程文件管理器)中看到剛才添加 進來的源代碼文件:



此時,就可以在右側的編輯區進行代碼的編寫了。也可以將已經編寫好的代

碼粘貼進來。

同理,利用“Source Group 1”上的右鍵菜單也可以將某個文件移除出工程, 移除并不是徹底刪除掉文件(文件還保留在磁盤上原來的位置),只是將文件排 除出工程的編譯范圍,該文件就不會參與編譯了。

5. 設置工程屬性
1)單擊“Project”窗口中的“Target 1”圖標,使其高亮顯示(藍底白字)。

2)單擊 Project——Options for Target ‘Target 1’ 打開如下窗口。 注意一定要確保步驟 1),如果是其他部分處于高亮,則找不到 2)中的菜

單項。


默認打開的是“Target”選項頁,此頁面的項目一般保持默認值即可。各個

項目的具體含義可參加課本 P35。 單擊“Output”打開 Output 選項頁:

勾選“CreateHEXFile”項,這樣編譯后才會生成用來燒錄進單片機的二 進制程序文件(相當于 VC 中的 exe 文件),否則只編譯而不生成可執行文件.


其他項目可以保持默認,生成的二進制程序文件默認保存在工程文件所在的

文件夾中,擴展名為.hex
6. 編譯源代碼

單擊工具欄第 2 行左起第 3 個圖標“ReBuild all Target Files”,即可啟動編譯 過程(第 2 個圖標也可以,一般在修改了代碼后習慣用第 3個“重新編譯”),若 有錯誤,在下方的信息窗口中會給出提示,若顯示“0 Error(s), 0 Warning(s).”(0 個錯誤,0 個警告)則意味著編譯通過(有時有警告存在也可編譯通過,只要錯 誤為 0 個即可,但謹慎起見,對警告也應該重視)。



單擊工具欄
第 2 行,左起第 3 個圖標 啟動編譯

此處為提示信息窗口

這里要特別注意的是,如果 Source Group 里有多個源代碼文件,就像在 VC 里面一樣,會將多個文件分別編譯然后連接(Link)成最后的可執行文件。因此, 多個源代碼文件中只能有一個 main函數。

經常出現類似這樣的錯誤:在調試完一個程序又調試下一個時,沒有新建工 程,而是新建了一個源代碼文件并添加到現有的工程中,也沒有把剛才調試的源 代碼文件移除,這樣再編譯時便會出錯,因為存在 2 個 main 函數。

若不想每次都新建工程,可將調試完畢的源代碼文件移除出工程,再新建源 代碼文件調試新的代碼。或者將調試完成的代碼復制出來另外保存,用待調試的 代碼覆蓋原文件內容即可。

三、基本調試方法

代碼中的語法錯誤可以通過編譯器的 error 信息提示,只要沒有語法錯誤即 可通過編譯,但只有通過單步執行、設置斷點等調試手段,才能快速找出程序中 存在的邏輯錯誤。掌握基本的調試方法,對于我們觀察程序的運行過程,理解程 序算法思想也是非常重要的。

1. 進入與退出調試狀態

單擊工具欄第 1 行中部,紅色 d 字圖標(Start/End Debug Session),即可進 入調試狀態,再次單擊該圖標即可退出調試狀態,對應的快捷鍵是 Ctrl+F5



2. 單步運行程序
進入調試狀態后,第 2 行工具欄會自動變成“調試工具欄”,代碼窗口中的 黃色箭頭代表下一步要執行的行,剛進入調試狀態時黃色箭頭指向 main 函數的 第一條執行語句。

上圖紅線上方(第 2 行工具欄即調試工具欄)的前 5 個按鈕是最常用的。

第 1 個按鈕為“CPU 復位”,相當于按下復位按鈕,不管現在程序運行到何 處,馬上回到程序開始執行之前的狀態。

第 2 個按鈕為“全速運行程序”,快捷鍵 F5,即開始正常運行程序,如果連 接有仿真器或是聯機 Proteus 軟件仿真(具體方法后面講),則在硬件設備或者 Proteus 界面上可以看到真實的運行效果(如 LED 的閃爍)。

第 3 個按鈕為“Stop”,停止程序的運行。因單片機上的程序主體多為死循 環,一旦啟動不會停止,可以通過此按鈕結束程序。也可以直接單擊上面的紅色


d 按鈕(Ctrl+F5)直接退出調試狀態。

第 4 個按鈕為“單步執行”,快捷鍵 F11,第 5 個按鍵也是單步執行,快捷 鍵 F10。如果你熟悉 VC 的調試方法,對這兩個快捷鍵一定不會陌生,這里與 VC 里的含義完全相同,F10 會把函數調用語句當成是一行處理,即不會進入函 數內部,如需進入函數內部跟蹤調用過程,可按 F11。通過這兩個按鈕的圖標(一 個箭頭指向{}內,一個越過{})也可以很直觀地區分。

第 6 個按鈕(圖標為從{}內跳出的箭頭)的功能是從被調函數返回主程序, 對應快捷鍵為 Ctrl+F11,如果單步運行時不想進入函數內部,但誤按了 F11,可 可以用這個功能返回。注意按這個按鈕時并不是不再執行被調函數內的語句,而 是不再單步執行被調函數內的語句,全速執行完所有剩余的語句,回到調用函數 處。

第 7 個按鈕(圖標為箭頭指向{}),功能是執行到當前光標所在行,快捷鍵 是 Ctrl+F10,如果單步執行的過程中想全速執行一段代碼(如前面有一個需要運 行 1000 次的循環,如果不用全速運行的話,必須按 1000 次 F10,此時可以將光 標定位到該循環的后面,然后按Ctrl+F10)。

3. 監視寄存器、變量及端口的狀態 單步執行的目的是為了能跟蹤各個變量、寄存器及端口的狀態變化,以便找

出程序編寫中存在的邏輯錯誤。下面是常用的 3 種方法:
1)單步執行的過程中,鼠標指向代碼中相關變量,會提示其當前值。

2)在左側的“Register”(寄存器狀態)窗口中,可以看到部分特殊功能寄 存器的值,如果某個值剛剛被修改,則會高亮顯示。

3)打開 Peripherial菜單,可以查看各中斷、I/O口、串口及定時/計數器的 狀態,這在調試相關程序時非常有用。





這是單擊“Port 0”子菜單后,打開的 P0 口各位狀態的窗口:
第 1 行顯示的是 P0 口端口寄存器的狀態,如果執行了對 P0 寫的語句(如
P0=0x00),這里的狀態就會發生改變。

第 2 行顯示的是 P0 端口各對外引腳的狀態,默認為全 1,當需要模擬外部 輸入的時候,可以通過單擊第 2 行的相應位進行輸入(有勾表示 1,無勾表示 0)。 如現在想模擬 P0.0 引腳上輸入一個低電平,則只需將第 2 行最右端(第 0 位) 的勾去掉。接下來當程序讀取 P0.0引腳時,就會讀到 0。

4. 設置斷點 調試程序時如果僅靠單步執行,則顯得過于麻煩。特別是對于一些比較大型

的程序,我們可能只希望對其中一部分代碼仔細跟蹤觀察,此時可以設置斷點。 顧名思義,斷點就是程序執行到此處就會停下來,這時可以再結合單步執行來仔

細追蹤調試。

4 個斷點工具按鈕

設置斷點的方法:

1)將光標定位于要設置斷點的行;
2)單擊“設置斷點按鈕”。該按鈕位于工具欄第 2 行,為啟動調試的“紅色

d”按鈕后面的第 1 個按鈕(圖標為紅色圓點,快捷鍵為 F9)。 如上圖所示,當前程序執行到第 8 行(以黃色箭頭指示),當前分別在第 10

行和第 12 行設置了 2 個斷點(以紅色方塊表示,其中 12 行的斷點為白色方塊,

表示此斷點當前無效,即運行到此處不會停下來)。

如果想取消斷點,只需將光標定位到斷點行,然后再次單擊這個按鈕即可。 取消斷點是將斷點徹底消除掉,不可恢復;如果想暫時不在斷點處停止運行,

而不是永久消除斷點,可以使用第 2、第 3 個按鈕將斷點設置為暫時無效。

第 2、第 3 個斷點按鈕(紅色圓點圖標后面,分別為單個紅色圓圈和兩個紅 色圓圈)的功能是將當前光標所在行的斷點(第 2 個按鈕)或所有斷點(第 3 個按鈕)設置為無效或有效。注意這同樣是個乒乓開關,按一下設為無效,再按 一下又恢復為有效。

第 4 個按鈕(圖標為兩個紅點和一個黃叉)的功能是刪除所有斷點,對應的 快捷鍵是 Ctrl+Shift+F9。

5. 調試狀態下的其他窗口

這些按鈕對應于各個調試窗口

在調試狀態下,除了上面所提到的寄存器窗口、代碼窗口外,還可以看到很 多其他窗口,這些窗口都可以通過工具欄第 2 行后半部分的各個按鈕打開和關 閉。

常用的有以下幾個:

Disassembly Window(反編譯窗口,對應紅線上方第 2 個按鈕,上圖中最右 上方的窗口):該窗口中顯示每一行代碼對應的匯編語言指令;

Symbol Window(標識符窗口,對應紅線上方第 3 個按鈕,上圖中最右下方 的窗口):該窗口中顯示程序中全部變量、常量及函數的數據類型、存儲空間、


地址及當前值。

Memory Window(存儲器窗口,對應紅線上方第 7 個按鈕),可顯示內部 RAM、內部 ROM 及外部 ROM 等存儲的信息。在地址前加 D:則顯示內部 RAM 中的信息,地址前加 C:則顯示內部 ROM(程序存儲器)中的信息,地址前加 X:則顯示外部 ROM 中的信息。

6. 配置 Keil 與 Proteus 聯機仿真

在 Proteus 中繪制好硬件電路圖,在 Keil 中調試運行程序,即可在 Proteus 中觀察到硬件的運行狀態(如 LED 的閃爍、繼電器的動作等),這樣可以在不需 要實際焊接硬件線路和燒錄程序的前提下實現純軟件仿真。

實現 Keil 與 Proteus 聯機仿真的設置如下:

(一)計算機系統中應該安裝有 TCP/IP 協議(一般操作系統默認安裝,任 何能正常上網的計算機都滿足這個條件),因為兩個軟件是通過該協議通信的。 需要注意的是當出現防火墻的攔截提示時,應該選擇“解除阻止”,允許其正常 通信。

(二)Keil 端的設置


參見前面設置工程屬性(第 5 頁)的操作步驟,打開“Options for Targe‘t
1’”菜單,在工程屬性窗口中,選擇“Debug”標簽頁:
Target


注意:只有在代碼編輯狀態才能執行上述操作,若當前正處于調試狀態,需

退出。


單擊選中紅色橢圓中的“Use”前的單選鈕,并將其后的下拉菜單設置為
ProteusVSMSimulator”,若找不到這一項,可以先關閉 Keil,下載一個名為

vdmagdi.exe 的驅動程序并安裝后,再次打開 Keil 即可。 其他均保持默認,至此,Keil 端設置完成。

(三)Proteus 端的設置
Proteus 端的設置很簡單,只需將“Debug”菜單下的“Use Remote Debug
Monitor”勾選上即可。

完成上面的設置后,在 Keil 里面啟動調試,并運行程序(單步或全速均可), 即可在 Proteus 里面看到響應。在 Keil 里停止調試后,Proteus 里的仿真運行也會 自動停止。


pdf下載:http://www.zg4o1577.cn/bbs/dpj-180551-1.html


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:342822 發表于 2020-3-2 23:27 | 只看該作者
Proteus 8 綁架Keil C51簡單明了,不需要配置Keil C51編程環境。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品一区视频 | 国产一二三视频在线观看 | 爱爱爱av| 自拍视频网 | 国产综合精品一区二区三区 | 国产一区久久 | 伊人精品一区二区三区 | 久久久久国产一区二区三区 | 91精品国产一区二区三区 | 国产成人精品网站 | 九九久久精品 | 日韩视频免费在线 | 国产精品亚洲一区 | 亚洲国产一区二区三区, | 久久久www成人免费精品 | 精品久久久久久久久久久久 | 欧美一区二区三区精品免费 | 日韩在线观看一区 | 国产一级片久久久 | 精品视频成人 | 精品乱码一区二区 | 欧美激情国产日韩精品一区18 | 国产激情一区二区三区 | 欧美精品一区二区三区在线 | 国产精品久久久久久久久久 | 91超碰在线| 亚洲精品国产偷自在线观看 | 久久av一区二区三区 | 亚洲高清av在线 | 国产精品特级毛片一区二区三区 | 懂色av蜜桃av | 丁香综合 | 天天天操 | 羞羞视频免费观 | 久久久久精 | 欧美一级大片免费看 | 亚洲高清在线 | 一级毛片视频 | 国产激情在线 | 欧美性精品 | 日韩欧美三级 |