單片機與接口技術(shù)-7 基于Proteus的匯編語言程序代碼調(diào)試_第1頁
單片機與接口技術(shù)-7 基于Proteus的匯編語言程序代碼調(diào)試_第2頁
單片機與接口技術(shù)-7 基于Proteus的匯編語言程序代碼調(diào)試_第3頁
單片機與接口技術(shù)-7 基于Proteus的匯編語言程序代碼調(diào)試_第4頁
單片機與接口技術(shù)-7 基于Proteus的匯編語言程序代碼調(diào)試_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機與接口技術(shù)第7日基于Proteus的匯編語言程序代碼調(diào)試(1)設(shè)置代碼生成工具,單擊Source下拉菜單中“DefineCodeGenerationTools”選項,彈出如圖所示定義代碼生成工具窗口。3.創(chuàng)建源代碼仿真文件(2)在“CodeGenerationTool”欄的Toll對話框內(nèi)選擇“ASEM51”,設(shè)定8051單片機匯編工具;(3)在“MakeRules”欄的“SourceExtn”對話框內(nèi)選擇ASM,在“ObjExtn”對話框內(nèi)選擇HEX,設(shè)定源程序擴展名和目標代碼擴展名;(4)在“DebugDataExtraction”欄的“ListFileExtn”對話框內(nèi)選擇LST,設(shè)定列表文件擴展名,設(shè)置完成后單擊“OK”按鈕退出。(5)添加源程序文件,單擊Source下拉菜單中“Add/RemoveSourceFile”選項,彈出如圖所示添加/刪除源程序文件窗口,在“CodeGenerationTool”欄內(nèi)選擇ASEM51,再單擊“New”按鈕,彈出如圖所示源程序文件查找窗口,在“查找范圍”欄選中源程序文件的保存文件夾,同時在“文件名”欄鍵入源程序名。

(6)如果該源程序文件已經(jīng)存在,單擊“打開”按鈕即完成源程序文件的添加,如果該源程序文件不存在,單擊“打開”按鈕后將彈出如圖所示提示對話框,詢問是否創(chuàng)建該文件,單擊“是”按鈕即在選擇的文件夾內(nèi)創(chuàng)建一個新文件。(7)文件添加完成后再單擊Source下拉菜單,可以看到源程序文件已經(jīng)位于其中,如圖所示,此時可以直接點擊文件名將其打開進行編輯或修改。(8)單擊Source菜單中的“BuildAll”選項,對文件進行匯編連接,生成可執(zhí)行的十六進制文件(.Hex)、列表文件(.LST)和源代碼仿真調(diào)試文件(.SDI)。(1)將生成的Hex文件添加到原理電路圖的8051單片機中,即可進行源代碼仿真調(diào)試。(2)單擊仿真工具中的運行按鈕,啟動程序全速運行,可以查看單片機系統(tǒng)運行結(jié)果。也可以先點擊仿真工具中的暫停按鈕,再單擊Debug下拉菜單中的“6.8051CPUSourceCode”選項,彈出如圖所示源代碼調(diào)試窗口。4.在原理圖中進行源代碼仿真調(diào)試(3)將鼠標指向源代碼調(diào)試窗口并單擊右鍵,將彈出如圖所示右鍵快捷菜單。(4)在Proteus中進行源代碼調(diào)試時,Debug下拉菜單提供了多種彈出式窗口,給調(diào)試過程帶來了許多方便。單擊Debug下拉菜單中的“5.8051CPUInternal(IDATA)Memory”選項,彈出如圖所示8051單片機片內(nèi)存儲器窗口,其中顯示當(dāng)前片內(nèi)存儲器的內(nèi)容。(5)單擊Debug下拉菜單中的“4.8051CPUSFRMemory”選項,彈出如圖所示8051單片機特殊功能寄存器窗口,其中顯示當(dāng)前特殊功能寄存器的內(nèi)容。(6)單擊Debug下拉菜單中的“3.8051CPURegister”選項,彈出如圖所示8051單片機寄存器窗口,其中顯示當(dāng)前各個寄存器的值。(7)單擊Debug下拉菜單中的“2.WatchWindow”選項,彈出如圖所示觀測窗口,觀測窗口即使在全速運行期間也將保持實時顯示,因此可以在觀測窗口中添加一些項目,以便于程序調(diào)試期間進行察看。(8)添加項目可以通過觀測窗口中的右鍵菜單實現(xiàn),也可以先在圖中用鼠標左鍵標記希望進行觀測的存儲器單元,然后將其直接拖到觀測窗口中。練習(xí)1:創(chuàng)建一個有sourcecode的51工程用程序?qū)崿F(xiàn)c=a2+b2,假設(shè)a、b、c分別存放于單片機片內(nèi)RAM的30H、31H、32H三個單元。

主程序通過調(diào)用子程序“SQR”用查表方式分別求得a2

和b2的值,然后進行相加得到最后的c值。程序框圖如圖所示。練習(xí)2:使用51單片機仿真一個計算任務(wù)

MOVA,31H;取得b值

LCALLSQR;調(diào)查表子程序

ADDA,R1;計算a2+b2

MOV32H,A;存結(jié)果WAIT: SJMP$;循環(huán),等待;查表子程序如下:

ORG0F00HSQR: MOVDPTR,#TAB

MOVCA,@A+DPTR;查表求得平方值

RET;子程序返回TAB: DB0,1,4,9,16;平方表

DB25,36,49,64,81

END;程序結(jié)束;主程序如下:

ORG0000H;程序的復(fù)位入口START:LJMPMAIN

ORG0030H;主程序入口MAIN: MOV30H,#03

;a=3

MOV31H,#04;b=4

MOVA,30H;取得a值

LCALLSQR;調(diào)查表子程序

MOVR1,A;a2暫存于R1中用程序?qū)崿F(xiàn)c=a2+b2,假設(shè)a、b、c分別存放于單片機片內(nèi)RAM的30H、31H、32H三個單元。

主程序通過乘法指令分別求得a2

和b2的值,然后進行相加得到最后的c值。程序框圖如圖所示。練習(xí)3:使用51單片機仿真一個計算任務(wù)開始取第一個數(shù)→A取第一個數(shù)→B乘法結(jié)果存入R1取下一個數(shù)→A取下一個數(shù)→B乘法兩平方數(shù)相加存結(jié)果開始取第一個數(shù)→A取第一個數(shù)→B乘法結(jié)果存入R1取下一個數(shù)→A取下一個數(shù)→B乘法兩平方數(shù)相加存結(jié)果 org 0000h ;restartingentranceSTART: ljmp MAIN

org 0030h ;mainprogramentranceMAIN: mov 30h,#03 ;a=3

mov 31h,#04 ;b=4

mov a,30h ;transfer'a=3'intoA

mov b,30h ;transfer'a=3'intoB

mul ab

mov r1,a ;storea^2inR1

mov a,31h ;t

溫馨提示

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

最新文檔

評論

0/150

提交評論