




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第一章 實驗系統(tǒng)結(jié)構(gòu)和功能1.1 實驗系統(tǒng)結(jié)構(gòu)和組成 整個實驗系統(tǒng)是單板結(jié)構(gòu),由兩大部分構(gòu)成:一部分是以MCS-51 系列單片機中的8031為核心器件,擴展64K字節(jié)的27512 EPROM芯片作為系統(tǒng)監(jiān)控程序存 儲器和32K數(shù)據(jù)存儲器(62256)作為仿真RAM ;通過擴展一片8155控制6只8段顯 示LED數(shù)碼管作為輸出設(shè)備和32個按鍵作為輸入設(shè)備。另一部分是各種基本的常 用外圍接口器件:包括用一片 8255控制的EPROM編程器、8253定時器/計數(shù)器電 路、A/D轉(zhuǎn)換器ADC 0809、D/A轉(zhuǎn)換器DAC 0832、由74LS393構(gòu)成的計數(shù)器電路、 單脈沖輸出電路(可產(chǎn)生正脈沖或負脈
2、沖)、外置8 MHz的振蕩器電路、用運放LM386驅(qū)動的小揚聲器、用74LS138構(gòu)成的地址譯碼電路、帶有驅(qū)動電路的小步 進馬達、 12只帶有驅(qū)動電路的發(fā)光二極管和8只邏輯電平開關(guān)等。這些接口器件都有相應插孔可根據(jù)需要和核心部分相連。這是一種開發(fā)型的單片機系統(tǒng),通過RS-232C串行口和DBUG仿真軟件通信可以構(gòu)成一個類似于 MICE 的仿真開發(fā)系統(tǒng)。在仿真軟件的支持下,可以提供匯 編語言源程序的編輯、匯編、反匯編、加載和在線仿真運行調(diào)試程序等功能。1.2 實驗系統(tǒng)功能 實驗系統(tǒng)綜合了仿真器開發(fā)系統(tǒng)和實驗學習裝置的功能, 可以獨立利用系統(tǒng) 上自帶的鍵盤和LED數(shù)碼顯示器工作,也可以通過RS-2
3、32C串行口利用PC機運行 DBUG仿真軟件進行CPU或EPROM仿真工作,仿真功能基本上和 Microtek的 MICE 仿真器相同。系統(tǒng)獨立工作時有如下基本功能:1.豐富的編輯功能系統(tǒng)具有豐富的程序和數(shù)據(jù)編輯功能, 包括程序和數(shù)據(jù)代碼的輸入、 檢查和 修改,片內(nèi)數(shù)據(jù)存儲器(包括專用寄存器)的檢查和修改,片外數(shù)據(jù)存儲器的數(shù) 據(jù)輸入、檢查和修改,地址加 1 檢查和修改,地址減 1 檢查和修改,插入和刪除數(shù) 據(jù),數(shù)據(jù)塊移動和比較等功能。2.具有不同運行方式可以運行仿真 RAM 的用戶程序,也可以運行用戶使用系統(tǒng)中程序存儲器中 的程序,也可交替運行,給程序調(diào)試帶來方便。3.基本的調(diào)試手段和功能系統(tǒng)
4、提供單步執(zhí)行、 設(shè)置斷點執(zhí)行和連續(xù)執(zhí)行等基本調(diào)試手段和功能。 以單 步或斷點方式執(zhí)行程序后,可以對用戶程序進行檢查、現(xiàn)場修改,對片內(nèi)RAM 、專用寄存器、片外RAM和擴展的I/O 口的狀態(tài)進行檢查和修改。4.可以提供各種 8031單片機原理實驗和使用實驗用的硬件和軟件可以利用該實驗系統(tǒng)進行各種8031匯編語言程序的實驗、LED數(shù)碼管顯示器實驗、鍵盤實驗、并行接口實驗、串行接口實驗、定時器/計數(shù)器實驗、數(shù)字控制實驗、時間程序控制實驗、步進電機控制實驗、數(shù)據(jù)采集和數(shù)字測量實驗、數(shù) 字波形發(fā)生器實驗、數(shù)字信號處理(數(shù)字濾波、 FFT等)實驗等。1.3 鍵盤和顯示器的使用方法1.3.1 鍵盤的使用實驗
5、系統(tǒng)自帶4X8= 32個鍵盤,其安排如圖1.3-1所示。左邊16個為16進制的 數(shù)字鍵0F,用于輸入地址、程序機器碼或數(shù)據(jù);也同時作為工作寄存器R0R7、DPTR、PSW、SP、ACC、B寄存器等以及程序計數(shù)器 PC的代號。右邊16個 為功能鍵。1.鍵盤安排示意圖圖1.3-1系統(tǒng)鍵盤安排示意圖名稱R0R1R2R3R4R5R6R7DPLDPHABPSWSP PCLPCH代號0123456789ABCDEF圖1.3-2寄存器代碼表16個功能鍵中有7個鍵是雙功能鍵,這些鍵的功能和系統(tǒng)的歷史狀態(tài)有關(guān), 同一個鍵在不同狀態(tài)下就表示不同的功能。TV/METV是進入CRT顯示狀態(tài)/ME是仿真RAM存儲單元檢
6、查RG/FSRG是片內(nèi)RAM和寄存器內(nèi)容檢查/FS是偏移量計算F1/LSF1是首地址設(shè)定/LS是上一個單元檢查F2/NXF2是末地址設(shè)定/NX是下一個單元檢查EG/DLEG是EPROM編程/DL是刪除1個字節(jié)7/R78/DPL9/DPHA/ACCTV /MEEG/DLPRTEXEC4/R45/R56/R6B/BRG/FSRW/ISCOMPSCAL1/R12/R23/R3C/PSWF1/LSEV/UNMOVESTEP0/R0F/PCHE/PCLD/SPF2/NXEC/EPDARMON功 鍵 用 介2.能 作 簡RW/ISRW是片外數(shù)據(jù)存儲器檢查/IS是插入1個字節(jié)EV/UNEV是把編程區(qū)的程序移
7、到仿真 RAM區(qū)/UN表示未用保留 EC/EPEC是檢杳被編程的EPROM是否全空/編程區(qū)EPROM程序和仿真 RAM 內(nèi)容比較 PRTTV狀態(tài)下的打印命令鍵 COMP程序或數(shù)據(jù)塊比較鍵(11) MOVE程序或數(shù)據(jù)塊移動鍵(12) DARTV狀態(tài)下的反匯編命令鍵(13) EXEC全速執(zhí)行或斷點執(zhí)行命令鍵(14) SCAL進入串行通信狀態(tài)鍵(15) STEP單步執(zhí)行命令鍵(16) MON返回監(jiān)控命令鍵注:其中TV、EG、EC/EP、EV、PRT和DAR命令在本系列實驗中不需要用。3.系統(tǒng)狀態(tài) 系統(tǒng)狀態(tài)有兩種:待命狀態(tài)和操作狀態(tài)。 待命狀態(tài)其特征是在顯示器的左端顯示閃動的“P提示符,等待操作。一般
8、在三種情況下會進入待命狀態(tài):當系統(tǒng)上電復位后當按RESET復位按鈕后當按MON按鍵后(如程序不掃描鍵盤時無效) 在待命狀態(tài)下,可以進行以下操作之一:按任一個數(shù)字鍵,就進入操作狀態(tài),并顯示該鍵入的數(shù)字。按EXEC鍵,就從0000H單元開始執(zhí)行仿真RAM中的程序。按STEP鍵,就從0000h單元開始單步執(zhí)行仿真 RAM中的程序。按EC鍵,就檢查編程區(qū)EPROM芯片是否是全空。按F1鍵,進入仿真EPROM狀態(tài),這時PC值是指向使用系統(tǒng)的外部程序空間,其特性是顯示器上顯示“H.?!卑碏2鍵,進入仿真RAM狀態(tài),這時PC值是指向?qū)嶒炏到y(tǒng)的仿真 RAM中的用戶程序空間,其特征是顯示器上顯示 “P.?!卑碩
9、V鍵,進入用電視屏幕顯示狀態(tài)(這需要通過系統(tǒng)板上TV CRT接口擴展相應接口板才具有電視屏幕顯示功能),這時顯示器將不顯示任何字符。 操作狀態(tài)在待命狀態(tài)輸入 1位到 4位數(shù)字鍵后,便進入操作狀態(tài)。當輸入 4位數(shù)字后, 第一位數(shù)字會不斷閃爍,表示可以從第一位開始修改輸入的數(shù)字,隨著修改,閃 爍的數(shù)字位會后移。在操作狀態(tài)下,可以進行以下操作之一:按ME鍵,顯示仿真RAM單元中的內(nèi)容。(按該鍵前,若輸入的數(shù)字不 足4位,不足位都作 0處理。)按RG鍵,顯示片內(nèi)RAM (包括專用寄存器)單元中的內(nèi)容。(按該鍵 前,若輸入的數(shù)字超過 2位,后 2位都作無效位處理。)鍵入1位數(shù)字按RG鍵,按圖1.3-2中
10、所示的代號顯示相應寄存器中的內(nèi)容。 鍵入2位數(shù)字按RG鍵,顯示相應片內(nèi)RAM或?qū)S眉拇嫫鲉卧械膬?nèi)容。輸入4位地址后,按RW鍵,顯示片外RAM單元或擴展I/O 口中的內(nèi)容。按EXEC鍵,就從鍵入的地址開始連續(xù)執(zhí)行仿真 RAM中的程序。按STEP鍵,就從鍵入的地址開始單步執(zhí)行仿真 RAM中的程序。按F1鍵,顯示閃爍的“廠提示符,表示輸入的首地址已被接受,或表示 設(shè)置輸入的地址為斷點地址。按F2鍵,顯示閃爍的“”提示符,表示輸入的末地址已被接受。按MON鍵,就從操作狀態(tài)回到待命狀態(tài)。4.功能鍵用法 返回監(jiān)控 (MON) 鍵在操作過程中按此鍵,將中止或退出當前的操作狀態(tài),停止輸入數(shù)據(jù)和命 令,返回待
11、命狀態(tài),顯示閃爍的“P.提示符。當執(zhí)行EXEC命令后,將不能用此鍵返回待命狀態(tài),這時只能用 RESET按鈕使之返回待命狀態(tài)。MON鍵和RESET按鈕的功能相似,不同點是: MON鍵在返回代碼狀態(tài)時將 會保護用戶的工作現(xiàn)場的用戶存儲器和寄存器的內(nèi)容; 而RESET按鈕不會改變用 戶存儲區(qū)和外部數(shù)據(jù)存儲器的內(nèi)容,但有可能改變某些寄存器的內(nèi)容。 仿真 RAM 單元檢查 (ME) 鍵在待命狀態(tài)下,輸入 4位地址,按此鍵將顯示相應仿真 RAM 單元的內(nèi)容(輸 入的地址中可以省去后面的 0)。可以使用LS和NX鍵檢查上一個或下一個單元的內(nèi)容“廠提示符,表示口 ”提示符,表示 片內(nèi)RAM單元和寄存器檢查(R
12、G)鍵輸入 1位地址,按此鍵將顯示相應寄存器的內(nèi)容。輸入2位地址,按此鍵將顯示相應片內(nèi) RAM單元或?qū)S眉拇嫫?SFR)的內(nèi)容。 可以使用LS和NX鍵檢查上一個或下一個單元的內(nèi)容。 片外RAM或擴展接口 8155片內(nèi)RAM單元檢查(RW)鍵輸入片外RAM或擴展接口 8155片內(nèi)RAM單元的4位地址,按此鍵將顯示相應單元的內(nèi)容。(若用8032芯片,輸入2位地址,可以顯示8032片內(nèi)RAM的80H FFH區(qū)的相應單元的內(nèi)容) 片外 RAM 區(qū)數(shù)據(jù)塊移動 (MOVE) 鍵MOVE 鍵的功能是把片外 RAM 區(qū)的數(shù)據(jù)塊從一個區(qū)移到 (實際上是復制到) 另一個區(qū)中。但目標 RAM 區(qū)要由仿真的狀態(tài)決定。
13、在顯示“P.的待命狀態(tài)下,將把系統(tǒng)仿真 RAM中的程序/數(shù)據(jù)塊復制到仿真 RAM 的另一個區(qū)中。在顯示“P.的仿真”AM狀態(tài)下,將把系統(tǒng)仿真 RAM中的程序/數(shù)據(jù)塊復制到被仿真的使用系統(tǒng)片外 RAM 數(shù)據(jù)區(qū)中。操作步驟:輸入源程序的首地址,按 F1鍵,這時將顯示閃爍的 輸入的首地址已被接受。輸入源程序的末地址,按F2鍵,這時將顯示閃爍的輸入的末地址已被接受輸入目標首地址按MOVE鍵后,就完成移動(實際上是復制) 片外 RAM 區(qū)數(shù)據(jù)塊比較 (COMP) 鍵COMP鍵的功能是把片外RAM區(qū)的兩個數(shù)據(jù)塊進行比較。但目標 RAM區(qū)要由仿真的狀態(tài)決定在顯示“P.的待命狀態(tài)下,將把系統(tǒng)仿真 RAM中的程
14、序/數(shù)據(jù)塊和仿真RAM 的另一個區(qū)的數(shù)據(jù)塊進行比較。在顯示“P.的仿真”AM狀態(tài)下,將把系統(tǒng)仿真 RAM中的程序/數(shù)據(jù)塊和被仿真的使用系統(tǒng)片外 RAM 數(shù)據(jù)區(qū)中的數(shù)據(jù)塊進行比較操作步驟:輸入源程序的首地址,按 F1鍵,這時將顯示閃爍的“廠提示符,表示輸入的首地址已被接受。輸入源程序的末地址,按 F2鍵,這時將顯示閃爍的“口 ”提示符,表示輸入的末地址已被接受。輸入目標首地址按COMP鍵后,就完成比較。若比較完全一樣,就回到待命狀態(tài)顯示“ P;若比較不完全相同,就顯示比較第一個出錯單元的地址和數(shù)據(jù)。插入(IS)和刪除(DL)鍵這兩個鍵是具有相反操作功能的鍵,只有在仿真 RAM 單元檢查狀態(tài)下才有
15、 效。在調(diào)試機器碼程序時,可以用于插入或刪除質(zhì)量或數(shù)據(jù)的一個字節(jié),可以根 據(jù)需要多次使用。這就可以避免許多需要重新輸入程序/數(shù)據(jù)的麻煩。操作方法:在檢查仿真 RAM單元狀態(tài)下,顯示現(xiàn)行地址和數(shù)據(jù),按IS鍵,將在現(xiàn)行地址和XFFFH之間,把所有單元的內(nèi)容依次向下移動一個字節(jié)?,F(xiàn)行 地址單元的內(nèi)容被清零,供插入指令或數(shù)據(jù)的一個字節(jié)。這時XFFFH單元的內(nèi)容將被XFFFEH單元的內(nèi)容取代,XFFFH單元的原內(nèi)容將丟失。在顯示現(xiàn)行地址和數(shù)據(jù)的情況下,按DL鍵,將刪除這一地址單元的內(nèi)容,而把以下單元的內(nèi)容依次向上移動一個單元,XFFFH單元的內(nèi)容用0替補。為了減少插入或刪除的影響范圍,實驗系統(tǒng)把移動范圍
16、劃分為8個區(qū)域:0000H 1FFFH2000H 3FFFH4000H5FFFH6000H7FFFH8000H9FFFHA000HBFFFHC000HDFFFHE000HFFFFH在0000H1FFFH區(qū)內(nèi)插入或刪除,不會影響 2000H以上單元的內(nèi)容。同樣在8000H9FFFH區(qū)中操作不會影響其他區(qū)的內(nèi)容。 程序執(zhí)行 (EXEC) 鍵EXEC 鍵有兩種運行方式: 連續(xù)執(zhí)行程序方式在輸入 4位地址后,按此鍵便從該地址開始連續(xù)執(zhí)行程序,同時顯示器顯示“廠”提示符;若不輸入地址,在待命狀態(tài)下按此鍵,便從0000H地址開始連續(xù)執(zhí)行程序;在存儲單元改寫狀態(tài)下按此鍵,將從現(xiàn)行地址處連續(xù)執(zhí)行程序。需要注意
17、 的是,在連續(xù)執(zhí)行之前, 必須檢查一下在執(zhí)行程序的末尾是否安排 了循環(huán), 要防止程序在執(zhí)行完后可能又繼續(xù)往下執(zhí)行后面的隨機代碼,那就可能會造成不可預測的后果。 斷點運行程序方式斷點運行方式是程序調(diào)試的一種常用有效手段,通過設(shè)置仿真 RAM 中程序 的斷點逐段運行,可以不斷縮小有問題程序的范圍。操作方法:輸入 4位斷點地址(注意,必須設(shè)置在指令操作碼單元地址上,不能設(shè)置在操作數(shù)單元地址上),按 F1鍵,這時將顯示“廠”提示符,再輸入程序 執(zhí)行的起始地址,按 EXEC 鍵,就以斷點方式運行程序。當程序遇到設(shè)置的斷點就會停下來,并把所有的寄存器保護起來,同時顯 示該斷點地址以及該單元的操作碼。 這時
18、就可以查看相關(guān)的寄存器和存儲單元的 內(nèi)容。在回到待命狀態(tài)的情況下,可以根據(jù)需要還可以設(shè)置新的斷點,在設(shè)置新 的斷點后,若再按 EXEC 鍵,將會繼續(xù)從上一個斷點處執(zhí)行程序,直至遇到新斷 點時暫停。該實驗系統(tǒng)在獨立工作時,每次只能設(shè)置一個斷點,若設(shè)置多個斷點,則 最后依次設(shè)置的斷點有效, 其他斷點都將無效。 設(shè)置的斷點在程序執(zhí)行后就取消。需要特別注意 的是:若斷點設(shè)置不正確或用戶使用系統(tǒng)不正常,運行后就 不會遇到斷點, 這種情況下, 只有復位才能使系統(tǒng)回到監(jiān)控的待命狀態(tài)。 復位后, 原設(shè)置斷點處將有 3個單元的內(nèi)容被破壞,需要人工恢復。 單步執(zhí)行程序(STEP)鍵STEP鍵在待命狀態(tài)、操作狀態(tài)和
19、存儲器檢查狀態(tài)下有效。在待命狀態(tài)下按 此鍵,將執(zhí)行 0000H 地址單元的一條指令;在操作狀態(tài)下按此鍵,則按顯示器上 顯示的地址單步執(zhí)行一條指令; 在存儲器檢查狀態(tài)下按此鍵, 則按現(xiàn)行地址單步 執(zhí)行一條指令。每按一次,執(zhí)行一條指令,并顯示下一條即將執(zhí)行的指令操作碼 的地址及其單元內(nèi)的內(nèi)容,進入操作狀態(tài),等待新的命令。此鍵命令不會影響設(shè) 置的斷點。若按STEP鍵持續(xù)1秒以上將進入跟蹤執(zhí)行狀態(tài),并以每秒鐘 500條指令的速 度執(zhí)行程序,同時更新顯示程序的執(zhí)行地址和 A 累加器內(nèi)的內(nèi)容。這個功能可以 用來監(jiān)視程序的運行路線,對檢查延時循環(huán)程序特別有用。松開按鍵后,便立即 停止跟蹤,并顯示中止時的 P
20、C值和A累加器的內(nèi)容。相對偏移量計算(FS)鍵該鍵只有在存儲器檢查狀態(tài)(即向仿真 RAM 中輸入程序的狀態(tài))下有效, 用于計算相對轉(zhuǎn)移指令的操作數(shù)一移量。操作方法:在需要填入 8位相對轉(zhuǎn)移指令偏移量的單元,輸入所要轉(zhuǎn)移目標 地址的低字節(jié)后按此鍵, 就把計算好的偏移量自動送入偏移量單元。 這時仍處于 仿真RAM讀寫狀態(tài),用戶可以繼續(xù)輸入程序和數(shù)據(jù)。需要 注意 的是:轉(zhuǎn)移指令的地址和轉(zhuǎn)移的目標地址之間的差值不能大于 8位 偏移量所允許的最大范圍,否則就要出錯。因課程實驗不包括EPROM編程固化操作,所以和其有關(guān)的命令鍵就不在本 指導書中介紹。1.3.2 LED 數(shù)碼管顯示器的使用實驗系統(tǒng)板上安排了
21、 6只八段LED數(shù)碼管顯示器,一般情況,用左邊4只顯示 地址值,右邊 2只顯示相應單元的數(shù)據(jù)。監(jiān)控程序用軟件掃描方式在不同的數(shù)碼 管上顯示字符。 每個數(shù)碼管對應一個顯示緩沖單元, 從右到左顯示緩沖單元的地 址分別為79H、7AH、7BH、7CH、7DH和7EH。這6個LED數(shù)碼管分別通過擴展 8155可編程并行接口芯片對其控制, 字位受8155的A 口控制,其口地址為FF21H, 字形受8155的B 口控制,其口地址為 FF22H。第二章 實驗指導實驗一 實驗系統(tǒng)操作和使用一、實驗目的1.了解實驗系統(tǒng)的基本結(jié)構(gòu)和組成及其存儲空間的分配。2.熟悉鍵盤各個按鍵的作用及其操作方法。3.掌握程序手工輸
22、入、檢查和執(zhí)行的方法,并學會執(zhí)行程序后檢查結(jié)果的 方法。4.初步掌握利用設(shè)置斷點和單步執(zhí)行進行調(diào)試程序的過程和方法。二、實驗內(nèi)容在實驗前預習實驗系統(tǒng)結(jié)構(gòu)和基本功能的基礎(chǔ)上,按照實驗指導書的要求, 依次進行鍵盤操作。通過操作和思考,達到以上4個實驗目的。三、實驗前的預習要求1.認真預習第一章的內(nèi)容,在了解實驗系統(tǒng)結(jié)構(gòu)組成和基本功能的基礎(chǔ) 上,特別要對不同鍵盤的作用和操作要點熟悉。2.看懂本實驗中給出的示范程序的意義。四、實驗步驟在實驗系統(tǒng)已接好 +5V 直流穩(wěn)壓電源的情況下, 打開穩(wěn)壓電源,系統(tǒng)的上 電復位電路一般會使系統(tǒng)在最左邊一個 LED 數(shù)碼管上將顯示一個閃動的 P. 提示字符。這表示系統(tǒng)
23、已處于待命狀態(tài),可以輸入操作。在任何情況下,按 RESET 復位按鈕后,系統(tǒng)應該回到待命狀態(tài)。 在正常操作過程中,一般按 MON 鍵后,也可以使系統(tǒng)回到待命狀態(tài)。如果 不能回到待命狀態(tài), 說明程序已脫離系統(tǒng)監(jiān)控程序的控制, 這種情況下只有通過 按復位按鈕使其回到待命狀態(tài)。在待命狀態(tài)(即顯示提示字符 P. )的情況下,可以進行以下操作:1.程序輸入操作(使用數(shù)字、ME、NX和LS鍵 )把以下一個給出的例 1 程序的機器碼通過鍵盤依次輸入到實驗系統(tǒng)的數(shù)據(jù)存儲器中。例 1 程序:ORG1000H1000 7840TEST1:MOV R0,#40H1002 7941MOVR1,#41H1004 754
24、0AAMOV 40H,#0AAH1007 E6MOV A,R01008 F7MOVR1,A1009 7655MOV R0,#55H100B7F05MOV R7,#05H100D04LOOP:INC A100EDFFDDJNZ R7,LOOP1010 902000MOV DPTR,#2000H1013 F0MOVX DPTR,A1014 80FE SJMP $;= WAIT: SJMP WAIT 先用十六進制數(shù)字鍵輸入首地址(這里是 1000 ),再按存儲器單元檢 查ME鍵,這時顯示器的后兩位將顯示十六進制隨機數(shù)。 按數(shù)字鍵 78 ,在后兩位將會用鍵入的 78 替代原來的隨機數(shù),這樣就 向100
25、0H單元輸入機器碼 78H。若輸入數(shù)據(jù)時輸錯了數(shù),可以重新輸入。但是 需要注意,輸入數(shù)據(jù)時一定是成對輸入。 按NX鍵,顯示的地址值會自動加 1,并顯示其相應單元中的隨機數(shù)。 按數(shù)字鍵 40,便把 40H 輸入到 1001H 存儲單元中。 這時如果按LS鍵,顯示的地址值會自動減1,并且在后兩位顯示上一個單元的數(shù)據(jù)值(這里將會顯示78)。 重復、的步驟,依次輸入后面的機器碼,直至程序輸入完為止。2.存儲單元檢查操作 (使用ME、NX和LS鍵 )在顯示提示字符P.的情況下,輸入相應存儲單元的4位十六進制數(shù)的地址, 再按ME鍵,相應存儲單元的內(nèi)容就顯示在右邊兩個數(shù)碼管數(shù)據(jù)位上。如果要繼續(xù)檢查下一個存儲
26、單元或上一個存儲單元的內(nèi)容時,可以分別通過按NX和LS鍵完成。請按上述方法檢查已輸入的程序機器碼是否正確。3.程序執(zhí)行操作(使用MON、數(shù)字和EXEC鍵 ) 在確認以上檢查無誤的情況下,執(zhí)行以上程序。步驟如下: 按MON鍵,中止存儲單元檢查操作,回到待命狀態(tài)。 鍵入以上輸入程序的首地址 1000H后,按執(zhí)行程序EXEC鍵,從起 始地址1000H開始執(zhí)行該程序,并顯示廠提示標志。 按RESET復位按鈕,回到待命狀態(tài),以備檢查相關(guān)存儲單元和寄存器。4.程序調(diào)試操作 (使用MON、數(shù)字、EXEC、STEP和Fl鍵)最常用的程序調(diào)試手段有兩個:一是在需要對程序執(zhí)行中間結(jié)果進行檢查的指令操作碼處設(shè)置斷點
27、,讓執(zhí)行的程序在適當?shù)牡胤綍和#欢峭ㄟ^單步執(zhí)行, 一條指令一條指令跟蹤執(zhí)行。 在程序暫停時可以對相關(guān)寄存器和存儲單元進行檢 查,并通過多處設(shè)置斷點和和單步執(zhí)行配合,不斷縮小程序出錯的范圍,以便最 終找到并排除程序的錯誤所在。4.1 設(shè)置斷點檢查 (使用MON、數(shù)字、EXEC和Fl鍵 ) 在 1008H 、 100BH 、 1010H 和 1014H 單元分別依次設(shè)置斷點。設(shè)置斷點的方法是在顯示提示字符 P.的情況下,輸入斷點地址,按Fl鍵, 這時將會顯示廠提示符,表示斷點已經(jīng)設(shè)置好。 輸入程序首地址。 按EXEC鍵執(zhí)行程序,當程序執(zhí)行遇到設(shè)置的斷點處,程序就會暫 停,并保護所有的寄存器,同時
28、顯示斷點地址和該單元的內(nèi)容,回到操作狀態(tài)。 檢查相關(guān)寄存器和存儲單元的內(nèi)容。 在遇到斷點程序暫停后,再設(shè)置下一個斷點。 重復的步驟,直至程序執(zhí)行完為止。地址 90 98 99 A0 A8 B0 B8 D0 E0 F04.2 單步執(zhí)行(使用MON、數(shù)字和STEP鍵 )在顯示提示字符P.的情況下,輸入程序首地址。 按STEP鍵,將從輸入的地址開始執(zhí)行一條指令,同時顯示下一條 將要執(zhí)行指令的 4位十六進制數(shù)地址(即PC的內(nèi)容)和下一條指令的操作碼。 可以不斷按STEP鍵,讓程序指令一條一條地執(zhí)行,在認為必要的 地方,暫停后可以檢查相關(guān)寄存器和存儲單元的內(nèi)容, 看是否符合預想的執(zhí)行結(jié) 果。(單步執(zhí)行并
29、不影響已設(shè)置的斷點。)5.程序執(zhí)行結(jié)果檢查操作 (使用MON、數(shù)字、ME、RG、NX和LS鍵) 程序執(zhí)行結(jié)果檢查主要有兩方面:一是相關(guān)存儲單元,二是相關(guān)寄存器。5.1 存儲單元的檢查 (使用數(shù)字、 ME 鍵)存儲單元的檢查方法見以上 “2存. 儲單元檢查操作 ”一節(jié)。這里需要對 2000H 存儲單元進行檢查,并記錄。(2000H)=5.2片內(nèi)RAM通用單元和寄存器的檢查(使用數(shù)字、RG鍵)寄存器的檢查方法:要對片內(nèi) RAM 中的通用單元、工作寄存器、專用寄 存器等進行檢查,可以先輸入由實驗系統(tǒng)定義的用 1位十六進制數(shù)作為代號的寄 存器號(見表 1-1) ,或者用 2 位十六進制數(shù)表示的片內(nèi) R
30、AM 單元和專用寄存器 SFR的地址(見表1-2),然后按RG鍵,即在最右邊兩位數(shù)碼管上顯示其內(nèi)容。表 1-1 常用寄存器代號表寄存器代號 01 2 34 5 678 9 A B C D E F寄存器 R0 R1 R2 R3 R4 R5 R6 R7 DPL DPHACC B PSW SP PCL PCH表 1-2 片內(nèi) RAM 單元和 SFR 地址表 (a)地 址 00 7F 80 81 82 83 87 88 89 8A 8B 8C 8D片內(nèi) RAh或SFR 片內(nèi) RAM P0 SP DPL DPH PCON TCON TMOD TL0 TL1 TH0 TH1表 1-2 片內(nèi) RAM 單元和
31、 SFR 地址表 (b)片內(nèi) RA賊SFR P1 SCON SBUF P2 IE P3 IPPSW ACC B這里需要對A、RO、R1、R7、40H、41H、PSW和SP先進行預測,然后檢查, 并記錄。片內(nèi)寄存器名 A R0 R1 R7 40H 41H PSW SP事先預測數(shù)據(jù)實際檢查數(shù)據(jù)6.程序/數(shù)據(jù)塊移動和比較操作 (使用數(shù)字、F1、F2、MOVE和COMP鍵) 實驗系統(tǒng)還具有程序 /數(shù)據(jù)塊復制和比較功能,可以利用 MOVE 鍵把一個在仿真RAM區(qū)中的程序/數(shù)據(jù)塊復制到另外一個地址空間,并可以利用COMP鍵對這兩個區(qū)的程序 /數(shù)據(jù)塊進行比較,看是否一致。要求把從1000H單元(源程序首地址
32、)開始至 1015H (源程序的末地址)的 例1程序復制到 0000H 單元(目標首地址)開始的 RAM 區(qū)。 輸入源程序的首地址 1000,按F1鍵,這時將顯示廠; 輸入源程序的末地址1015,按F2鍵,這時將顯示; 輸入目標首地址 0000,按M OVE鍵后,就把從 1000H1015H存 儲區(qū)中的程序復制到首址為 0000H的存儲區(qū)中,然后回到待命狀態(tài) 0,顯示P. 輸入源程序的首地址 1000,按F1鍵,這時將顯示廠; 輸入源程序的末地址1015,按F2鍵,這時將顯示; 輸入目標首地址 0000,按COMP鍵后,就把從首址為1000H存儲區(qū)中的程序和首址為 0000H 存儲區(qū)中被復制的
33、程序逐條指令進行比較, 如果兩個 存儲區(qū)的內(nèi)容完全一樣,就回到待命狀態(tài)0,顯示P.;如果比較后有不同點,那么就顯示被復制區(qū)中出錯單元的地址和該存儲單元的內(nèi)容。 (在比較無錯的情 況下,可以改變被復制區(qū)某一個單元的內(nèi)容,再進行比較驗證。)7.插入和刪除操作 (使用數(shù)字、ME、IS、DL和F2鍵 ) 在調(diào)試機器碼程序時,可能需要在某條指令后面插入一些新的指令,或者刪除一些指令,這可以分別利用IS和DL鍵實現(xiàn),而不必重新輸入整個程序。 需要注意這兩項操作都只有在存儲器檢查狀態(tài)下才有效。例如要求先刪除例1程序中的片內(nèi) RA賊SFR P1 SCON SBUF P2 IE P3 IPPSW ACC BMO
34、V DPTR,#2000HMOVX DPTR,A兩條指令( 4個字節(jié)),進行查看驗證后,再插入這兩條指令查看驗證。 輸入第一條指令操作碼地址 1010H,按ME鍵后進入存儲器檢查狀態(tài), 再按DL鍵4次,就刪除了 4個字節(jié)。這時查看一下SJMP $指令機器碼的存儲單 元地址是什么 ? 若要在 1010H 單元處插入以上兩條指令,可以輸入地址 1010H ,按 ME鍵后進入存儲器檢查狀態(tài),再按IS鍵4次,就可以從1010H單元開始插入 4 個字節(jié)的 00H ,然后在相應插入單元輸入機器碼 (90H,20H,00H,F0H) 即 可完成插入這兩條指令的操作。 若需要對從以下某個地址處開始的程序數(shù)據(jù)不
35、受插入或刪除的影響,可以在插入和刪除之前,先輸入該限定地址,再按F2鍵,這時會顯示勺”提示符, 然后再進行插入或刪除操作, 就可以不影響設(shè)置的限定地址以下的單元 內(nèi)容。可以據(jù)此驗證一下這類操作的效果8.相對轉(zhuǎn)移指令中的偏移量計算(使用數(shù)字、ME、NX和FS鍵 )這個功能可以給實驗編程中計算相對轉(zhuǎn)移指令中的偏移量帶來方便。方法 是當輸入相對轉(zhuǎn)移指令的操作碼后, 下一個字節(jié)應該輸入偏移量, 這時只要先在 該單元輸入需要轉(zhuǎn)移的目標地址的低字節(jié),再按FS鍵,該單元的內(nèi)容就轉(zhuǎn)換成需要輸入的偏移量代碼。接著可以繼續(xù)輸入下一個單元的機器碼。例如當輸入例1程序中DJNZ R7,L00P指令時, 在100EH單
36、元先輸入其操作碼 DFH,當按NX鍵后,顯示地址100F, 其內(nèi)容可能是隨機數(shù)。 因為需要轉(zhuǎn)移的目標地址是100DH,所以在100FH單元輸入其低字節(jié)地址0D,再按FS鍵,其內(nèi)容就轉(zhuǎn)換成相應的偏移量。注意: 相對轉(zhuǎn)移指令的下一條指令地址和轉(zhuǎn)移的目標地址之間的插值要滿 足8位帶符號數(shù)補碼的數(shù)值范圍,向上轉(zhuǎn)移負值最小不能超過-128(即 80H),向下轉(zhuǎn)移正值最大不能超過 +127(即 7FH)。五、實驗報告內(nèi)容1.請寫出在實驗所遇到的問題以及解決的辦法,并談一談你的體會。2.請回答以下問題: 試述如何修改2000H存儲單元中的內(nèi)容?TRANSF:MOV R1,AORG 1200HMOV A,#0
37、AAH1200 74AA1202 F91203 78201205F61206 041207 081208 F61209 903000120C 04120D F0120E E4120F 93 在執(zhí)行程序前,為什么需要向 PC 中輸入所需執(zhí)行程序的首地址 ?是否 可以省去這一步驟 ? 為什么 ? 在例1程序中,能否在1005H、1006H、100AH、100CH和1011H存儲單元 設(shè)置斷點 ? 為什么 ?實驗二 一般程序設(shè)計 ( 一 ): 直線程序一、實驗目的1.通過簡單的直線程序的設(shè)計,熟悉尋址方式、基本指令、內(nèi)部和外部數(shù)據(jù)存儲器RAM以及程序存儲器ROM的特點和使用方法。2.掌握人工匯編的方
38、法。3.執(zhí)行所給參考程序和自編程序,學習檢查和調(diào)試程序的基本方法。二、實驗前的準備工作1.認真復習指令系統(tǒng)以及程序設(shè)計等章節(jié)。2.對給出的源程序進行分析和理解,搞懂其意義;對未給出機器碼的參考程序 2和 3進行人工匯編, 并分配好存儲單元的地址; 根據(jù)要求編寫好自編源程 序,并人工匯編成機器碼和分配好存儲單元地址。3.復習上一次實驗的內(nèi)容,熟悉實驗系統(tǒng)的操作方法。三、 實驗內(nèi)容和步驟 分別手工輸入各個給出的參考程序和自編程序的機器碼(在實驗前已完成人工匯編),通過該實驗學會手工輸入程序、檢查程序和執(zhí)行程序的方法。當執(zhí) 行結(jié)果不對時,學會如何利用設(shè)置斷點和單步執(zhí)行進行查錯。1.該程序通過用不同的
39、尋址方式和指令對片內(nèi)工作寄存器、片內(nèi)RAM單元、片外RAM單元和程序存儲單元的訪問,進一步熟悉不同存儲器的特點和用法。參考程序 1: 數(shù)據(jù)的傳送程序MOV R0,#20HMOV R0,AINC AINC R0MOV R0,AMOV DPTR,#3000HINC AMOVX DPTR,ACLR AMOVC A,A+DPTRBCD碼表示的數(shù)分解3001H 和 3002H 單元1210 7820MOV R0,#20H1212 F6MOV R0,A1213 00NOP1214 00NOP1215 00NOP1216 80FELOOP:SJMP LOOP 分析該實驗參考程序,預測程序執(zhí)行后各個被訪問過的
40、寄存器和存儲單元 的值。 將程序機器碼手工輸入實驗系統(tǒng)。 輸入程序首地址,執(zhí)行該程序;執(zhí)行后回到系統(tǒng)待命狀態(tài)。 檢查被訪問過的寄存器和存儲單元中的數(shù)值,并和原預測值核對。成兩個一位BCD碼數(shù),高半字節(jié)數(shù)和低半字節(jié)數(shù)分別存放在 中。參考程序 2:字節(jié) BCD 碼的分解程序ORG 1240H1240SEPARATE:MOV DPTR,#3000H12MOVX A,DPTR12MOV B,A;數(shù)據(jù)暫存12SWAP A;高、低半字節(jié)交換12ANL A,#0FH;屏蔽高半字節(jié)12INC DPTR12MOVX DPTR,A;存放原高半字節(jié)12INC DPTR12MOV A,B12ANL A,#0FH;屏蔽
41、高半字節(jié)12MOVX DPTR,A;存放原低半字節(jié)12NOP12NOP12NOP12LOOP:SJMP LOOP 完成人工匯編后,再把程序的機器碼輸入到實驗系統(tǒng)中按下表要求分別用鍵盤向片外 RAM 3000HI元輸入用BCD5表示的兩位數(shù)。并分別執(zhí)行該程序后作記錄3000H1單元輸入值11|12 54 83 97 60|1寄存器或存儲單元地址預測數(shù)值11執(zhí)行后檢查數(shù)值丨12. 該程序把輸入到片外RAM 3000H 單元中的兩位用3001H1單元輸出值1|113002H 單元輸出值 丨丨II 該程序是否能完成兩位十六進制數(shù)的分解 ? 輸入數(shù)據(jù),執(zhí)行程序,記錄 結(jié)果。3. 把需要轉(zhuǎn)換成 BCD 碼
42、的 8 位二進制數(shù)存放在片外 RAM 3000H 單元 中,轉(zhuǎn)換后的 BCD 碼從高位到低位分別存放在 R6 和 R5 中。參考程序 3: 單字節(jié)二進制數(shù)轉(zhuǎn)換成用 BCD 碼表示的數(shù)。ORG 1260H1260BTOBCD:MOV DPTR,#3000H12MOVX A,DPTR12MOV B,#10012DIV AB;除10012MOV R6,A; 存放百位數(shù)12MOV A,#1012XCH A,B12DIV AB;余數(shù)除10,A中為十位數(shù)12SWAP A; 把十位數(shù)移到高 4位12ADD A,B;把B中的個位數(shù)放低4位12MOV R5,A ;存放十位數(shù)和個位數(shù)12NOP12NOP12NOP
43、12LOOP:SJMP LOOP 完成人工匯編后,再把程序的機器碼輸入到實驗系統(tǒng)中。 按下表要求分別用鍵盤向片外 RAM 3000H 單元輸入用 8 位二進制數(shù), 分別執(zhí)行該程序后作記錄。3000H單元輸入值 I 7FH FFH 64H 80H 40HR6輸出值R5輸出值 I_I_4.自編程序 : 請自編一個兩字節(jié)無符號數(shù)加法程序。要求:被加數(shù)存放在片內(nèi) RAM的60H、61H單元中,加數(shù)存放在62H和63H 單元中,計算結(jié)果存放在 62H、 63H 和 64H 單元中。 按要求編寫好源程序,并完成人工匯編和分配好存儲單元地址:ORG 1280H1280SUM:END 手工輸入該程序的機器碼,
44、在輸入后還需仔細地檢查,確認輸入無誤。 用鍵盤在指定單元輸入不同的被加數(shù)和加數(shù);分別執(zhí)行程序并記錄執(zhí)行結(jié)果被加數(shù)(6伯和60H)|00A8H5623H FD4AH 86E5H1加數(shù) (63H 和 62H)|007BH432DH E30FH 7F80H和 (64H,63H 和 62H) |四、實驗報告內(nèi)容1.在實驗指導教師驗核實驗結(jié)果數(shù)據(jù)記錄并認可后,才能算完成實驗。2.附上自編程序的源程序和目標程序的清單。3.談一談在實驗過程中所遇到的問題和解決辦法以及心得體會。實驗三 一般程序設(shè)計 ( 二): 分支程序一、實驗目的1. 通過分支程序的設(shè)計,學會合理使用分支的條件。2.掌握多分支程序的編寫方法
45、; 通過多分支程序的設(shè)計, 了解鍵盤功能程 序的實現(xiàn)原理。3.學會相對轉(zhuǎn)移指令中偏移量的計算方法。3.學會絕對轉(zhuǎn)移指令指令代碼形成的方法。4.掌握程序調(diào)試的手段和基本方法。二、實驗前的準備工作1.讀懂給出的程序。2. 補充未完成的代真機器碼。3.根據(jù)要求修改給出的程序,并完成機器碼代真。三、相對轉(zhuǎn)移指令中偏移量的計算方法在 MCS-51 指令系統(tǒng)的相對轉(zhuǎn)移指令的操作碼后面,緊跟一個字節(jié)的偏移 量,它用8位帶符號數(shù)的對 2的補碼來表示,其范圍是 (80H7FH),即十進 制的(-128 +127)。若現(xiàn)行PC中是該相對轉(zhuǎn)移指令操作碼的地址,而希望轉(zhuǎn)移的目標地址為D,因為實際上只有在該相對轉(zhuǎn)移指令
46、執(zhí)行后, 才能獲得指令中給出的偏移量, 所以 這時PC中存放的是該相對轉(zhuǎn)移指令下一條指令操作碼存放單元的地址,即在原 PC存放地址的基礎(chǔ)上加上該相對轉(zhuǎn)移指令的字節(jié)數(shù)2或3。若以2字節(jié)指令為例,則 所以D = (PC)+2 + 偏移量偏移量=D - (PC)+ 2例如四、(PC)=224CH, D=2230H偏移量=2230H - (224CH + 2)=E2H當偏移量大于等于 80H 時,表示轉(zhuǎn)移方 向為負向轉(zhuǎn)移,即向上轉(zhuǎn)移(向小地址方向 轉(zhuǎn)移)。(PC)=224CH, D=2258H偏移量=2258H - (224CH + 2)=0AH當偏移量小于等于 7FH 時,表示轉(zhuǎn)移方 向為正向轉(zhuǎn)移,
47、即向下轉(zhuǎn)移(向大地址方向 轉(zhuǎn)移)。1.簡單分支程序 要求:自編一個簡單分支程序, 在片內(nèi) RAM 的兩個存儲單元 60H 和 61H 中存放兩個無符號數(shù),將其中的一個大數(shù)存放到 62H 存儲單元。 按要求編寫好源程序,并完成人工匯編和分配好存儲單元地址:ORG2300HONE EQU60HTWO EQU61HMAX EQU62H2300END 手工輸入該程序的機器碼,在輸入后還需仔細地檢查,確認輸入無誤。 行結(jié)果。 用鍵盤在指定單元分別輸入 2 個不等的無符號數(shù),執(zhí)行程序并記錄執(zhí)實驗內(nèi)容和步驟I60H存儲單元1I 4FH51H53H161H存儲單元I 0AHF5H18H162H存儲單元丨12.多分支程序 多分支程序又稱散轉(zhuǎn)程序,這是一種需要根據(jù)某種不同的輸入或運算結(jié)果 轉(zhuǎn)向各個不同處理程序的一種結(jié)構(gòu)。其一般結(jié)構(gòu)框圖如下圖所示。II開始II1 1II-K = NjI分支N這種多分支結(jié)構(gòu)程序,若用 IF K=X THEN 分支 X 的典型分支結(jié)構(gòu)一次判 斷分支條件來決定轉(zhuǎn)入哪個分支程序, 在分支較多時速度就很慢。 這種情況一般 借用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度浙江省二級造價工程師之建設(shè)工程造價管理基礎(chǔ)知識綜合練習試卷A卷附答案
- 感染性休克的護理常規(guī)
- 特種工作安全培訓
- DB43-T 2853-2023 智慧旅游村鎮(zhèn)(鄉(xiāng))評價規(guī)
- 網(wǎng)上培訓制作指南
- 中醫(yī)護理與人文關(guān)懷
- 職業(yè)形象與禮儀素養(yǎng)提升培訓
- 街道環(huán)衛(wèi)面試題及答案
- java有關(guān)數(shù)組知識面試題及答案
- 豬病的防護和護理
- 2025年湖北省中考道德與法治真題含答案
- 2024年上海浦東新區(qū)公辦學校儲備教師招聘筆試真題
- 物流司機獎罰管理制度
- 體裁教學法在高中英語閱讀教學中的應用研究-以說明文為例
- 7數(shù)滬科版期末考試卷-2024-2025學年七年級(初一)數(shù)學下冊期末考試模擬卷02
- 人教版(2024)2025年春季學期七年級下冊地理期末復習模擬試卷(原卷)
- 2025年全國統(tǒng)一高考英語試卷(全國一卷)含答案
- 2025年全國普通高校招生全國統(tǒng)一考試數(shù)學試卷(新高考Ⅰ卷)含答案
- 生物●廣東卷丨2024年廣東省普通高中學業(yè)水平選擇性考試生物試卷及答案
- 2025年河南省豫地科技集團有限公司社會招聘169人筆試參考題庫附帶答案詳解析集合
- 【KAWO科握】2025年中國社交媒體平臺指南報告
評論
0/150
提交評論