![Keil程序調(diào)試窗口1,存儲(chǔ)器窗口_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/26/b4f7007d-f595-49ca-a2f3-1d893269b482/b4f7007d-f595-49ca-a2f3-1d893269b4821.gif)
![Keil程序調(diào)試窗口1,存儲(chǔ)器窗口_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/26/b4f7007d-f595-49ca-a2f3-1d893269b482/b4f7007d-f595-49ca-a2f3-1d893269b4822.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Keil 程序調(diào)試窗口 上一講中我們學(xué)習(xí)了幾種常用的程序調(diào)試方法,這一講中將介紹 Keil 提供各種窗口如 輸出窗口、觀察窗 口、存儲(chǔ)器窗口、反匯編窗口、串行窗口等的用途,以及這些窗口的使用 方法,并通過實(shí)例介紹這些窗口 在調(diào)試中的使用。一、程序調(diào)試時(shí)的常用窗口Keil 軟件在調(diào)試程序時(shí)提供了多個(gè)窗口,主要包括輸出窗口( Output Windows )、觀察 窗口( Watch&Ca ll StatckWindows )、存儲(chǔ)器窗口( Memory Window )、反匯編窗口( Dissambly Window )串行窗口( S erial Window )等。進(jìn)入調(diào)試模式后,可以通過菜單
2、 View 下的相應(yīng)命 令打開或關(guān)閉這些窗口。圖 1 是輸出窗口、觀察窗口和存儲(chǔ)器窗口,各窗口的大小可以使用鼠標(biāo)調(diào)整。進(jìn)入調(diào)試 程序后,輸出窗 口自動(dòng)切換到 Command 頁(yè)。該頁(yè)用于輸入調(diào)試命令和輸出調(diào)試信息。對(duì)于 初學(xué)者,可以暫不學(xué)習(xí)調(diào)試 命令的使用方法。圖 1 調(diào)試窗口(命令窗口、存儲(chǔ)器窗口、觀察窗口)1、存儲(chǔ)器窗口歡迎下載2存儲(chǔ)器窗口中可以顯示系統(tǒng)中各種內(nèi)存中的值,通過在Address 后的編緝框內(nèi)輸入 字 母:數(shù)字”即可顯示相應(yīng)內(nèi)存值,其中字母可以是C、D、I、X,分別代表代碼存儲(chǔ)空間、直接尋址的片內(nèi)存儲(chǔ)空間、間接尋址的片內(nèi)存儲(chǔ)空間、擴(kuò)展的外部RAM 空間,數(shù)字代表想要查看的地址。
3、例如輸入D: 0 即可觀察到地址 0 開始的片內(nèi) RAM 單元值、鍵入 C: 0 即可顯示從 0 開始的 ROM 單元中的值,即查看程序的 二進(jìn)制代碼。該窗口的顯示值可以以各種形式顯示,如十進(jìn)制、十六進(jìn)制、字符型等,改變顯示方式的方法是點(diǎn)鼠標(biāo)右鍵, 在彈岀的快捷菜單中選擇, 該菜單用分隔條分成三部份, 其中第一部份與第二部份的三 個(gè)選項(xiàng)為同 一級(jí)別,選中第一部份的任一選項(xiàng),內(nèi)容將以整數(shù)形式顯示,而選中第二部份的 Ascii 項(xiàng)則將以字符型式顯示,選中Float 項(xiàng)將相鄰四字節(jié)組成的浮點(diǎn)數(shù)形式顯示、選中 Double 項(xiàng)則將相鄰 8 字節(jié)組成雙精度形式顯示。第一部份又有多個(gè)選擇項(xiàng),其中 Deci
4、mal 項(xiàng)是一個(gè)開關(guān),如果選中該項(xiàng),則窗口中的值將以十進(jìn)制的形式顯示,否則按默認(rèn)的十六進(jìn)制方式顯示。Unsigned 和 Signed 后分別有圖2存儲(chǔ)器數(shù)值各種方式顯示選擇三個(gè)選項(xiàng):Char、Int、Long,分別代表以單字節(jié)方式顯示、將相鄰雙字節(jié)組成整型數(shù)方式顯示、將相鄰四字節(jié)組成長(zhǎng)整型方式顯示,而Unsigned 和 Signed 則分別代表無(wú)符號(hào)形式和有符號(hào)形式,究竟從哪一個(gè)單元開始的相鄰單元?jiǎng)t與你的設(shè)置有關(guān),以整型為例,如果你輸入的是 1:0,歡迎下載3那么 00H 和 01H 單元的內(nèi)容將會(huì)組成一個(gè)整型數(shù),而如果你輸入的是I : 1, 01H 和 02H 單元的內(nèi)容全組成一個(gè)整型數(shù)
5、,以此類推。有關(guān)數(shù)據(jù)格式與C 語(yǔ)言規(guī)定相同,請(qǐng)參考 C 語(yǔ)言書籍,默認(rèn)以無(wú)符號(hào)單字節(jié)方式顯示。第三部份的 Modify Memory at X:xx 用于更改鼠標(biāo)處的內(nèi)存單元值,選中該項(xiàng)即出現(xiàn)如圖 3 所示的對(duì)話框,可以在對(duì)話框內(nèi)輸入要修改的內(nèi)容。2、工程窗口寄存器頁(yè)圖 3 存儲(chǔ)器的值的修改圖 4 是工程窗口寄存器頁(yè)的內(nèi)容,寄存器頁(yè)包括了當(dāng)前的工作寄存器組和系統(tǒng)寄存器,系統(tǒng)寄存器組有一些是實(shí)際存在的寄存器如A、B、DPTR、SP、PSW 等,有一些是實(shí)際中 并不存在或雖然存在卻不能對(duì)其操作的如PC、Status 等。每當(dāng)程序中執(zhí)行到對(duì)某寄存器的操作時(shí),該寄存器會(huì)以反色(藍(lán)底白字)顯示,用鼠標(biāo)單
6、擊然后按下F2 鍵,即可修改該值。3、觀察窗口歡迎下載4觀察窗口是很重要的一個(gè)窗口,工程窗口中僅可以觀察到工作寄存器和有限的寄存器如A、B、DPTR 等,如果需要觀 察其它的寄存器的值或者在高級(jí)語(yǔ)言編程時(shí)需要直接觀察變量,就要借助于觀察窗口了。其它窗口將在以下的實(shí)例中介紹。一般情況下,我們僅在單步執(zhí)行時(shí)才對(duì)變量的值的變化感興趣,全速運(yùn)行時(shí),變量的值是不變的,只有在程序停下來(lái)之后,才會(huì)將這些值最新的變化反映岀來(lái),但是,在一些特殊場(chǎng)合下我們也可能需要在全速運(yùn)行時(shí)觀察變量的變化,此時(shí)可以點(diǎn)擊 View-Periodic Window Updata(周期更新窗口),確認(rèn)該項(xiàng)處于被選中狀態(tài),即可在全速運(yùn)
7、行時(shí)動(dòng)態(tài)地觀察有關(guān)值的變化。但是,選中該項(xiàng),將會(huì)使程序模擬執(zhí)行的速度變慢。二、各種窗口在程序調(diào)試中的用途以下通過一個(gè)高級(jí)語(yǔ)言程序來(lái)說(shuō)明這些窗口的使用。例2:圖 4 工程窗口寄存器頁(yè)#include reg51.h sbit P1_0=P1A0; 定義 P1.0 void mDelay(unsigned char DelayTime) unsigned int j=0;for(;DelayTime0;DelayTime-) for(j=0;jDissambly Window 可以打開反匯編窗口,該窗口可以顯示反匯編后的代碼、源程序和相應(yīng)反匯編代 碼的混合代碼,可以在該窗口進(jìn)行在線匯編、利用該窗口
8、跟蹤已找行的代碼、在該窗口按匯編代碼的方式單步執(zhí)行,這也是一個(gè)重要的窗口。打開反匯編窗口,點(diǎn)擊鼠標(biāo)右鍵,出現(xiàn)快捷菜單,如圖6 所示,其中 Mixed Mode 是以混合方式顯示,Assembly Mode 是以反匯編碼方式顯示。程序調(diào)試中常使用設(shè)置斷點(diǎn)然后全速運(yùn)行的 方式,在斷點(diǎn)處可以獲得各變量值,但卻無(wú)法知道程序到達(dá)斷點(diǎn)以前究竟執(zhí)行了哪些代碼,而這 往往是需要了解的,為此, Keil 提供了跟蹤功能, 在運(yùn)行程序之前 打開調(diào)試工具條上的允許跟蹤代 碼開關(guān),然后全速運(yùn)行程序,當(dāng)程序停止運(yùn)行后,點(diǎn)擊查看跟蹤代碼按鈕,自動(dòng)切換到反匯編窗口,圖 5 設(shè)定觀察窗的顯示方式圖 6 反匯編窗口如圖 6 所
9、示,其中前面標(biāo)有 -”號(hào)的行就是中斷以前執(zhí)行的代碼,可以按窗口邊的上卷按鈕向上翻查看代碼執(zhí)行記錄。利用工程窗口可以觀察程序執(zhí)行的時(shí)間, 下面我們觀察一下該例中延時(shí)程序的延時(shí)時(shí)間是否滿足我們的要求,即是否確實(shí)延時(shí) 10 毫秒,展開工程窗口 Regs 頁(yè)中的 Sys 目錄樹,其 中的 Sec 項(xiàng)記錄了從程序開 始執(zhí)行到當(dāng)前歡迎下載7程序流逝的秒數(shù)。點(diǎn)擊 RST 按鈕以復(fù)位程序,Sec 的值回零,按下 F10 鍵,程序窗口中的 黃色箭頭指向 mDelay(10)行,此時(shí),記錄下 Sec 值為0.00038900,然后再按 F10 執(zhí)行完該段程序,再次查看 Sec 的值為 0.01051200,兩者相
10、減大 約是 0.01 秒,所以延時(shí)時(shí)間大致是正確的。讀者可以試著將延時(shí)程序中的unsigned int 改為 unsigned char 試試看時(shí)間是否仍正確。注意,使用這一功能的前提是在項(xiàng)目設(shè)置中正確設(shè)置晶振的數(shù)值。Keil 提供了串行窗口,我們可以直接在串行窗口中鍵入字符,該字符雖不會(huì)被顯示岀來(lái),但卻能傳遞到仿真 CPU 中,如果仿真 CPU 通過串行口發(fā)送字符,那么這些字符會(huì)在串行窗口顯示出來(lái),用該窗口可以在沒有硬件的情況下用鍵盤模擬串口通訊。下面通過一個(gè)例子說(shuō)明 Keil 串行窗口的應(yīng)用。該程序?qū)崿F(xiàn)一個(gè)行編緝功能,每鍵入一個(gè)字母,會(huì)立即回顯到窗歡迎下載8口中。編程的方法是通過檢測(cè)RI
11、是否等于 1 來(lái)判斷串行口是否有字符輸入,如果有字符輸入,則將其送到 SBUF,這個(gè)字符就會(huì)在串行窗口中顯示出來(lái)。其中ser_init 是串行口初始 化程序,要使用串行口,必須首先對(duì)串行口進(jìn)行初始化。例3 :MOV SP,#5FH ;堆棧初始化CALL SER_INIT ;串行口初始化LOOP:JBC RI,NEXT ;如果串口接收到字 符,轉(zhuǎn)JMP LOOP;否則等待接收字符NEXT:MOV A,SBUF ;從 SBUF 中取字符MOV SBUF,A ;回送到發(fā)送 SBUF 中SEND:歡迎下載9JBC Tl,LOOP;發(fā)送完成,轉(zhuǎn) LOOPJMP SEND ;否則等待發(fā)送完SER_INIT:;中斷初始化MOV SCON,#5OH ORL TMOD,#2OH ORL PCON,#8OHMOV TH1,#0FDH ;設(shè)定波特率SETB TR1 淀時(shí)器 1 開始運(yùn)行SETB REN ;允許接收SETB SM2RET END輸入源程序,并建立項(xiàng)目,正確編譯、連接,進(jìn)入調(diào)試后,全速運(yùn)行,點(diǎn)擊串行窗口1 按鈕,即在原源程序窗口位置岀現(xiàn)一個(gè)空白窗口,擊鍵,相應(yīng)的字母就會(huì)岀現(xiàn)在該窗口中。在窗口中擊鼠標(biāo)右鍵,岀現(xiàn)一個(gè)彈出式菜單,選擇 “Ascii Mode 即以 Ascii 碼的方式顯
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 統(tǒng)編版八年級(jí)歷史上冊(cè)《第6課 戊戌變法》聽課評(píng)課記錄
- 湘教版數(shù)學(xué)九年級(jí)上冊(cè)4.4《解直角三角形的應(yīng)用》聽評(píng)課記錄2
- 瓦匠施工安全責(zé)任協(xié)議書(2篇)
- 生活技能培訓(xùn)服務(wù)合同(2篇)
- 粵人版地理七年級(jí)上冊(cè)《第三節(jié) 世界的主要?dú)夂蝾愋汀仿犝n評(píng)課記錄1
- 北京課改版歷史七年級(jí)下冊(cè)第9課《經(jīng)濟(jì)重心的南移》聽課評(píng)課記錄
- 五年級(jí)下冊(cè)數(shù)學(xué)聽評(píng)課記錄《 -2、5倍數(shù) 》人教版
- 人教版數(shù)學(xué)七年級(jí)上冊(cè)4.4《課題學(xué)習(xí) 設(shè)計(jì)制作長(zhǎng)方體形狀的包裝紙盒》聽評(píng)課記錄2
- 人教版七年級(jí)數(shù)學(xué)下冊(cè) 聽評(píng)課記錄 9.2 第1課時(shí)《一元一次不等式》
- 人教版數(shù)學(xué)八年級(jí)下冊(cè)16.2第2課時(shí)《 二次根式的除法》聽評(píng)課記錄
- 自主簽到培訓(xùn)課件-早安!幼兒園
- 2024-2030年中國(guó)大宗商品行業(yè)市場(chǎng)深度調(diào)研及發(fā)展趨勢(shì)與投資前景研究報(bào)告
- 強(qiáng)化提升1解三角形中的三線問題(解析)
- 一年級(jí)二年級(jí)奧數(shù)暑期培優(yōu)題庫(kù)
- 室內(nèi)裝飾拆除專項(xiàng)施工方案
- 老年癡呆癥患者生活陪護(hù)協(xié)議
- 2024年-急診氣道管理共識(shí)課件
- 鋼筋工程精細(xì)化管理指南(中建內(nèi)部)
- 小學(xué)語(yǔ)文中段整本書閱讀的指導(dǎo)策略研究 中期報(bào)告
- 浙教版2023-2024學(xué)年數(shù)學(xué)八年級(jí)上冊(cè)期末復(fù)習(xí)卷(含答案)
- 2024年中國(guó)鐵路投資集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論