你的單片機(jī)程序怎么調(diào)試?我教你用Keil uVision2軟件如何調(diào)試資料下載
2021-04-16 |
pdf |
114.28KB |
次下載 |
3積分
資料介紹
先說一個概念:調(diào)試,在企業(yè)程序設(shè)計里(我把企業(yè)商務(wù)類型的軟件開發(fā)叫企業(yè)程序設(shè)計,把單片機(jī)與驅(qū)動程序這樣接觸底層匯編與硬件相關(guān)的程序設(shè)計叫底層程序設(shè)計),調(diào)試一般都用來跟蹤變量的賦值過程,以及查看內(nèi)存堆棧的內(nèi)容,查看這些內(nèi)容的目的在于觀察變量的賦值過程與賦值情況從而達(dá)到調(diào)試的目的。由于企業(yè)程序的宿主就是開發(fā)它的計算機(jī)本身,因此企業(yè)程序設(shè)計比起底層程序設(shè)計,特別是單片機(jī)的程序設(shè)計調(diào)試來的更直觀,調(diào)試也更方便。
單片機(jī)的程序設(shè)計調(diào)試分為兩種,一種是使用軟件模擬調(diào)試,意思就是用開發(fā)單片機(jī)程序的計算機(jī)去模擬單片機(jī)的指令執(zhí)行,并虛擬單片機(jī)片內(nèi)資源,從而實現(xiàn)調(diào)試的目的,但是軟件調(diào)試存在一些問題,如計算機(jī)本身是多任務(wù)系統(tǒng),劃分執(zhí)行時間片是由操作系統(tǒng)本身完成的,無法得到控制,這樣就無法時時的模擬單片機(jī)的執(zhí)行時序,也就是說 ,不可能像真正的單片機(jī)運(yùn)行環(huán)境那樣執(zhí)行的指令在同樣一個時間能完成(往往要完成的比單片機(jī)慢)。為了解決軟件調(diào)試的問題,第二種是硬件調(diào)試,硬件調(diào)試其實也需要計算機(jī)軟件的配合,大致過程是這樣的:計算機(jī)軟件把編譯好的程序通過串行口、并行口或者USB口傳輸?shù)接布{(diào)試設(shè)備中(這個設(shè)備叫仿真器),仿真器仿真全部的單片機(jī)資源(所有的單片機(jī)接口,并且有真實的引腳輸出),仿真器可以接入實際的電路中,然后與單片機(jī)一樣執(zhí)行。同時,仿真器也會返回單片機(jī)內(nèi)部內(nèi)存與時序等情況給計算機(jī)的輔助軟件,這樣 就可以在軟件里看到真實的執(zhí)行情況。不僅如此,還可以通過計算機(jī)斷的軟件實現(xiàn)單步、全速、運(yùn)行到光標(biāo)的常規(guī)調(diào)試手段。
圖1:仿真器
總結(jié)一下兩者的不同與相同:
相同點:
1:都可以檢測單片機(jī)執(zhí)行時序下的片內(nèi)資源情況(如R0-R7 、PC計數(shù)器等)
2:可以實現(xiàn)斷點、全速、單步、運(yùn)行到光標(biāo)等常規(guī)調(diào)試手段。
不同:
1:軟件調(diào)試無法實現(xiàn)直接連接硬件電路的調(diào)試,只能通過軟件窗口虛擬硬件端口的電平輸出情況而仿真器可以實現(xiàn)與單片機(jī)一樣的功能的硬件連接,從某種意義上說這個時候仿真器就是一個單片機(jī)。
2:軟件調(diào)試執(zhí)行單片機(jī)指令的時間無法與真實的單片機(jī)執(zhí)行時間畫上等號,也就是說如果一個程序在單片機(jī)中要執(zhí)行300us,可能在計算機(jī)中執(zhí)行的時間可能會比這個長很多,而且無法預(yù)料。仿真器則是完全與單片機(jī)相同。
3:軟件調(diào)試只能是一種初步的,小型工程的調(diào)試,比如一個只有幾百上千行的代碼的程序,軟件調(diào)試能很好的完成,如果是一個協(xié)調(diào)系統(tǒng),可能還需要借助幾個單片機(jī)仿真器和相關(guān)的儀器才能解決。
4:軟件仿真不需要額外花錢,而硬件需要,一個仿真器一般都上千元,同時可以仿真許多種單片機(jī)的工作。
最后,調(diào)試一般都是在發(fā)生錯誤與意外的情況下使用的,如果程序能正常執(zhí)行調(diào)試很多時候是用不上的,所以最高效率的程序開發(fā)還是程序員自己做好規(guī)范,而不是指望調(diào)試來解決問題。
下面將具體介紹如何使用Keil uVision 來軟件調(diào)試單片機(jī)程序。
首先:打開一個已經(jīng)編譯通過的單片機(jī)項目(如何新建與編譯單片機(jī)程序項目這里省略)
選擇Debug下面的Start/Stop Debug Session,這個選項可以打開調(diào)試也可以關(guān)閉調(diào)試
接下來看到的窗口就是調(diào)試窗口了:
下面具體說說相關(guān)子窗口的功能:
1:左側(cè)的ProjectWorkspace
Regs是片內(nèi)內(nèi)存的相關(guān)情況值,Sys是系統(tǒng)一些累加器、計數(shù)器等。Regs很簡單就不多說。具體介紹一下Sys
a 累加器ACC,往往在運(yùn)算前暫存一個操作數(shù)(如被加數(shù)),而運(yùn)算后又保存其結(jié)果(如代數(shù)和)。
b 寄存器B ,主要用于乘法和除法操作
sp
sp_max
dptr 數(shù)據(jù)指針DPTR
PC $
states 執(zhí)行指令的數(shù)量
sec 執(zhí)行指令的時間累計(單位 秒)
psw 程序狀態(tài)標(biāo)志寄存器PSW,八位寄存器,用來存放運(yùn)算結(jié)果的一些特征,如有無進(jìn)位、借位等。
p 奇偶標(biāo)志P。反映累加器ACC內(nèi)容的奇偶性,如果ACC中的運(yùn)算結(jié)果有偶數(shù)個1(如11001100B,其中有4個1),則P為0,否則,P=1。
f1
ov 溢出標(biāo)志位OV。MCS-51反映帶符號數(shù)的運(yùn)算結(jié)果是否有溢出,有溢出時,此位為1,否則為0。
rs
f0
ac 輔助進(jìn)位標(biāo)志AC。又稱半進(jìn)位標(biāo)志,它反映了兩個八位數(shù)運(yùn)算低四位是否有半進(jìn)位,即低四位相加(或減)有否進(jìn)位(或借位),如有則AC為1狀態(tài),否則為0。
cy 進(jìn)位標(biāo)志CY(PSW7)。它表示了運(yùn)算是否有進(jìn)位(或借位)。如果操作結(jié)果在最高位有進(jìn)位(加法)或者借位(減法),則該位為1,否則為0
由于PSW存放程序執(zhí)行中的狀態(tài),故又叫程序狀態(tài)字?運(yùn)算器中還有一個按位(bit)進(jìn)行邏輯運(yùn)算的邏輯處理機(jī)(又稱布爾處理機(jī))
根據(jù)指令執(zhí)行的不同上述值會有相應(yīng)的變化,也正是為了監(jiān)測這些在單片機(jī)中看不到的值而達(dá)到調(diào)試的目的。
雖然軟件調(diào)試無法實現(xiàn)硬件調(diào)試那樣的信號輸出,但是可以通過軟件窗口的模擬監(jiān)測輸出信號的高低電平以及單片機(jī)相關(guān)端口的變化。
上圖所示,Port0,Port1,Port2,Port3就對應(yīng)于單片機(jī)的四個P0,P1,P2,P3 口,共32個針腳。
這是全部打開后的效果。
有了輸出,就應(yīng)該有輸入的設(shè)置:
這個按鈕可以打開輸入預(yù)設(shè)窗口,輸入值窗口如下:
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 51單片機(jī)入門——Keil uVision4的使用
- UC-002:使用Keil uVision2 IDE用C語言開發(fā)
- Keil程序調(diào)試窗口資料下載
- Keil軟件使用和調(diào)試學(xué)習(xí)課件免費(fèi)下載 3次下載
- Keil uVision2中文版應(yīng)用程序合集免費(fèi)下載 0次下載
- keil uvision2應(yīng)用程序和資料合集免費(fèi)下載 0次下載
- 單片機(jī)開發(fā)環(huán)境keil uvision4應(yīng)用程序免費(fèi)下載 35次下載
- 單片機(jī)多功能調(diào)試助手應(yīng)用程序軟件和程序資料免費(fèi)下載 19次下載
- Keil uVision2入門教程免費(fèi)下載(單片機(jī)應(yīng)用開發(fā)軟件) 10次下載
- 單片機(jī)高級語言編程與_uVision2應(yīng)用實踐 4次下載
- keil C51 uVision2安裝方法 7次下載
- Keil uVision2 107次下載
- keil uvision2使用教程
- Keil uVision2 教程,uVision2教程
- keil uvision2中文版keil uvision2 0次下載
- 如何用keil給單片機(jī)燒錄程序 449次閱讀
- 51單片機(jī)燒錄軟件怎么用 269次閱讀
- 嵌入式程序基于源代碼仿真調(diào)試 904次閱讀
- 如何創(chuàng)建51單片機(jī)KEIL工程步驟 2568次閱讀
- 單片機(jī)的工控調(diào)試 1041次閱讀
- 單片機(jī)C語言軟件開發(fā)系統(tǒng)Keil C51的使用教程 8849次閱讀
- STM32單片機(jī)中OBG調(diào)試接口的介紹 5373次閱讀
- 單片機(jī)C語言有哪些優(yōu)越性?如何建立一個Keil C51項目 1.2w次閱讀
- C51單片機(jī)數(shù)據(jù)類型的具體定義及應(yīng)用 1.6w次閱讀
- 51單片機(jī)編程環(huán)境的搭建及代碼編寫的方法 2.2w次閱讀
- 介紹利用Keil的軟件仿真功能來實現(xiàn)51單片機(jī)串口調(diào)試用戶程序的方法 3w次閱讀
- 如何使用Keil3開發(fā)51單片機(jī)程序 7161次閱讀
- keil uvision2中文版|keil uvision2漢化補(bǔ)丁下載 1w次閱讀
- keil uvision2下載|keil uvision2漢化免費(fèi)版下載 1.1w次閱讀
- 單片機(jī)Keil軟件仿真與調(diào)試技巧 5.9w次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開關(guān)電源基礎(chǔ)知識
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計與實現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 6基于FPGA的C8051F單片機(jī)開發(fā)板設(shè)計
- 0.70 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21548次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183278次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論
查看更多