Keil C51的使用_第1頁(yè)
Keil C51的使用_第2頁(yè)
Keil C51的使用_第3頁(yè)
Keil C51的使用_第4頁(yè)
Keil C51的使用_第5頁(yè)
已閱讀5頁(yè),還剩67頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.任務(wù)任務(wù)2 Keil C51的使用的使用參見教材單片機(jī)的C51應(yīng)用程序設(shè)計(jì)第 302 頁(yè) 附錄A .Keil C51是什么?我們用它用來(lái)做什么?怎么用?I我想知道.nKeil C51是德國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開發(fā)系統(tǒng)。n該軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。通過(guò)該軟件可以完成編輯,編譯,仿真,連接,調(diào)試等整個(gè)開發(fā)流程。n目前常使用的Keil C51開發(fā)系統(tǒng)是uVersion IDE版本,開發(fā)人員可以用IDE或其他編輯器編輯匯編或C語(yǔ)言程序,然后分別由A51或C51編譯器編譯生成目標(biāo)代碼(.OBJ)。目標(biāo)文件可以由

2、LIB51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)過(guò)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換稱標(biāo)準(zhǔn)的HEX文件,以供調(diào)試器(dScope51或tScope51)進(jìn)行代碼級(jí)調(diào)試,也可用仿真器直接對(duì)目標(biāo)般調(diào)試,還可以直接寫入程序存儲(chǔ)器中。J解答問(wèn)題1.項(xiàng)目管理編寫源程序:C語(yǔ)言、匯編語(yǔ)言編譯:查找語(yǔ)法錯(cuò)誤、生成HEX文件調(diào)試運(yùn)行:軟件仿真、硬件調(diào)試 J解答問(wèn)題2.一、啟動(dòng)軟件二、項(xiàng)目管理1、打開項(xiàng)目2、創(chuàng)建項(xiàng)目3、選擇器件4、添加文件5、移除文件6、設(shè)置調(diào)試環(huán)境G探討問(wèn)題3三、新建文件四、編譯連接五、調(diào)試運(yùn)行1、常用調(diào)試命令2、斷點(diǎn)設(shè)置3、在線匯編4、調(diào)試觀察窗口5、外圍接

3、口觀察窗口.一、啟動(dòng)軟件n在桌面上選擇【開始】【程序】“Keil uVision”單擊圖標(biāo)。n或從桌面上直接雙擊Keil uVision的圖標(biāo)。pKeil uVision的圖標(biāo)p啟動(dòng)時(shí)的屏幕.puVision集成開發(fā)環(huán)境編輯操作界面主要包括三個(gè)窗口:工程項(xiàng)目窗口、編輯窗口和輸出窗口。 puVision啟動(dòng)時(shí),總是打開最近使用的工程,可以單擊Project菜單中的Close Project項(xiàng)關(guān)閉該工程。 .二、工程管理1、打開工程n單擊Project菜單,在彈出的下拉菜單中選中Open Project選項(xiàng),找到工程所在位置,雙擊打開。n對(duì)于近期使用過(guò)的工程,可Project下拉菜單中直接點(diǎn)擊選擇

4、。.2、創(chuàng)建工程n單擊Project菜單,在彈出的下拉菜單中選中New Project選項(xiàng)。n輸入工程文件的名字,不需要輸入擴(kuò)展名。p為工程取一個(gè)名字,工程名應(yīng)便于記憶且不宜太長(zhǎng)。p工程默認(rèn)擴(kuò)展名.uv2 n選擇要保存的路徑,然后“保存”按鈕。 p建議為每個(gè)工程單獨(dú)建立一個(gè)目錄,并且將工程中需要的所有文件都放在這個(gè)目錄下。 參見教材單片機(jī)的C51應(yīng)用程序設(shè)計(jì)第 308 頁(yè) .3、選擇器件n工程建立完畢,uVision2會(huì)立即彈出一個(gè)對(duì)話框,要求選擇單片機(jī)的型號(hào)。p器件選擇的目的是告訴uVision2最終使用的單片機(jī)芯片的型號(hào)是哪一個(gè)公司的哪一個(gè)型號(hào),因?yàn)椴煌吞?hào)的芯片內(nèi)部資源是不同的;uVis

5、ion2可根據(jù)選擇進(jìn)行SFR的預(yù)定義,在軟硬件仿真中提供易于操作的外設(shè)浮動(dòng)窗口等。 puVision2支持的所有CPU器件的型號(hào)根據(jù)生產(chǎn)廠家形成器件組。p用戶可根據(jù)需要選擇相應(yīng)的器件組并選擇相應(yīng)的器件型號(hào)。.n通過(guò)滾動(dòng)條,選擇生產(chǎn)廠商、目標(biāo)CPU。p如:Atmel器件組內(nèi)的AT89C51單片機(jī)。首先找到Atmel公司,然后單擊左邊的“+”號(hào)展開該組。選擇AT89C51之后,單擊“確定”。.n如果在選擇了目標(biāo)器件后,想更改器件,可選擇Project菜單中的Select Device for TargetTartet 1。 p由于不同廠家的許多型號(hào)性能相近,因此,如果找不到用戶要求的芯片信號(hào),可以

6、選擇其他公司的相近型號(hào)。參見教材單片機(jī)的C51應(yīng)用程序設(shè)計(jì)第 308 頁(yè) .n在隨后彈出的對(duì)話框單擊“否”,不添加啟動(dòng)代碼。p復(fù)制標(biāo)準(zhǔn)8051啟動(dòng)代碼到工程和添加啟動(dòng)代碼到工程?選擇“否”按鈕。如果選擇“是”,工程文件中就包含一個(gè)startup.a51文件,否則無(wú)該文件。如果你使用匯編語(yǔ)言,又不需要初始化51內(nèi)存,選擇“否”。如果你使用C語(yǔ)言,需要初始化內(nèi)存,硬件設(shè)計(jì)時(shí)添加了擴(kuò)展內(nèi)存,要精心調(diào)整啟動(dòng)代碼參數(shù)??梢愿鶕?jù)仿真器的需要進(jìn)行選擇。 .4、添加文件p新建工程后,“Project Workspace”中沒(méi)有文件。n在左邊的工程文件管理窗口中,單擊“Target 1”前面的“”號(hào),然后在“S

7、ource Group 1”上單擊右鍵,然后單擊“Add File to Group Source Group 1”。參見教材單片機(jī)的C51應(yīng)用程序設(shè)計(jì)第 310 頁(yè) .p彈出添加文件對(duì)話框,要求尋找源文件。n通過(guò)“查找范圍”列表欄找到文件所在的文件夾,再單擊“文件類型”中下拉列表框,從中選取合適的文件類型。n默認(rèn)的“文件類型”為C Source file(*.c),也就是以C為擴(kuò)展名的C51文件。n若需要匯編語(yǔ)言文件,請(qǐng)點(diǎn)擊對(duì)話框中“文件類型”后的下拉列表,找到并選中Asm Source file(*.s*; *.src; *.a*)項(xiàng)。n在列表中找到需要的文件,選中文件再單擊“Add”,或

8、雙擊文件也可添加成功。 .p在文件加入項(xiàng)目后,該對(duì)話框并不消失,等待繼續(xù)加入其它文件。p初學(xué)時(shí)常會(huì)誤認(rèn)為操作沒(méi)有成功而再次雙擊同一文件,這時(shí)會(huì)出現(xiàn)一個(gè)的對(duì)話框,提示你所選文件已在列表中,此時(shí)應(yīng)點(diǎn)擊“確定”,返回前一對(duì)話框。n點(diǎn)擊“Close”即可返回主界面。p觀察添加文件后工程欄的變化,可以發(fā)現(xiàn):在添加了匯編語(yǔ)言文件后,在“Source Group 1”文件夾前面出現(xiàn)了一個(gè)“+”號(hào),單擊“+”號(hào)展開就看到了剛才添加的文件,雙擊文件名,即打開該源程序。 .5、移除文件n要把某個(gè)文件從工程中移除,可在此文件上單擊右鍵,然后單擊“Remove File ”。p移除不是刪除,文件依然存在。.1、打開一

9、個(gè)已有的工程項(xiàng)目(不是默認(rèn)項(xiàng)目)。2、打開一個(gè)已有的工程項(xiàng)目,修改單片機(jī)型號(hào)。3、打開一個(gè)已有的工程項(xiàng)目,刪除原有的文件,裝入一個(gè)已有的C語(yǔ)言文件。4、打開一個(gè)已有的工程項(xiàng)目,刪除原有的文件,裝入一個(gè)已有的匯編語(yǔ)言文件。5、新建一個(gè)工程項(xiàng)目,選擇單片機(jī)型號(hào),導(dǎo)入一個(gè)已有的C語(yǔ)言文件。6、新建一個(gè)工程項(xiàng)目,選擇單片機(jī)型號(hào),導(dǎo)入一個(gè)已有的匯編語(yǔ)言文件。I我來(lái)演示.6、工程設(shè)置p項(xiàng)目建立好后還要對(duì)工程進(jìn)行進(jìn)一步的設(shè)置,以滿足要求。 n將鼠標(biāo)指針指向“Target 1”并單擊右鍵,再?gòu)膹棾龅挠益I菜單中單擊“Options for Target”選項(xiàng),打開工程設(shè)置對(duì)話框。 參見教材單片機(jī)的C51應(yīng)用程序

10、設(shè)計(jì)第 311 頁(yè) .n單擊“Target”項(xiàng)目選項(xiàng)卡。p“Xtal(MHz)”后面的數(shù)值是晶振頻率值,默認(rèn)值是所選目標(biāo)CPU的最高可用頻率值。p該數(shù)值與最終產(chǎn)生的目標(biāo)代碼無(wú)關(guān),僅用于軟件模擬調(diào)試時(shí)顯示程序執(zhí)行時(shí)間。p正確設(shè)置該數(shù)值可使顯示時(shí)間與實(shí)際所用時(shí)間一致。如果沒(méi)必要了解程序執(zhí)行的時(shí)間,也可以不設(shè)。p“Memory Model”存儲(chǔ)模式用于設(shè)置RAM使用情況,有三個(gè)選擇項(xiàng):pSmall是所有變量都在單片機(jī)的內(nèi)部RAM中;pCompact可使用一頁(yè)外部擴(kuò)展RAM;pLarge則可使用全部外部擴(kuò)展RAM。.p“Code Rom Size”(代碼空間)用于設(shè)置ROM空間的使用類別,即Small

11、模式只用小于2KB的程序空間;Compact模式單個(gè)函數(shù)(子程序)代碼量不能超過(guò)2KB;Large模式可用全部64KB空間。pUse on-chip ROM選擇項(xiàng),確認(rèn)是否僅使用片內(nèi)ROM(注意:選中該項(xiàng)并不會(huì)影響最終生成的目標(biāo)代碼量)。pOperating(操作系統(tǒng))通常用默認(rèn)值:None;p其余選項(xiàng)必須根據(jù)所用的硬件來(lái)決定,如單片應(yīng)用,未進(jìn)行任何擴(kuò)展,均按默認(rèn)值設(shè)置即可。.n設(shè)置對(duì)話框中的“Output”輸出選項(xiàng)卡。p“Create HEX file”(產(chǎn)生HEX文件)選項(xiàng)用于生成可執(zhí)行代碼文件(可用編程器寫入單片機(jī)芯片的擴(kuò)展名為HEX的文件),默認(rèn)情況該項(xiàng)未被選中,如要做向單片機(jī)芯片寫程

12、序的硬件實(shí)驗(yàn),必須選中該項(xiàng)。這一點(diǎn)是初學(xué)者易疏忽的,在此特別提醒注意。p選中Debug Information將會(huì)產(chǎn)生調(diào)試信息,這些信息用于調(diào)試,如果需要對(duì)程序進(jìn)行調(diào)試,應(yīng)當(dāng)選中該項(xiàng)。參見教材單片機(jī)的C51應(yīng)用程序設(shè)計(jì)第 312 頁(yè) .pBrowse Information是產(chǎn)生瀏覽信息,該信息可以用菜單ViewBrowse來(lái)查看,這里取默認(rèn)值。p按鈕Select Folder for Objects用來(lái)選擇最終目標(biāo)文件所在的文件夾,默認(rèn)是與工程文件在同一個(gè)文件夾中。pName of Executable用于指定最終生成的目標(biāo)文件的名字,默認(rèn)與工程的名字相同,這兩項(xiàng)一般不需要更改。.nList

13、ing頁(yè)面用于調(diào)整生成的列表文件選項(xiàng)。p在匯編或編譯完成后將產(chǎn)生(*.lst)的列表文件,在連接完成后也將產(chǎn)生(*.m51)的列表文件,該頁(yè)用于對(duì)列表文件的內(nèi)容和形式進(jìn)行細(xì)致的調(diào)節(jié),其中比較常見的選項(xiàng)是C Compile Listing下的Assembly Code項(xiàng),選中該項(xiàng)可以在列表文件中生成C語(yǔ)言源程序所對(duì)應(yīng)的匯編代碼。.nC51頁(yè)面用于對(duì)Keil的C51編譯器的編譯過(guò)程進(jìn)行控制。p其中比較常用的是Code Optimization組,該組中Level是優(yōu)化等級(jí),C51在對(duì)源程序進(jìn)行編譯時(shí),可以對(duì)代碼多至9級(jí)優(yōu)化,默認(rèn)使用8級(jí),一般不必修改。如果在編譯中出現(xiàn)一些問(wèn)題,可以降低優(yōu)化級(jí)別試一

14、試。pEmphasis是選擇編譯優(yōu)先方式,第一項(xiàng)是代碼量?jī)?yōu)化(最終生成的代碼量?。?;第二項(xiàng)是速度優(yōu)先(最終生成代碼的速度快);第三項(xiàng)是默認(rèn)。默認(rèn)的是速度優(yōu)先,可根據(jù)需要更改。.nDebug頁(yè)面用于設(shè)置用戶程序的調(diào)試方式。p單擊“Debug”仿真選項(xiàng)卡,可以選擇軟件仿真,也可以選擇硬件仿真。p軟件仿真是在uVision2環(huán)境中僅用軟件方式完成對(duì)用戶程序的調(diào)試;p硬件仿真需要硬件目標(biāo)板或相應(yīng)硬件虛擬仿真環(huán)境的支持。p對(duì)于軟件仿真,則選擇左側(cè)的“Use Simulator”即可。這也是系統(tǒng)的默認(rèn)設(shè)置。p對(duì)于硬件仿真器仿真設(shè)置請(qǐng)單擊靠右側(cè)的“Use:”項(xiàng)后,在其右側(cè)的列表欄中選取一個(gè)仿真目標(biāo)即可。參見

15、教材單片機(jī)的C51應(yīng)用程序設(shè)計(jì)第 314 頁(yè) .三、新建文件n單擊“File”菜單,再在下拉菜單中單擊“New”選項(xiàng)。n或直接單擊工具欄上的“新建文件”快捷圖標(biāo)來(lái)建立一個(gè)新的編輯窗口。 n此時(shí)光標(biāo)在編輯窗口里閃爍,就可以輸入用戶的應(yīng)用程序了。n或者把已有的程序從其他地方直接復(fù)制到程序編輯窗口內(nèi)。 p文件的建立也可以用Windows環(huán)境的附件中的記事本或?qū)懽职宓燃兾谋揪庉嬡浖瓿?。參見教材單片機(jī)的C51應(yīng)用程序設(shè)計(jì)第 309 頁(yè) .p新建文件時(shí),建議首先保存空白文件。n單擊菜單上的“File”,在下拉菜單中選中“Save As”選項(xiàng),在彈出對(duì)話框的“文件名”欄右側(cè)編輯框中,輸入欲使用的文件名,然

16、后單擊“保存”按鈕。p保存時(shí)必須輸入正確的擴(kuò)展名。如果用C語(yǔ)言編寫程序,文件的擴(kuò)展名為“.c”;如果用匯編語(yǔ)言編寫程序,文件的擴(kuò)展名為“.asm”。p在輸入指令時(shí)可以看到事先保存待編輯文件的好處:Keil會(huì)自動(dòng)識(shí)別關(guān)鍵字,并以不同的顏色提示用戶加以注意,這樣會(huì)使用戶少犯錯(cuò)誤,有利于提高編程效率。p程序輸入完畢后別忘了再次保存。參見教材單片機(jī)的C51應(yīng)用程序設(shè)計(jì)第 309 頁(yè) .1、打開一個(gè)已有的工程項(xiàng)目,導(dǎo)入一個(gè)新建的C語(yǔ)言文件。 2、打開一個(gè)已有的工程項(xiàng)目,導(dǎo)入一個(gè)新建的匯編語(yǔ)言文件。 I我來(lái)演示.四、編譯連接n在住窗口中單擊“Project”菜單,選中“Built target”選項(xiàng)進(jìn)行編

17、譯連接。n或者使用快捷鍵 F7。n或者單擊工具欄的快捷圖標(biāo)。 參見教材單片機(jī)的C51應(yīng)用程序設(shè)計(jì)第 312 頁(yè) .p選擇“Built target”選項(xiàng),如果當(dāng)前文件已修改,軟件會(huì)先對(duì)該文件進(jìn)行編譯,然后再連接以產(chǎn)生目標(biāo)代碼。p選擇“Rebuild All target files”將會(huì)對(duì)當(dāng)前工程中的所有文件重新進(jìn)行編譯然后再連接,確保最終生產(chǎn)的目標(biāo)代碼是最新的。p選擇“Translate”項(xiàng)則僅對(duì)該文件進(jìn)行編譯,不進(jìn)行連接。n以上操作可以通過(guò)工具欄按鈕直接進(jìn)行。p從左到右分別是:編譯、編譯連接、全部重建、停止編譯和對(duì)工程進(jìn)行設(shè)置。 .p編譯過(guò)程中的信息將會(huì)在主窗口下部的輸出窗口顯示出來(lái)(如錯(cuò)

18、誤、警告等信息)。 p“assembling.”,表示此時(shí)正在編譯源程序。p“l(fā)inking.”,表示此時(shí)正在鏈接工程項(xiàng)目文件。p如果有錯(cuò)誤,系統(tǒng)會(huì)提示所有錯(cuò)誤所在的位置和錯(cuò)誤的原因,以方便用戶查找與修改,并有“Target not created”的提示。n在錯(cuò)誤提示行上雙擊鼠標(biāo),即可定位到編輯窗口中的錯(cuò)誤所在行,并錯(cuò)誤指令左面出現(xiàn)藍(lán)色箭頭提示,可根據(jù)此提示找出錯(cuò)誤并修改。n修改后再次進(jìn)行編譯,反復(fù)進(jìn)行,直至編譯完全通過(guò),即系統(tǒng)提示為出現(xiàn)“0 Error(s)” 。 參見教材單片機(jī)的C51應(yīng)用程序設(shè)計(jì)第 312 頁(yè) .p“Creating hex file from.”,說(shuō)明已生成目標(biāo)文件。

19、p“.-0 Error(s),0 Warning(s).”說(shuō)明項(xiàng)目在編譯過(guò)程中不存在錯(cuò)誤和警告,編譯鏈接成功。 p編譯異常一般有兩種提示,及警告(Warning)和錯(cuò)誤(Error)。警告一般不影響程序的執(zhí)行,而錯(cuò)誤是產(chǎn)生不了目標(biāo)代碼的,當(dāng)然就不能被計(jì)算機(jī)正常執(zhí)行了。 .1、打開一個(gè)已有的工程項(xiàng)目,編譯連接。2、打開一個(gè)已有的工程項(xiàng)目,改動(dòng)原來(lái)的程序,編譯連接。3、在第2步的基礎(chǔ)上,修改程序,編譯連接直至通過(guò)。4、打開一個(gè)已有的工程項(xiàng)目,編譯連接,生成HEX文件。I我來(lái)演示.五、調(diào)試運(yùn)行1、常用調(diào)試命令p在Keil uVision集成開發(fā)環(huán)境下有兩種方法執(zhí)行調(diào)試命令:一種是選擇主菜單debug

20、下的子菜單;另一種是用主界面下工具欄中的調(diào)試工具。n在對(duì)工程成功地進(jìn)行編譯、連接以后使用菜單DebugStart/Stop Debug Session可進(jìn)入調(diào)試狀態(tài)。n或按Ctrl+F5 。n或單擊工具條上的按鈕。參見教材單片機(jī)的C51應(yīng)用程序設(shè)計(jì)第 314 頁(yè) .p進(jìn)入調(diào)試狀態(tài)后,界面與編緝狀態(tài)相比有明顯的變化,Debug菜單項(xiàng)中原來(lái)不能用的命令現(xiàn)在已可以使用了。 p工具欄會(huì)多出一個(gè)用于運(yùn)行和調(diào)試的工具條。p從左到右依次是復(fù)位、運(yùn)行、暫停、單步、過(guò)程單步、執(zhí)行完當(dāng)前子程序、運(yùn)行到當(dāng)前行、下一狀態(tài)、打開跟蹤、觀察跟蹤、反匯編窗口、觀察窗口、代碼作用范圍分析、1串行窗口、內(nèi)存窗口、性能分析、工具

21、按鈕等命令。 .(1)復(fù)位CPU 單擊工具欄的“Reset CPU”命令按鈕可以復(fù)位CPU。在不改變程序的情況下,若想使程序重新開始運(yùn)行,執(zhí)行此命令即可。執(zhí)行此命令后程序指針?lè)祷氐?000H地址單元。另外,一些內(nèi)部特殊功能寄存器在復(fù)位期間也將重新賦值。例如,A將變?yōu)?0H,DPTR變?yōu)?000H,SP變?yōu)?7H,I/O口變?yōu)?FFH。 .(2)全速運(yùn)行(F5) 用“Debug”工具欄的“Go”或快捷命令“Run”命令按鈕,即可實(shí)現(xiàn)全速運(yùn)行程序。當(dāng)然若程序中已經(jīng)設(shè)置斷點(diǎn),程序?qū)?zhí)行到斷點(diǎn)處,并等待調(diào)試指令。Vision2處于全速運(yùn)行期間,Vision2不允許對(duì)任何資源的查看,也不接受其他命令。.

22、(3)單步跟蹤(F11) 用“Debug”工具欄的“Step”或快捷命令“Step into”命令按鈕,可以單步跟蹤程序。每執(zhí)行一次此命令,程序?qū)⑦\(yùn)行一條指令(以指令為基本執(zhí)行單元)。當(dāng)前的指令用黃色箭頭標(biāo)出,每執(zhí)行一步箭頭都會(huì)移動(dòng),已執(zhí)行過(guò)的語(yǔ)言呈綠色。在匯編語(yǔ)言調(diào)試下,可以跟蹤到每一個(gè)匯編指令的執(zhí)行。.(4)單步運(yùn)行(F10) 用“Debug”工具欄的“Step Over”或快捷命令“Step Over”按鈕,可以以過(guò)程單步形式執(zhí)行命令。所謂過(guò)程單步,是指將匯編語(yǔ)言中的子程序或高級(jí)語(yǔ)言中的函數(shù)作為一個(gè)語(yǔ)句來(lái)全速執(zhí)行。它以語(yǔ)句(該語(yǔ)句不管是單一命令行還是函數(shù)調(diào)用)為基本執(zhí)行單元。.(5)執(zhí)行

23、返回(Ctrl+F11) 在用單步跟蹤命令跟蹤到子函數(shù)或子程序內(nèi)部時(shí),使用“Debug”菜單欄中的“Step Out of Current Function”或快捷命令按鈕“Step Out”,即可將程序的PC指針?lè)祷氐秸{(diào)用此子程序或函數(shù)的下一條語(yǔ)句。 .2、斷點(diǎn)設(shè)置n在某一程序行設(shè)置斷點(diǎn),設(shè)置好斷點(diǎn)后可以全速運(yùn)行程序,一旦執(zhí)行到該程序行即停止,可在此觀察有關(guān)變量值,以確定問(wèn)題所在。 n在程序行設(shè)置/移除斷點(diǎn)的方法是將光標(biāo)定位于需要設(shè)置斷點(diǎn)的程序行,使用菜單【Debug】【Insert/Remove BreakPoint】設(shè)置或移除斷點(diǎn)。n可以用鼠標(biāo)在該行雙擊實(shí)現(xiàn)設(shè)置或移除斷點(diǎn)。參見教材單片機(jī)

24、的C51應(yīng)用程序設(shè)計(jì)第 315 頁(yè) .n【Debug】【Enable/Disable Breakpoint】是開啟或暫停光標(biāo)所在行的斷點(diǎn)功能。n【Debug】【Disable All Breakpoint】暫停所有斷點(diǎn)。n【Debug】【Kill All BreakPoint】清除所有的斷點(diǎn)設(shè)置。n按【Debug】【Breakpoints】即出現(xiàn)一個(gè)對(duì)話框,該對(duì)話框用于對(duì)斷點(diǎn)進(jìn)行詳細(xì)的設(shè)置。 Expression 后的編緝框內(nèi)用于輸入表達(dá)式,該表達(dá)式用于確定程序停止運(yùn)行的條件。 .1、打開一個(gè)已有的工程項(xiàng)目,編譯連接,全速調(diào)試運(yùn)行(軟件仿真)。2、打開一個(gè)已有的工程項(xiàng)目,編譯連接,單步調(diào)試運(yùn)行

25、(軟件仿真) 。3、打開一個(gè)已有的工程項(xiàng)目,設(shè)置斷點(diǎn),刪除斷點(diǎn)。I我來(lái)演示.3、在線匯編p在進(jìn)入Keil的調(diào)試環(huán)境以后,如果發(fā)現(xiàn)程序有錯(cuò),可以直接對(duì)源程序進(jìn)行修改,但是要使修改后的代碼起作用,必須先退出調(diào)試環(huán)境,重新進(jìn)行編譯、連接后再次進(jìn)入調(diào)試。 p如果只是需要對(duì)某些程序行進(jìn)行測(cè)試,或僅需對(duì)源程序進(jìn)行臨時(shí)的修改,可采用在線匯編。n將光標(biāo)定位于需要修改的程序行上,用菜單DebugInline Assambly 。 n在Enter New后面的編緝框內(nèi)直接輸入需更改的程序語(yǔ)句,輸入完后鍵入回車將自動(dòng)指向下一條語(yǔ)句,可以繼續(xù)修改,如果不再需要修改,可以點(diǎn)擊右上角的關(guān)閉按鈕關(guān)閉窗口。 .4、調(diào)試觀察窗

26、口pKeil軟件在調(diào)試程序時(shí)提供了多個(gè)窗口,主要包括輸出窗口(Output Windows)、觀察窗口(Watch&Call Statck Windows)、存儲(chǔ)器窗口(Memory Window)、反匯編窗口(Dissambly Window)和串行窗口(Serial Window)等。p進(jìn)入調(diào)試模式后,可以通過(guò)菜單View下的相應(yīng)命令打開或關(guān)閉這些窗口,各窗口的大小可以使用鼠標(biāo)調(diào)整。p程序調(diào)試過(guò)程中可借助于各種窗口觀察程序運(yùn)行的狀態(tài),便于分析程序運(yùn)行的正確性。 .(1)輸出窗口(Output Windows)p進(jìn)入調(diào)試程序后,輸出窗口自動(dòng)切換到Command頁(yè)。該頁(yè)用于輸入調(diào)試命令

27、和輸出調(diào)試信息。n在調(diào)試狀態(tài)下,選擇主菜單View下的Output Window選項(xiàng),可打開或關(guān)閉輸出窗口。.(2)寄存器觀察窗口(Project Window)n在調(diào)試狀態(tài)下,選擇主菜單View下的Project Window選項(xiàng),可打開或關(guān)閉工程項(xiàng)目窗口。p工程項(xiàng)目窗口中的寄存器頁(yè)(Regs)給出了當(dāng)前的工作寄存器組(r0r7)和系統(tǒng)寄存器的值。p系統(tǒng)寄存器組有一些是實(shí)際存在的寄存器如a、b、sp、dptr、pc、psw等特殊寄存器,有一些是實(shí)際中并不存在或雖然存在卻不能對(duì)其操作的如PC、Status等。.p每當(dāng)程序中執(zhí)行到對(duì)某寄存器的操作時(shí),該寄存器會(huì)以反色(藍(lán)底白字)顯示。p用鼠標(biāo)單擊

28、然后按下F2鍵,即可修改該值。p在執(zhí)行程序的過(guò)程中可以看到,這些值會(huì)隨著程序的執(zhí)行發(fā)生相應(yīng)的變化。 .(3)存儲(chǔ)器觀察窗口(Memory Window)n在調(diào)試狀態(tài)下,選擇主菜單View下的Memory Window選項(xiàng),可打開或關(guān)閉存儲(chǔ)器觀察窗口。p存儲(chǔ)器觀察窗口分4頁(yè),分別是Memory#1 Memory#4。p每一頁(yè)都可以顯示程序存儲(chǔ)器、內(nèi)部數(shù)據(jù)存儲(chǔ)器和外部數(shù)據(jù)存儲(chǔ)器的值。參見教材單片機(jī)的C51應(yīng)用程序設(shè)計(jì)第 316 頁(yè) .n通過(guò)在Address后的編緝框內(nèi)輸入“字母:數(shù)字”即可顯示相應(yīng)內(nèi)存值,其中字母可以是C、D、I、X、S。n例如:C:30 C:0X500 C:1000H 字符存儲(chǔ)空

29、間C片內(nèi)及片外ROMD直接尋址的片內(nèi)RAMI間接尋址的片內(nèi)RAMX片外RAMS系統(tǒng)占用空間.n在存儲(chǔ)器窗口的地址欄處輸入C:0000H后回車,則可以觀看所有單片機(jī)片內(nèi)程序存儲(chǔ)器從地址0開始的單元內(nèi)容,即查看程序的二進(jìn)制代碼。p下面用橫線畫出來(lái)的部分就是已經(jīng)編輯的源程序轉(zhuǎn)化成的機(jī)器語(yǔ)言的十六進(jìn)制數(shù)(對(duì)應(yīng)的機(jī)器碼)。.n如果在存儲(chǔ)器窗口的地址欄處輸入D:30H后回車,則可以觀看單片機(jī)片內(nèi)數(shù)據(jù)存儲(chǔ)器30H單元開始的內(nèi)容。n如果在存儲(chǔ)器窗口的地址欄處輸入I:10后回車,顯示10號(hào)單元開始的內(nèi)部數(shù)據(jù)存儲(chǔ)器的內(nèi)容。該部分是間接尋址方式。n如果在存儲(chǔ)器窗口的地址欄處輸入X:0 x1000后回車,顯示從100

30、0H單元開始的外部數(shù)據(jù)存儲(chǔ)器的內(nèi)容。.n這些窗口的顯示值可以以各種形式顯示,如十進(jìn)制、十六進(jìn)制、字符型等,改變顯示方式的方法是點(diǎn)鼠標(biāo)右鍵,在彈出的快捷菜單中選擇。 p該菜單用分隔條分成三部份,其中第一部份與第二部份的三個(gè)選項(xiàng)為同一級(jí)別。選中第一部份的任一選項(xiàng),內(nèi)容將以整數(shù)形式顯示。選中第二部份的Ascii項(xiàng)則將以字符型式顯示。選中Float項(xiàng)將相鄰四字節(jié)組成的浮點(diǎn)數(shù)形式顯示。選中Double項(xiàng)則將相鄰8字節(jié)組成雙精度形式顯示。 .p第一部份又有多個(gè)選擇項(xiàng),其中Decimal項(xiàng)是一個(gè)開關(guān),如果選中該項(xiàng),則窗口中的值將以十進(jìn)制的形式顯示,否則按默認(rèn)的十六進(jìn)制方式顯示。pUnsigned和Signe

31、d則分別代表無(wú)符號(hào)形式和有符號(hào)形式。 pUnsigned和Signed后分別有三個(gè)選項(xiàng)。Char:以單字節(jié)方式顯示。Int:將相鄰雙字節(jié)組成整型數(shù)方式顯示。Long:將相鄰四字節(jié)組成長(zhǎng)整型方式顯示。.p究竟從哪一個(gè)單元開始的相鄰單元?jiǎng)t與你的設(shè)置有關(guān)。以整型為例,如果你輸入的是I:0,那么00H 和01H單元的內(nèi)容將會(huì)組成一個(gè)整型數(shù);如果你輸入的是I:1,01H和02H單元的內(nèi)容全組成一個(gè)整型數(shù),以此類推。p第三部份的Modify Memory at X:xx 用于更改鼠標(biāo)處的內(nèi)存單元值,選中該項(xiàng)即出現(xiàn)一個(gè)對(duì)話框,可以在這個(gè)對(duì)話框內(nèi)輸入要修改的內(nèi)容。 .(4)變量觀察窗口(Watch&C

32、all Statck Windows)p如果需要觀察其它的寄存器的值或者在高級(jí)語(yǔ)言編程時(shí)需要直接觀察變量,就要借助于觀察窗口。n在調(diào)試狀態(tài)下,選擇主菜單View下的Watch&Call Statck Windows選項(xiàng),可打開或關(guān)閉變量觀察窗口。變量觀察窗口由4頁(yè)組成,分別是Locals、Watch#1、Watch#2和Call Stack。pLocals頁(yè)用于自動(dòng)顯示程序運(yùn)行過(guò)程中的局部變量的值,這些局部變量只有在有效區(qū)域時(shí)才被顯示。pWatch#1、Watch#2頁(yè)既可顯示局部變量的值也可顯示全局變量的值,使用時(shí)在name區(qū)按F2鍵,然后輸入變量名,常年供需運(yùn)行時(shí)就可在value區(qū)

33、看到對(duì)應(yīng)的變量值。pCall Stack頁(yè)主要用于顯示子程序調(diào)用過(guò)程中的相關(guān)信息。.(5)串口調(diào)試觀察窗口(Serial Window)n在調(diào)試狀態(tài)下,選擇主菜單View下的Serial Window #1、Serial Window #2或Serial Window #3選項(xiàng),可打開或關(guān)閉串口調(diào)試觀察窗口。p該窗口提供一個(gè)串行的界面,串口的發(fā)送和接收都可在該界面上進(jìn)行,例如:用printf和scanf的輸出和輸入就可以通過(guò)該界面完成。.(6)反匯編窗口(Dissambly Window)n點(diǎn)擊ViewDissambly Window可以打開反匯編窗口,該窗口可以顯示反匯編后的代碼、源程序和相

34、應(yīng)反匯編代碼的混合代碼,可以在該窗口進(jìn)行在線匯編、利用該窗口跟蹤已找行的代碼、在該窗口按匯編代碼的方式單步執(zhí)行。nKeil提供了跟蹤功能, 在運(yùn)行程序之前打開調(diào)試工具條上的允許跟蹤代碼開關(guān),然后全速運(yùn)行程序,當(dāng)程序停止運(yùn)行后,點(diǎn)擊查看跟蹤代碼按鈕,自動(dòng)切換到反匯編窗口,其中前面標(biāo)有“-”號(hào)的行就是中斷以前執(zhí)行的代碼,可以按窗口邊的上卷按鈕向上翻查看代碼執(zhí)行記錄。 .(7)周期更新窗口(Periodic Window Updata)n點(diǎn)擊ViewPeriodic Window Updata,確認(rèn)該項(xiàng)處于被選中狀態(tài),即可在全速運(yùn)行時(shí)動(dòng)態(tài)地觀察有關(guān)值的變化。p選中該項(xiàng),將會(huì)使程序模擬執(zhí)行的速度變慢。.5、外圍接口觀察窗口(1)并行口觀察窗口n選擇主菜單Peripherals下的I/O-Port子菜單下的Port0、Port1等。p并行口多少根據(jù)芯片型號(hào)而定。p可以觀察并行口的值和各位的狀態(tài)。p下圖所示是P1口的值和狀態(tài),其中位狀態(tài)中的“”表示該位為1,空白表示該位為0。.2、串行口觀察窗口 n在調(diào)試狀態(tài)下,選擇主菜單

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論