




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1.1單片機(jī)芯片的內(nèi)部結(jié)構(gòu)及原理1.2MCS-51系列單片機(jī)指令系統(tǒng)
一、單片機(jī)的概念
單片機(jī)即單片微型計算機(jī),就是將CPU、RAM、ROM、定時/計數(shù)器和多種I/O接口電路都集成在一塊芯片上的微型計算機(jī)。
二、單片機(jī)的類型
MCS-51系列單片機(jī)包括許多類型,常用的有80C51子系列、80C52子系列,其配置如表1.1所示。MCS-51系列單片機(jī)與AT89C51和87C51芯片內(nèi)部結(jié)構(gòu)及原理兼容。1.1單片機(jī)芯片的內(nèi)部結(jié)構(gòu)及原理表1.1MCS-51系列單片機(jī)配置一覽表
三、MCS-51系列單片機(jī)的內(nèi)部結(jié)構(gòu)
MCS-51單片機(jī)結(jié)構(gòu)框圖如圖1.1所示,各功能部件由內(nèi)部總線連接在一起。
MCS-51單片機(jī)芯片內(nèi)部集成包括下列部件:
(1)一個8位微處理器CPU。
(2)?256B數(shù)據(jù)存儲器RAM和特殊功能寄存器SFR。
(3)?4KB內(nèi)部程序存儲器ROM。
(4)兩個定時/計數(shù)器,用以對外部事件進(jìn)行計數(shù),也可用作定時器。
(5)四個8位可編程的I/O(輸入/輸出)并行端口,每個端口既可做輸入,也可做輸出。
(6)一個串行端口,用于數(shù)據(jù)的串行通信。
(7)具有五個中斷源、兩個優(yōu)先級的中斷結(jié)構(gòu)。
(8)內(nèi)部有一個振蕩器和時鐘電路。
(9)有一個可編程全雙工的串行口。
(10)可尋址64KB的外部數(shù)據(jù)存儲空間和64KB的外部程序存儲器的控制電路。圖1.1MCS-51單片機(jī)結(jié)構(gòu)框圖
四、MCS-51系列單片機(jī)的引腳功能
MCS-51系列單片機(jī)引腳及總線結(jié)構(gòu)如圖1.2所示。
(1)主電源引腳VCC和VSS。
(2)外接晶振引腳XTAL1和XTAL2。
(3)控制或其他電源復(fù)用引腳RST/VPD、ALE/和/
VPP。
(4)輸入/輸出引腳P0、P1、P2、P3(共32根)。圖1.2MCS-51系列單片機(jī)引腳及總線結(jié)構(gòu)(a)引腳圖;(b)引腳功能分類五、MCS-51系列單片機(jī)存儲器結(jié)構(gòu)
1.程序存儲器對于80C51來說,程序存儲器(ROM)的內(nèi)部地址為0000H~0FFFH,共4KB;外部地址為1000H~FFFFH,共60KB。程序存儲器的結(jié)構(gòu)如圖1.3所示。當(dāng)=1,程序計數(shù)器由內(nèi)部0FFFH執(zhí)行到外部1000H時,會自動跳轉(zhuǎn);當(dāng)
=0時,只執(zhí)行外部程序。對于87C51來說,內(nèi)部有4KB的EPROM,將它作為內(nèi)部程序存儲器;80C31內(nèi)部無程序存儲器,必須外接程序存儲器。圖1.3MCS-51單片機(jī)存儲器空間結(jié)構(gòu)圖(a)程序存儲器;(b)內(nèi)部數(shù)據(jù)存儲器;(c)外部數(shù)據(jù)存儲器
80C31最多可外擴(kuò)64KB程序存儲器,其中6個單元地址具有特殊用途,保留給系統(tǒng)使用,如表1.2所示。其中,0000H是系統(tǒng)的啟動地址,一般在該單元中存放一條絕對跳轉(zhuǎn)指令;另外0003H、000BH、0013H、001BH和0023H對應(yīng)5個中斷源的中斷服務(wù)入口地址。表1.2MCS-51單片機(jī)復(fù)位、中斷入口地址
2.內(nèi)部數(shù)據(jù)存儲器
MCS-51單片機(jī)片內(nèi)RAM的配置如圖1.3(b)所示。片內(nèi)RAM為256字節(jié),地址范圍為00H~FFH,分為兩大部分:低128字節(jié)(00H~7FH)為真正的RAM區(qū);高128字節(jié)
(80H~FFH)為特殊功能寄存器區(qū)SFR。
在低128字節(jié)RAM中,00H~1FH共32單元是4個通用工作寄存器區(qū)。每一個區(qū)有8個通用寄存器R0~R7。寄存器和RAM地址對應(yīng)關(guān)系如表1.3所示。RAM中的位尋址區(qū)地址表如表1.4所示,SFR特殊功能寄存器地址表如表1.5所示。表1.3寄存器和RAM地址對照表表1.4RAM中的位尋址區(qū)地址表表1.5SFR特殊功能寄存器地址表
MCS-51系列單片機(jī)指令按照功能可分為數(shù)據(jù)傳送類指令、算術(shù)運算類指令、邏輯運算與循環(huán)類指令、程序轉(zhuǎn)移類指令和位操作類指令。
1.2MCS-51系列單片機(jī)指令系統(tǒng)
一、數(shù)據(jù)傳送類指令
1.訪問RAM和SFR的指令
(1)以A為目的操作數(shù):4.?dāng)?shù)據(jù)交換字節(jié)交換:XCHA,Rn ;(A)(Rn)XCHA,direct ;(A)(direct)XCHA,@Ri ;(A)((Ri))半字節(jié)交換:XCHDA,@Ri ;(A0~3)((Ri)0~3)SWAPA ;(A0~3)(A4~7)
5.堆棧操作
所謂堆棧是指在片內(nèi)RAM中按“先進(jìn)后出,后進(jìn)先出”原則設(shè)置的專用存儲區(qū)。數(shù)據(jù)的進(jìn)棧和出棧由指針SP統(tǒng)一管理。堆棧操作有如下兩條專用指令:
PUSHdirect ;(SP)←(SP)+1,((SP))←(direct)
POP ??direct ;(direct)←(SP),(SP)←(SP)?-1二、算術(shù)運算類指令
1.加法指令
ADDA,Rn ;(A)←(A)+(Rn)
ADDA,direct ;(A)←(A)+(direct)
ADDA,@Ri ;(A)←(A)+((Ri))
ADDA,#data ;(A)←(A)+#data
2.帶進(jìn)位加法指令
ADDCA,Rn ;(A)←(A)+(Rn)+(C)
ADDCA,direct ;(A)←(A)+(direct)+(C)
ADDCA,@Ri ;(A)←(A)+((Ri))+(C)
ADDCA,#data ;(A)←(A)+#data+(C)3.帶借位減法指令
SUBBA,Rn ;(A)←(A)?-(Rn)?-(C)
SUBBA,direct ;(A)←(A)?-(direct)?-(C)
SUBBA,@Ri ;(A)←(A)?-((Ri))?-(C)
SUBBA,#data ;(A)←(A)?-#data?-(C)
4.乘法指令
MULAB ;(B)(A)←(A)×(B)。A和B中各存放一
;個8位無符號數(shù),指令執(zhí)行后,16位
;乘積的高8位在B中,低8位存A中5.除法指令
DIVAB ;(A)÷(B)→商在A中,余數(shù)在B中
6.加1指令
INCA ;(A)←(A)+1
INCRn ;(Rn)←(Rn)+1
INCdirect ;(direct)←(direct)+1
INC@Ri ;((Ri))←((Ri))+1
INCDPTR ;(DPTR)←(DPTR)+17.減1指令
DECA ;(A)←(A)?-1
DECRn ;(Rn)←(Rn)?-1
DECdirect ;(direct)←(direct)?-1
DEC@Ri ;((Ri))←((Ri))?-1
8.十進(jìn)制調(diào)整指令
DAA;把A中按二進(jìn)制相加的結(jié)果調(diào)
整成按BCD碼相加的結(jié)果三、邏輯運算與循環(huán)類指令
1.“與”操作指令
ANLA,direct ;(A)←(A)∧(direct)
ANLA,Rn ;(A)←(A)∧(Rn)
ANLA,@Ri ;(A)←(A)∧((Ri))
ANLA,#data ;(A)←(A)∧#data
ANLdirect,A ;(direct)←(direct)∧(A)
ANLdirect,#data ;(direct)←(direct)∧#data2.“或”操作指令
ORLA,direct ;(A)←(A)∨(direct)
ORLA,Rn ;(A)←(A)∨(Rn)
ORLA,@Ri ;(A)←(A)∨((Ri))
ORLA,#data ;(A)←(A)∨#data
ORLdirect,A ;(direct)←(direct)∨(A)
ORLdirect,#data ;(direct)←(direct)∨#data3.“異或”操作指令
XRLA,direct ;(A)←(A)
(direct)
XRLA,Rn ;(A)←(A)
(Rn)
XRLA,@Ri ;(A)←(A)
((Ri))
XRLA,#data ;(A)←(A)
#data
XRLdirect,A ;(direct)←(direct)
(A)
XRLdirect,#data ;(direct)←(direct)
#data四、程序轉(zhuǎn)移類指令
1.無條件轉(zhuǎn)移指令
絕對(短)轉(zhuǎn)移指令:
AJMPaddr11 ;(PC0~10)←addr11
長轉(zhuǎn)移指令:
LJMPaddr16 ;(PC)←addr16
短(相對)轉(zhuǎn)移指令:
SJMPrel ;(PC)←(PC)+2+rel
間接轉(zhuǎn)移指令:
JMP @A+DPTR ;(PC)←(A)+(DPTR)2.條件轉(zhuǎn)移指令
累加器為零(非零)轉(zhuǎn)移指令:
JZrel ;若(A)=0,則(PC)←(PC)+rel,否則程序順序執(zhí)行
JNZrel;若(A)≠0,則(PC)←(PC)+rel,否則程序順序執(zhí)行
減1非零轉(zhuǎn)移指令:
DJNZRn,rel ;(Rn)←(Rn)?-1,若(Rn)≠0,則
(PC)←(PC)+rel,否則順序執(zhí)行
DJNZdirect,rel;(direct)←(direct)-1,若(direct)≠0,則
(PC)←(PC)+rel,否則順序執(zhí)行兩數(shù)不等轉(zhuǎn)
移指令:五、位操作類指令
1.位傳送指令
MOVC,bit ;(CY)←(bit)
MOVbit,C ;(bit)←(CY)
2.位置位和位清零指令
CLRC ;(CY)←0
CLRbit ;(bit)←0
SETBC ;(CY)←1
SETBbit ;(bit)←14.位控制轉(zhuǎn)移指令
JBbit,rel ;若(bit)=1,則(PC)←(PC)+rel,否則順序執(zhí)行
JNBbit,rel ;若(bit)=0,則(PC)←(PC)+rel,否則順序執(zhí)行
JBCbit,rel ;若(bit)=1,則(PC)←(PC)+rel,(bit)←0,否則
順序執(zhí)行
JC?rel ;若(CY)=0,則(PC)←(PC)+rel,否則順序執(zhí)
行
JNC???rel ;若(CY)≠0,則(PC)←(PC)+rel,否則順序執(zhí)
行2.1QTH-2008XS單片機(jī)實驗儀功能介紹2.2QTH-2008XS下載式單片機(jī)實驗儀開發(fā)環(huán)境2.3鍵盤監(jiān)控程序簡介2.4鍵盤操作說明
QTH-2008XS型號實驗儀自帶下載式CPU和仿真監(jiān)控程序,不需要仿真器和編程工具,只需通過COM口便可與PC機(jī)連接,直接調(diào)試實驗程序,是廉價的仿真實驗儀。
QTH-2008XS實驗儀除了一些通用的特性外,還具備如下一些特點。
(1)采用模塊化設(shè)計:所有電路單元盡可能獨立開放,提高實驗的自由度、靈活性,各單元模塊可組成多種功能各異的實驗電路,提高學(xué)生的創(chuàng)造性,如通過DIP開關(guān)來切換鍵盤顯示實驗區(qū)是否對用戶開放等。2.1QTH-2008XS單片機(jī)實驗儀功能介紹
(2)提供了豐富的外圍芯片:擴(kuò)展RAM,244、273擴(kuò)展I/O口,8251與PC機(jī)進(jìn)行串行通信,8253計數(shù)器,8255并行擴(kuò)展實驗進(jìn)行交通燈等實驗,8259中斷,0809A/D通過調(diào)節(jié)電位器觀察輸出值的變化,0832D/A編程實現(xiàn)方波及階梯波等波形,164串/并轉(zhuǎn)換用于顯示電子鐘DS1302的“秒”,138譯碼提供各模塊的選通信號,393分頻—振蕩電路通過分頻得到相應(yīng)的頻率。
(3)體現(xiàn)了完善的功能:CPLD可編程邏輯實驗——利用下載電纜進(jìn)行在線編程;RS232與RS485轉(zhuǎn)換,并通過RS232與PC機(jī)通信實驗;12864液晶顯示實驗——顯示中文及英文字符;16×16點陣式LED實驗——移動中文字幕;邏輯加密卡——密碼及內(nèi)容的讀寫;7289鍵盤顯示實驗——模擬電子鐘;種類齊全的總線實驗(SPI總線的串行EEPROM及看門狗——?X5045、Microwire總線的串行EEPROM——?AT93C46、I2C總線的串行EEPROM——?AT24C16、單總線結(jié)構(gòu)的數(shù)字式溫度傳感器——DS18B20、其他總線的電子鐘——DS1302);繼電器實驗——演示單刀雙擲繼電器的常開常閉狀態(tài);直流電機(jī),步進(jìn)電機(jī),光磁控制風(fēng)扇,電子音響,打印機(jī)接口等實驗。
(4)領(lǐng)先的開發(fā)環(huán)境:全新的Windows界面版本,支持軟件模擬調(diào)試,支持C語言混合碼調(diào)試,使C語言調(diào)試更加直觀方便。支持ASM、PLM、C語言多模塊混合語言源程序調(diào)試。先進(jìn)的錯誤定位,可直接進(jìn)入錯誤位置,無需查找錯誤信息。所有軟件均可直接在線修改、編譯、連接、裝載。
一、連接系統(tǒng)電源
QTH-2008XS下載式實驗儀由一組外接電源系統(tǒng)驅(qū)動。通電時,先接通目標(biāo)系統(tǒng)穩(wěn)壓電源,然后接通PC機(jī)和QTH-2008XS下載式實驗儀的電源;斷電時,先關(guān)閉PC機(jī)和
QTH-2008XS下載式實驗儀電源,然后關(guān)閉目標(biāo)系統(tǒng)穩(wěn)壓電源。2.2QTH-2008XS下載式單片機(jī)實驗儀開發(fā)環(huán)境
二、QTH-2008XS開發(fā)環(huán)境的啟動和退出
在正確安裝QTH-2008XS下載式單片機(jī)實驗儀軟件后,如果要啟動程序,只需把鼠標(biāo)指向Windows桌面上的程序圖標(biāo)(如QTH-2008XS開發(fā)系統(tǒng)V2006.1)便可啟動程序。如果已經(jīng)連接實驗儀,則QTH軟件進(jìn)入自動搜索狀態(tài)。如果QTH自動識別實驗儀連機(jī)正常,則直接進(jìn)入QTH實驗儀開發(fā)環(huán)境界面。如果沒有連接好實驗儀,則屏幕上出現(xiàn)如圖2.1所示的“連機(jī)出錯”提示框;如果只是進(jìn)入軟件調(diào)試,則點擊提示框中的“是(Y)”按鈕。圖2.1“連機(jī)出錯”提示框
三、QTH-2008XS開發(fā)環(huán)境菜單介紹
QTH-2008XS開發(fā)環(huán)境界面如圖2.2所示。它有許多菜單項,主菜單包含了絕大多數(shù)操作命令。用戶通過閱讀菜單項,即可掌握每個菜單命令的具體功能。QTH-2008XS也可以使用下述熱鍵和工具欄圖標(biāo)快速完成常用菜單項的功能:
文件(F):包括文件有關(guān)的操作,如打開、關(guān)閉、打印等。
編輯(E):包括拷貝、剪切、粘貼、書簽、查找和替換等。
查看(V):包括工具欄和有關(guān)窗口的顯示等。
項目(P):包括編譯和連接等。
調(diào)試(D):包括加載目標(biāo)文件、單步、斷點、全速執(zhí)行等。
設(shè)置(S):包括仿真機(jī)的設(shè)置、設(shè)置文本編輯器、項目屬性等。
外設(shè)(O):包含定時器、串行口、中斷等命令。
窗口(W):選擇或改變當(dāng)前活動窗口及窗口排列方式。
幫助(H):顯示相應(yīng)幫助文件和鍵操作。圖2.2QTH-2008XS開發(fā)環(huán)境界面四、QTH-2008XS開發(fā)環(huán)境使用方法
1.進(jìn)入QTH-2008XS開發(fā)環(huán)境
雙擊桌面中QTH-2008XS圖標(biāo),出現(xiàn)如圖2.2所示界面。
2.創(chuàng)建程序文件如果要創(chuàng)建一個新的程序文件,可從“文件”菜單中選擇“新建”命令或單擊工具欄上的“新建”命令按鈕,出現(xiàn)如圖2.3所示界面,就可在打開的一個空的源程序窗口中編輯新文件。如果從“文件”菜單中選擇“打開”命令或單擊工具欄上的“打開”命令按鈕,將彈出如圖2.4所示的“打開”對話框,選取正確的路徑和文件名,就可以打開一個以前編譯好的文件。圖2.3新建文件界面
圖2.4“打開”對話框
3.保存文件
若打開一個空的源程序窗口后,應(yīng)先將其保存成擴(kuò)展名為?.ASM的源程序,如圖2.5所示,以防止程序丟失。若用C語言編制源程序時,則擴(kuò)展名為?.C。
4.輸入程序
將編寫好的程序輸入到保存的窗口中,如圖2.6所示。圖2.5保存文件圖2.6輸入程序
5.編譯及連接源程序當(dāng)源程序編制好后,必須對源程序進(jìn)行編譯及連接操作。在圖2.7的“項目”菜單中選擇“編譯當(dāng)前文件”命令,或者單擊工具欄上的“編譯”命令按鈕,QTH-2008XS實驗儀接收到編譯命令后,可自動地對當(dāng)前正在使用的程序文件進(jìn)行在線編譯。編譯結(jié)束后,信息欄窗口下面出現(xiàn)如圖2.8所示窗口,顯示當(dāng)前程序的編譯狀況。當(dāng)編譯發(fā)生錯誤時,信息窗口中的錯誤信息自動與源文件關(guān)聯(lián),提示出錯的位置,如圖2.9所示,出現(xiàn)“”光標(biāo)的位置是提示出錯;或者在信息窗口錯誤提示處雙擊鼠標(biāo)左鍵,也可將錯誤信息與源文件的錯誤位置關(guān)聯(lián),在錯誤程序上出現(xiàn)“”光標(biāo)。如果編譯出現(xiàn)錯誤,在修改文件后重復(fù)進(jìn)行編譯操作,直到錯誤修改完畢。圖2.7編譯及連接源程序圖2.8編譯后信息欄圖2.9程序編譯出錯提示當(dāng)編譯后沒有語法錯誤時,在“項目”菜單中選擇“編譯連接裝載”命令,QTH即自動對當(dāng)前的單文檔或多文檔進(jìn)行編譯,在所有文檔編譯通過后自動進(jìn)行連接操作。連接成功后源程序?qū)⒊霈F(xiàn)“”光標(biāo)指向程序首地址,如圖2.10所示。圖2.10連接成功
6.重新裝入程序在調(diào)試過程中,可以根據(jù)需要隨時重新裝入程序。從“調(diào)試”菜單選擇“裝載”命令(快捷鍵Ctrl+L),或者單擊工具欄上的“裝載”命令按鈕。裝載完成后,開發(fā)環(huán)境中調(diào)試工具條所有命令按鈕變亮。
7.?dāng)帱c設(shè)置與清除當(dāng)程序編譯連接成功后,可在源程序窗口設(shè)定斷點。將鼠標(biāo)指向源程序行左側(cè)需設(shè)定斷點行處,按下鼠標(biāo)左鍵設(shè)置后,斷點以“”標(biāo)記在文本左側(cè)的灰色狀態(tài)欄內(nèi)。重復(fù)上述步驟,設(shè)定更多的斷點,如圖2.11所示?;蛘邌螕簟罢{(diào)試”菜單選擇“設(shè)置斷點”命令(快捷鍵F9),還可以單擊工具條的“設(shè)置斷點”命令按鈕。設(shè)置斷點后,當(dāng)重復(fù)調(diào)試程序時,程序只要運行到此處就會停在該斷點處。清除斷點時只需在所設(shè)斷點行處按下鼠標(biāo)左鍵,或者在“調(diào)試”菜單下點擊“復(fù)位”命令,就可以快速觀察程序運行到斷點時的執(zhí)行結(jié)果。圖2.11斷點的設(shè)置
8.設(shè)置PC指針
單片機(jī)在復(fù)位時自動將PC的內(nèi)容設(shè)定為0000H。在調(diào)試源程序過程中,如果需要從某一地址處開始執(zhí)行程序,則可以重新設(shè)置PC指針改變程序執(zhí)行地址,將鼠標(biāo)指向程序行左側(cè)需設(shè)定斷點行處,按下鼠標(biāo)右鍵?;蛘邚摹霸O(shè)置”菜單中打開設(shè)置PC值窗口,在修改PC值窗口中直接輸入程序地址。
9.單步執(zhí)行調(diào)試從“調(diào)試”菜單中選擇“單步執(zhí)行”命令(快捷鍵F8),或者單擊工具欄上的“單步執(zhí)行”命令按鈕,系統(tǒng)就按照PC所指示的地址(箭頭處)執(zhí)行該條指令。PC的內(nèi)容將自動指向下一條將要執(zhí)行指令的地址,箭頭也向下移動一次。當(dāng)執(zhí)行調(diào)用指令(LCALLXX,ACALLXX)時,單步運行可以跟蹤到子程序內(nèi)部,在調(diào)試中可以觀察主程序、子程序內(nèi)部各條指令的運行結(jié)果及程序運行過程。
10.宏單步(步越)
從“調(diào)試”菜單中選擇“宏單步”命令(快捷鍵F10),或者單擊工具欄上的“宏單步”命令按鈕,系統(tǒng)就按照PC所指示的地址(箭頭處)執(zhí)行該條指令。但當(dāng)執(zhí)行調(diào)用指令(LCALLXX,ACALLXX)時,宏單步不能跟蹤到子程序內(nèi)部,它將該子程序視為一個語句一次執(zhí)行完全部指令,PC的內(nèi)容將自動指向該調(diào)用指令的下一條指令的地址。
11.執(zhí)行到光標(biāo)處先將光標(biāo)調(diào)到某條需要觀察執(zhí)行結(jié)果的指令處,單擊“調(diào)試”菜單中的“執(zhí)行到光標(biāo)處”命令(快捷鍵F7),或者單擊工具欄上的“執(zhí)行到光標(biāo)處”命令按鈕,程序就從當(dāng)前地址處開始執(zhí)行到當(dāng)前光標(biāo)所在的程序行。如果當(dāng)前光標(biāo)處在一個不可執(zhí)行的程序行上,則QTH不能執(zhí)行該操作。此方法可根據(jù)操作者的實際需要,快速觀察程序運行至某處的執(zhí)行結(jié)果,加快調(diào)試程序的速度。
12.屏蔽斷點全速運行程序單擊“調(diào)試”菜單中的“屏蔽斷點全速運行”命令(快捷鍵CTRL+F5),或者單擊工具欄上的“全速運行”命令按鈕,程序從當(dāng)前程序地址處開始全速執(zhí)行程序,并屏蔽所有斷點直至按復(fù)位鍵停止。全速運行程序可以快速觀察到程序執(zhí)行的最后結(jié)果。
13.查看CPU片內(nèi)寄存器內(nèi)容單擊“查看”菜單中的“寄存器窗口”命令,或者單擊工具條上的“寄存器窗口”命令按鈕,出現(xiàn)如圖2.12所示的窗口。通過寄存器窗口可以觀察到特殊功能寄存器窗口的內(nèi)容變化情況。若使光標(biāo)進(jìn)入任一窗口某一指定數(shù)據(jù)位置,即可對該窗口的內(nèi)容直接進(jìn)行修改。
14.查看數(shù)據(jù)存儲器單擊“查看”菜單中的“數(shù)據(jù)存儲器”命令,或者單擊工具欄上的“數(shù)據(jù)存儲器”命令按鈕,出現(xiàn)如圖2.13所示的窗口。在該窗口中可以觀察到程序在運行時內(nèi)部數(shù)據(jù)存儲器窗口(Data)和外部數(shù)據(jù)存儲器窗口(Xdata)的內(nèi)容變化情況。若使光標(biāo)進(jìn)入任一窗口某一指定數(shù)據(jù)位置,即可對該窗口的內(nèi)容直接進(jìn)行修改。圖2.12寄存器窗口圖2.13數(shù)據(jù)存儲器窗口
15.查看變量單擊“查看”菜單中的“變量表”命令(快捷鍵Ctrl+W),或者單擊工具欄上的“變量表”命令按鈕,出現(xiàn)如圖2.14所示的窗口。通過該窗口可以查看程序運行中某些符號的參數(shù)及變量的變化值。圖2.14變量變化窗口
1.鍵盤監(jiān)控程序工作狀態(tài)
用戶可以通過28個鍵向QTH-2008XS實驗儀發(fā)出各種操作命令,大多數(shù)鍵均有兩個以上功能,本機(jī)無上下?lián)蹀D(zhuǎn)換鍵,實驗儀進(jìn)行什么操作不僅與按壓什么鍵有關(guān),而且與當(dāng)時實驗儀的狀態(tài)有關(guān)。下述各工作狀態(tài)在操作中是一些重要概念,需讀者掌握。
待命狀態(tài)0:在本狀態(tài)時,顯示器左端顯示一個閃動的“P”提示符,表示實驗儀在初始化狀態(tài)。實驗儀接通電源自動復(fù)位或按壓RESET鍵,都可以使本機(jī)處于待命狀態(tài)0。在大多數(shù)情況下,按MON鍵也可以使實驗儀進(jìn)入待命狀態(tài)0。2.3鍵盤監(jiān)控程序簡介待命狀態(tài)1:在本狀態(tài)時,顯示器顯示一到八位數(shù)字,數(shù)字中間沒有間隔。如果顯示八位數(shù)字,則第一位會不斷閃動。在待命狀態(tài)0時,按數(shù)字鍵本機(jī)便轉(zhuǎn)入待命狀態(tài)1。另外,當(dāng)執(zhí)行用戶程序時,遇斷點、單步執(zhí)行、宏單步執(zhí)行等都會使實驗儀進(jìn)入待命狀態(tài)1。
存儲器讀/寫狀態(tài):顯示器顯示六位數(shù)字,第五、六位為空格,第七位或第八位數(shù)字不斷閃動。在待命狀態(tài)1時,按MEM、DRAM鍵或設(shè)置斷點、斷點查找等都會使實驗儀進(jìn)入該狀態(tài)。按壓RESET鍵和MON鍵,可以退出該狀態(tài),返回待命狀態(tài)0。寄存器讀/寫狀態(tài):顯示器顯示五位數(shù)字,第一位為寄存器代號,第二、三、四位為空格,第五至第八位顯示寄存器內(nèi)容,其中一位不斷閃動。在待命狀態(tài)1并且顯示器上只有一位數(shù)字時(寄存器代號),按REG鍵可使實驗儀進(jìn)入讀/寫狀態(tài)。按壓RESET鍵和MON鍵可以退出該狀態(tài),返回待命狀態(tài)0。特殊功能寄存器和RAM區(qū)讀/寫狀態(tài):顯示器顯示六位數(shù)字,第一、二位為CPU內(nèi)部RAM地址,第三、四位為空格,第五、六位顯示該地址內(nèi)容,第七、八位顯示下一地址單元內(nèi)容,其中一位不斷閃動。按壓LAST、NEXT鍵進(jìn)入偶地址或奇地址向上、向下讀/寫操作。在待命狀態(tài)1并且顯示器上只有兩位數(shù)字時(特殊功能寄存器、RAM區(qū)地址),按SFR、REG鍵使計算機(jī)進(jìn)入該狀態(tài)。特殊功能寄存器只能讀出不能寫入,按壓RESET鍵和MON鍵可以退出該狀態(tài),返回待命狀態(tài)0。
2.鍵盤監(jiān)控特點
鍵盤控制具有以下特點:
(1)?QTHBUG沒有換擋鍵,鍵的功能取決于實驗儀所處的狀態(tài)。各個鍵的功能同實驗儀的狀態(tài)聯(lián)系在一起,免去了記憶上下?lián)醯穆闊嶒瀮x的狀態(tài)可以從顯示器的方式中判斷,不會引起混亂。
(2)具有單步、宏單步跟蹤功能,持續(xù)按壓單步STEP、宏單步SCAL鍵,實驗儀便進(jìn)入跟蹤狀態(tài),以每分鐘200多條指令快速執(zhí)行用戶程序,同時顯示程序執(zhí)行地址及該單元內(nèi)容和累加器的內(nèi)容,只要松開鍵便可以立刻停止,返回待命狀態(tài)。
(3)?QTHBUG有靈活的斷點設(shè)置、單步、宏單步、自動跟蹤等功能,大大提高了本機(jī)的開發(fā)功能,為用戶節(jié)省了調(diào)試程序的時間。
(4)斷點的清除可以單個進(jìn)行。如果操作者忘記了所設(shè)斷點的地址,按壓斷點查找鍵GTBP,可以找出程序中設(shè)置的全部斷點,用STBP鍵設(shè)置斷點時,顯示器會顯示已設(shè)置的斷點個數(shù),以避免設(shè)置過多的斷點。
(5)在QTHBUG中,對寄存器的讀寫采用讀/寫寄存器對拼成(16位)的形式進(jìn)行,按壓NEXT或LAST鍵可以訪問到所有的寄存器。NEXT和LAST具有自動連續(xù)功能,簡化了操作,節(jié)省了時間。
(6)除復(fù)位鍵以外,大多數(shù)鍵有自動連續(xù)功能,持續(xù)按鍵0.8秒以上,就會產(chǎn)生連續(xù)按鍵的效果,達(dá)到快速掃描、檢查,簡化了操作,節(jié)省了時間。
1.硬件復(fù)位——RESET鍵
QTH-2008XS實驗儀在上電或按下RESET鍵時均使系統(tǒng)復(fù)位,復(fù)位時程序計數(shù)器PC及SFR均被初始化為MCS-51執(zhí)行復(fù)位后的內(nèi)容。
在任何時刻按壓復(fù)位鍵RESET,都會迫使實驗儀進(jìn)入初始化狀態(tài)(與上電復(fù)位作用一樣),在復(fù)位信號有效期間,所有輸出信號均無效,數(shù)據(jù)及地址總線均為三態(tài),并且在RESET變低前每一個周期重復(fù)執(zhí)行CPU內(nèi)部復(fù)位。2.4鍵盤操作說明
(1)置用戶堆棧指針07H。
(2)進(jìn)入監(jiān)控程序,顯示器左端顯示“P”表示處于待命狀態(tài),可以接受數(shù)字鍵和命令鍵輸入。
(3)清除用戶斷點,并進(jìn)入連機(jī)通信等待狀態(tài)。
2.返回待命狀態(tài)——MON鍵
按MON鍵,可使實驗儀進(jìn)入待命狀態(tài)0,通常用MON鍵進(jìn)行以下操作:
(1)清除已送入顯示器的數(shù)字。
(2)退出其他操作狀態(tài)。例如,退出存儲器讀/寫狀態(tài)和寄存器讀/寫狀態(tài)等。
按MON鍵不會影響用戶的存儲區(qū)、寄存器,以及已設(shè)置的斷點,也不會影響實驗儀的當(dāng)前模式。3.送數(shù)命令——16個數(shù)字鍵
16個數(shù)字鍵0~F,一般是用來向?qū)嶒瀮x輸入十六進(jìn)制數(shù)字,輸入的數(shù)將立刻顯示在顯示儀上,等待輸入數(shù)字的位置通常由光標(biāo)指出。數(shù)字輸入后,光標(biāo)就自動移到下一位,即下一位的數(shù)字閃動,表明它準(zhǔn)備接受更改的位置,但有以下兩種情況不出現(xiàn)光標(biāo):
(1)在待命狀態(tài)1時,顯示的數(shù)字不夠8位,即右邊還有空格(不顯示的位),光標(biāo)的位置實際在空格處,這時觀察不到光標(biāo)。
(2)在特殊功能寄存器讀狀態(tài)時,不能修改其內(nèi)容,所以這時光標(biāo)不閃動。
16數(shù)字鍵與寄存器標(biāo)號共用一位地址表示寄存器或部分SFR。
4.存儲器讀/寫命令——MEM、NEXT、LAST鍵
這一組命令用來檢查(讀出)或更改(寫入)內(nèi)存單元,通過這些鍵盤命令操作向?qū)嶒瀮x送入程序和數(shù)據(jù)。
先按MON鍵,使實驗儀處于待命狀態(tài)0,然后輸入四位表示要檢查的存儲器地址,再按MEM存儲器讀/寫鍵,讀出該單元的內(nèi)容,實驗儀便進(jìn)入存儲器讀/寫狀態(tài)。
在存儲器讀/寫狀態(tài),顯示器的左邊四位數(shù)字是內(nèi)存單元的地址,右邊兩位是該單元的內(nèi)容,光標(biāo)(閃動的數(shù)字)表示等待修改(寫入)的數(shù)字。MEM、NEXT、LAST鍵的具體使用情況如表2.1所示。表2.1MEM、NEXT、LAST鍵的使用說明存儲器讀/寫狀態(tài)是QTHBUG的一種重要狀態(tài),這時多數(shù)的命令鍵都具有與待命狀態(tài)1不同的功能,請用戶注意。存儲器讀/寫狀態(tài)的明顯標(biāo)志是:顯示六位數(shù)字,第五位、第六位為空格,光標(biāo)在第七位或第八位。但在待命狀態(tài)1多輸送了數(shù)字,光標(biāo)也會移到第五位至第八位,這是唯一的例外。在存儲器讀/寫狀態(tài),各功能鍵功能都以下排字表示。使用LAST或NEXT鍵可以讀出上一個或下一個存儲單元,同時光標(biāo)自動移到第七位。持續(xù)按LAST或NEXT鍵在0.8秒以上,實驗儀便開始對內(nèi)存進(jìn)行向上或向下掃描,依次顯示各單元地址及內(nèi)容。松開按鍵,掃描立即停止,實驗儀仍處于存儲器讀/寫狀態(tài)。利用這種功能可以快速檢查某一內(nèi)存區(qū)的內(nèi)容,或快速移動要檢查的單元,從而簡化操作。
按MON鍵,可使實驗儀退出存儲器讀/寫狀態(tài)返回待命狀態(tài)0,操作步驟見表2-1。
5.寄存器、片內(nèi)RAM區(qū)讀/寫命令——REG、NEXT、
LAST鍵
對寄存器采取讀出寄存器對或16位寄存器的形式,8位寄存器也都拼成16位,寄存器對用代號表示(見表2.2)。表2.2一位地址表示的寄存器或部分SFR標(biāo)號表寄存器讀/寫狀態(tài)是:顯示器上五個數(shù)字,第一位數(shù)字表示寄存器對(都是16位)的代號,右邊的4位數(shù)字表示該寄存器或寄存器對的內(nèi)容。光標(biāo)處于顯示器的第五位到第八位之間。
若要對寄存器的內(nèi)容進(jìn)行改寫,可按所需的數(shù)字鍵,則光標(biāo)所在處的數(shù)字即被更換,光標(biāo)往左移一位(若到了最左端,又重新回到起始位)。片內(nèi)RAM區(qū)讀/寫狀態(tài)是:顯示器上顯示六個數(shù)字,左邊兩位是RAM區(qū)地址,右邊四位是該地址及下一地址的內(nèi)容,第三、四兩位是空格。光標(biāo)處于顯示器的第五位與第八位之間。
若要對RAM區(qū)的內(nèi)容進(jìn)行改寫,可按所需的數(shù)字鍵,則光標(biāo)所在處的數(shù)字即被更換。按NEXT或LAST鍵,可查看該下一個或上一個寄存器對,RAM區(qū)(按代號順序排列)的內(nèi)容。持續(xù)按鍵的時間在0.8秒以上時,可實現(xiàn)快速查找寄存器及RAM區(qū)。
按MON鍵,可以從寄存器RAM區(qū)讀/寫狀態(tài)退回待命狀態(tài)0。
REG、NEXT、LAST鍵的使用說明見表2.3。表2.3REG、NEXT、LAST鍵的使用說明
6.外部數(shù)據(jù)、RAM、I/O口讀/寫命令——DRAM、
NEXT、LAST鍵
用DRAM鍵可以對擴(kuò)展的外部數(shù)據(jù)存儲器、I/O口或擴(kuò)展的外部RAM的256個字節(jié)的內(nèi)容進(jìn)行檢查、讀出或更改(寫入)。
外部數(shù)據(jù)、RAM和I/O口的讀/寫,一般應(yīng)先按MON鍵,使實驗儀進(jìn)入待命狀態(tài)0。然后按所要訪問的外部數(shù)據(jù)區(qū)的地址及擴(kuò)展RAM的地址,實驗儀便進(jìn)入讀/寫狀態(tài)。數(shù)據(jù)存儲器讀/寫的狀態(tài)是:顯示器上顯示六個數(shù)字,左邊四位數(shù)字是存儲單元的地址,第五、六位空格,右邊兩位是該單元的內(nèi)容,光標(biāo)在第七位與第八位之間,表示等待修改該單元內(nèi)容。
按NEXT或LAST鍵,可查訪更改下一個或上一個單元的內(nèi)容。持續(xù)按LAST或NEXT鍵的時間在0.8秒以上,可實現(xiàn)快速查找數(shù)據(jù)或RAM及I/O口的內(nèi)容。按MON鍵,可使實驗儀返回待命狀態(tài)0。DRAM、NEXT、LAST鍵的使用說明見表2.4。表2.4DRAM、NEXT、LAST鍵的使用說明
7.特殊功能寄存器檢查——SFR、NEXT、LAST鍵
用SFR鍵可以讀出CPU內(nèi)部特殊功能寄存器的內(nèi)容。特殊功能寄存器的地址為
80H~FFH,輸入地址不能小于80H。
特殊功能寄存器檢查的狀態(tài)標(biāo)志是:顯示器上顯示六個數(shù)字,第一、二數(shù)字表示特殊功能寄存器地址,第三到第六位是空格,第七、八位顯示該地址單元的內(nèi)容。
按NEXT、LAST鍵,可查看上一個或下一個特殊功能寄存器的內(nèi)容。按MON鍵,可以從特殊功能寄存器讀出狀態(tài)退回待命狀態(tài)0。其操作見表2.5。表2.5SFR、NEXT鍵的使用說明
8.斷點的設(shè)置與清除命令——STBP鍵
設(shè)置斷點是調(diào)試程序的一種方法。在執(zhí)行用戶程序的過程中,遇到斷點,程序便會停下來,保護(hù)好此時的所有用戶寄存器,并顯示斷點地址及A累加器和下一條指令碼的內(nèi)容,或顯示用戶設(shè)定的內(nèi)容,進(jìn)入待命狀態(tài)1。這時可利用各種檢查命令,判斷程序執(zhí)行是否正確。
QTHBUG允許用戶在程序中設(shè)置1或2個斷點,也可在ROM區(qū)設(shè)置斷點,但斷點應(yīng)設(shè)置在每條指令的第一個字節(jié)處,否則會造成程序執(zhí)行的錯誤。斷點最多可設(shè)2個,強(qiáng)行設(shè)置第3個斷點,將認(rèn)為是非法的,實驗儀將自動返回待命狀態(tài)0,第3個斷點不被接受,但不影響前面已設(shè)置的2個斷點,它們?nèi)匀皇怯行У摹帱c設(shè)置鍵STBP在存儲器讀/寫狀態(tài)和待命狀態(tài)1有效。在存儲器讀/寫狀態(tài),若現(xiàn)行地址未增設(shè)過斷點,按STBP鍵后,顯示器最右邊(第八位)立即顯示已設(shè)斷點個數(shù),約1.5秒后,重新回到存儲器讀/寫狀態(tài),這時斷點被接受,此處斷點設(shè)置完畢。若實驗儀處于待命狀態(tài)0,則應(yīng)先送4位表示斷點地址的數(shù)字,然后按STBP鍵,這時的過程與上面所述一樣。斷點設(shè)置完畢,實驗儀進(jìn)入存儲器讀/寫狀態(tài)。斷點清除鍵也是用STBP鍵。如果現(xiàn)行地址(存儲器讀/寫狀態(tài))或送入表示地址的四位數(shù)字(待命狀態(tài))處已經(jīng)設(shè)置過斷點,則按STBP鍵的作用就是清除該處的斷點。與設(shè)置斷點的區(qū)別在于使用STBP清除斷點時,顯示器不顯示斷點個數(shù),實驗儀便進(jìn)入存儲器讀/寫狀態(tài)。用戶可以根據(jù)顯示器的變化來判斷實驗儀進(jìn)行什么操作。如果實驗儀與所設(shè)想的不同,例如,想在某地址設(shè)置斷點,如果該地址已設(shè)置過斷點,按STBP鍵反而將該處斷點清除了,這時顯示器不顯示斷點個數(shù),從而可以判斷這是誤操作,但只需再按一次STBP鍵,即可恢復(fù)該處斷點。這種操作設(shè)計能有效地防止在同一地址設(shè)置一個以上的斷點。
斷點的清除是逐個進(jìn)行的,但也可以按RESET鍵將所有斷點清除掉,實驗儀返回待命狀態(tài)0。
9.查找斷點命令——GTBP鍵
上面已提到斷點的清除是逐個進(jìn)行的,若已經(jīng)忘記曾經(jīng)在何處設(shè)置了斷點,如何把斷點地址找出來呢?使用GTBP鍵查找斷點,可以迅速完成這一工作。
GTBP斷點查找在待命狀態(tài)1和存儲器讀/寫狀態(tài)時有效。在存儲器讀/寫狀態(tài)按GTBP鍵,可使實驗儀從現(xiàn)行地址開始向后查找第一個斷點(不一定是第一次設(shè)置的斷點),查到之后便停下來,顯示該斷點地址及其內(nèi)容,實驗儀仍處于存儲器讀/寫狀態(tài)。這時如認(rèn)為該斷點需清除,便可按STBP鍵。再次按GTBP斷點查找鍵,實驗儀又再從現(xiàn)行地址開始向后查找,找到第二個便再停下來,顯示該地址(斷點)及其內(nèi)容,實驗儀仍處于存儲器讀/寫狀態(tài)。如此反復(fù)進(jìn)行,便可把全部斷點查找出來。
查找斷點所需的時間,隨起始地址和斷點的個數(shù)而定,但最長不會超過15秒,在查找斷點過程中,MON鍵不起作用。斷點的設(shè)置、清除與查找操作過程見表2.6。表2.6STBP、GTBP鍵的使用說明
10.單步執(zhí)行命令——STEP鍵
單步執(zhí)行鍵在待命狀態(tài)0、待命狀態(tài)1和存儲器讀/寫狀態(tài)時有效。在待命狀態(tài)0,按PC指針單步執(zhí)行程序;在待命狀態(tài)1,按顯示器上的地址單步執(zhí)行;在存儲器讀/寫狀態(tài),按現(xiàn)行地址執(zhí)行。
按STEP鍵,實驗儀將依據(jù)上述三種情況,執(zhí)行一條用戶指令,繼而顯示PC、累加器和下一條指令碼的內(nèi)容,進(jìn)入待命狀態(tài)1,等待下一個命令。將下列程序送入程序存儲器(SRAM):持續(xù)按單步鍵0.8秒以上,實驗儀就進(jìn)入跟蹤執(zhí)行狀態(tài),以每分鐘200條指令的速度執(zhí)行用戶程序,同時顯示程序的執(zhí)行地址和累加器及下一條指令的內(nèi)容,或顯示用戶指定單元的內(nèi)容,跟蹤執(zhí)行程序可監(jiān)視程序的運行路線。在松開按鍵時,便停止跟蹤狀態(tài),顯示程序運行終止時的PC及累加器的內(nèi)容,并返回待命狀態(tài)0。按MEM鍵,便進(jìn)入存儲器讀/寫狀態(tài)。按MON鍵,返回到待命狀態(tài)0。單步命令不會影響已設(shè)置的斷點。
11.宏單步執(zhí)行命令——SCAL鍵
宏單步執(zhí)行鍵在待命狀態(tài)0、待命狀態(tài)1和存儲器讀/寫狀態(tài)時有效。在待命狀態(tài)0,按PC指針宏單步執(zhí)行程序;在待命狀態(tài)1,按顯示器上的地址宏單步執(zhí)行;在存儲器讀/寫狀態(tài),按現(xiàn)行地址執(zhí)行。按SCAL鍵,實驗儀將依據(jù)上述三種情況,執(zhí)行一條用戶指令,碰到程序中調(diào)用或長調(diào)用指令,將一次執(zhí)行完被調(diào)用的子程序。繼續(xù)顯示PC和下一條指令的內(nèi)容,進(jìn)入待命狀態(tài)1,等待下一個命令。如果在執(zhí)行宏單步調(diào)用操作中,子程序中含有有條件返回、返回地址被修改、返回地址已彈出等特殊子程序,則不能使用宏單步執(zhí)行指令,否則會造成出錯。持續(xù)按宏單步鍵0.8秒以上,實驗儀就進(jìn)入跟蹤執(zhí)行狀態(tài),以每分鐘200條以上指令的速度執(zhí)行用戶程序,同時顯示程序的執(zhí)行地址和累加器及下一條指令的內(nèi)容,或顯示用戶指定單元的內(nèi)容,因此,持續(xù)按宏單步鍵可監(jiān)視程序的運行路線。在松開按鍵時,便立即停止跟蹤狀態(tài),顯示程序運行終止時的PC和累加器及下一條指令的內(nèi)容,或顯示用戶指定單元的內(nèi)容,并返回待命狀態(tài)1。操作方法見表2.7。表2.7STEP、SCAL鍵的使用說明
12.執(zhí)行程序命令——EXEC鍵
執(zhí)行鍵EXEC在待命狀態(tài)0、待命狀態(tài)1和存儲器讀/寫狀態(tài)時有效。在待命狀態(tài)0顯示一個閃動“P”,按EXEC鍵,實驗儀將按照用戶PC所指的地址,開始執(zhí)行程序;在待命狀態(tài)1(送入數(shù)字后的狀態(tài)),按顯示器上的地址執(zhí)行程序;在存儲器讀/寫狀態(tài),按顯示器上的現(xiàn)行地址執(zhí)行程序;在其他狀態(tài),EXEC鍵無效。用EXEC鍵執(zhí)行用戶程序,在程序中遇到斷點時會停下來,并保護(hù)所有的寄存器,顯示斷點地址和累加器的內(nèi)容或顯示用戶指定單元的內(nèi)容,并返回待命狀態(tài)1。
遇到斷點中止程序的執(zhí)行后,若再次按EXEC鍵,程序會從斷點地址處繼續(xù)往下執(zhí)行。操作方法如表2.8所示。表2.8EXEC鍵的使用說明
13.計算相對轉(zhuǎn)移偏移量命令——OFST鍵
OFST鍵命令的功能是用來計算MCS-51指令系統(tǒng)中相對轉(zhuǎn)移指令的操作數(shù),即偏移量的值。OFST鍵命令只在存儲器讀/寫狀態(tài)有效。
先在需要填入偏移量的單元上填入所要轉(zhuǎn)移的(目標(biāo))地址的低字節(jié),然后按OFST鍵,該單元的內(nèi)容立即轉(zhuǎn)變成所要求的偏移量,也就是自動將偏移量填入。這時實驗儀仍處于存儲器讀/寫狀態(tài),用戶可繼續(xù)往下送入程序。下面舉例說明操作過程:將下列程序送入程序存儲器,操作過程見表2.9。表2.9OFST鍵的使用說明使用OFST命令鍵,進(jìn)行偏移量的計算,應(yīng)注意跳轉(zhuǎn)“出界”的問題。當(dāng)偏移量計算結(jié)果大于7FH,說明是往回跳轉(zhuǎn)的(減址),否則是向前跳轉(zhuǎn)(增址)的。若程序設(shè)計要往前跳轉(zhuǎn),計算結(jié)果大于7FH,則出界了。簡單辦法就是把相對跳轉(zhuǎn)指令改為頁地址轉(zhuǎn)移指令。
14.十進(jìn)制與十六進(jìn)制轉(zhuǎn)換命令——DEC與HEX鍵
1)?DEC命令鍵
DEC命令鍵的功能是將十進(jìn)制數(shù)字(BCD)轉(zhuǎn)換成十六進(jìn)制數(shù)字。
在待命狀態(tài)0時,按DEC鍵,顯示器左邊第一位顯示一個“D”字,表示下面送入的就是待轉(zhuǎn)換的十進(jìn)制數(shù)。這時根據(jù)需要轉(zhuǎn)換的十進(jìn)制數(shù)按相應(yīng)的數(shù)字鍵,先高位后低位。由于顯示器位數(shù)的限制,這里約定最大只能轉(zhuǎn)換99999999,因此送入的十進(jìn)制數(shù)字應(yīng)小于99999999,否則將發(fā)生溢出。每送入1位數(shù)字,原先送入的數(shù)字就自動向左移位,若送入數(shù)字多于7位,則只有后7位有效,其余均自動溢出。送數(shù)完畢,按HEX鍵,便自動完成轉(zhuǎn)換,在顯示器左邊第一位顯示一個“H”字符,表示右邊顯示的數(shù)字就是轉(zhuǎn)換結(jié)果得出的十六進(jìn)制數(shù)。若想知道它對應(yīng)的十進(jìn)制數(shù)(即轉(zhuǎn)換前的數(shù))是多少,只需按一下DEC鍵,就恢復(fù)到按HEX鍵前的狀態(tài),顯示轉(zhuǎn)換前的十進(jìn)制數(shù)。若需要轉(zhuǎn)換另外一個十進(jìn)制數(shù),可將該數(shù)送入,按HEX鍵即可。
在“DEC”狀態(tài)(顯示“D”字時)下,除了數(shù)字鍵0~9以外,只有HEX鍵和MON鍵有效(當(dāng)然RESET鍵在任何狀態(tài)都是有效的),按MON鍵可使實驗儀返回待命狀態(tài)0。
2)?HEX命令鍵
HEX命令鍵的功能是將98967F以下的十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)。
HEX命令鍵的操作方法與十制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)類似。在待命狀態(tài)0時,按HEX鍵,立即在顯示器左邊第一位顯示“H”字符,表示緊跟著是十六進(jìn)制數(shù)。這時由高位開始,依次送入要轉(zhuǎn)換的數(shù)字,送完要轉(zhuǎn)換的數(shù)字后,按DEC鍵,便自動完成轉(zhuǎn)換,在顯示器左邊第一位顯示一個“D”字符,表示右邊顯示的數(shù)字就是轉(zhuǎn)換后得出的十進(jìn)制數(shù)。在“HEX”狀態(tài)(顯示“H”字符)時,除0~F16個數(shù)字外,只有RESET、DEC和MON鍵有效。按MON鍵可使實驗儀返回待命狀態(tài)0。
DEC、HEX鍵的使用情況見表2.10。表2.10DEC、HEX鍵的使用說明
15.時鐘顯示命令——TIME鍵
時鐘顯示命令TIME用來顯示時間,顯示格式為小時—分鐘—秒鐘。電腦時鐘在晶振為12MHz時顯示正確時間,改變晶振將影響時鐘精度。在待命狀態(tài)0,鍵入:00~23小時、00~59分鐘、00~59秒鐘,按下TIME鍵即計時。鍵入非法值(如超過24小時、60分鐘、60秒鐘)時,將返回待命狀態(tài)0,不能計時顯示。
按MON鍵或RESET鍵復(fù)位,將中止時間顯示。
16.加載命令——LOAD鍵
按LOAD鍵顯示器顯示“—
—LOAD—
—”并將裝入實驗的全部程序。
輸入實驗程序的入口地址,再按執(zhí)行鍵(EXEC),便開始執(zhí)行相應(yīng)的程序。實驗一單片機(jī)實驗儀操作實驗二單片機(jī)指令練習(xí)實驗三單片機(jī)程序設(shè)計實驗實驗四單片機(jī)I/O控制實驗實驗五中斷系統(tǒng)實驗實驗六定時器/計數(shù)器實驗實驗七串/并轉(zhuǎn)換實驗實驗八擴(kuò)展存儲器讀寫實驗實驗九簡單的I/O擴(kuò)展實驗實驗十8255輸入輸出實驗實驗十一A/D轉(zhuǎn)換實驗實驗十二D/A轉(zhuǎn)換實驗實驗十三可編程序計數(shù)8253實驗
一、實驗?zāi)康?/p>
熟悉QTH-2008XS單片機(jī)實驗儀的使用方法。
掌握項目、文件的建立方法,寄存器、存儲器內(nèi)容的查看方法,以及程序的執(zhí)行及斷點的設(shè)置方法。
二、實驗設(shè)備
QTH-2008XS單片機(jī)實驗儀一臺,PC機(jī)一臺,QTH-2008XS單片機(jī)開發(fā)環(huán)境。實驗一單片機(jī)實驗儀操作
三、實驗內(nèi)容
(1)閱讀第二章內(nèi)容,學(xué)習(xí)QTH-2008XS單片機(jī)實驗儀的鍵盤和軟件調(diào)試環(huán)境的使用。
(2)按照操作步驟在實驗儀上實際練習(xí)。
(3)在開發(fā)機(jī)上完成規(guī)定程序的調(diào)試。四、程序調(diào)試
1.拆字程序(寫出單元內(nèi)容)續(xù)表
1)程序調(diào)試步驟
(1)將該源程序輸入QTH-2008XS單片機(jī)開發(fā)環(huán)境,保存文件名為**.ASM(文件名后必須加后綴?.ASM)。
(2)對源程序進(jìn)行編譯。編譯程序時注意:系統(tǒng)復(fù)位后PC的值為0000H,即程序從程序存儲器的0000H單元取指令執(zhí)行。因此,可利用ORG0000H進(jìn)行定位。但因為程序存儲器的低端有五個地址被固定地用作中斷服務(wù)程序的入口地址(如0003H為外部中斷0的中斷服務(wù)程序入口地址,000BH為定時器0的中斷服務(wù)程序入口地址,000BH為外部中斷1的中斷程序入口地址,0013H為外部中斷1的中斷服務(wù)程序入口地址,001BH為定時器1的中斷服務(wù)程序入口地址,0023H為串行口的中斷服務(wù)程序入口地址),所以在編程時,通常在這些入口地址開始的單元中,放入一條轉(zhuǎn)移指令,如ORG0000H;AJMPSTART。
(3)根據(jù)提示進(jìn)行糾錯。若編譯程序后程序上出現(xiàn)紅色光標(biāo),則該指令語法有錯??筛鶕?jù)程序編譯后的提示檢查錯誤,例如:指令助記符如果正確,則助記符為藍(lán)色,不正確則為黑色;標(biāo)點符號的正確使用方法是:標(biāo)號后為冒號,注釋前為分號,操作數(shù)中是逗號。在輸入程序時,其中的字母、符號均須在英文方式下進(jìn)行,不能在智能全拼或微軟拼音輸入法中輸入。注釋可以用漢字,在程序最后需以“END”作為結(jié)束符。
(4)當(dāng)編譯程序后出現(xiàn)綠色光標(biāo)時,程序語法正確,可以將源程序裝載入實驗儀。
(5)在運行程序前確定調(diào)試前的參數(shù)設(shè)置。如拆字程序中需設(shè)置外部RAM0100H單元的內(nèi)容,在開發(fā)環(huán)境中點擊項目菜單中的變量表,然后在變量表窗口中單擊右鍵找到增加觀察項,在觀察變量對話框中添加0100H,在觀察窗口中直接修改0100H單元的內(nèi)容,如圖3.1所示,將外部RAM0100H單元設(shè)置為45H。
(6)確定調(diào)試方法。在調(diào)試過程中,若要觀察程序最終結(jié)果或者觀察硬件電路的最終現(xiàn)象,運行程序采用屏蔽斷點全速運行調(diào)試(快捷鍵Ctrl+F5),觀察程序執(zhí)行后A、R0、DPTR、R7的變化情況;若要觀察每條指令的運行結(jié)果或程序運行路徑的變化過程,則采用單步運行(快捷鍵F8)程序,觀察每條指令的執(zhí)行結(jié)果,將結(jié)果填入表格中,同時觀測程序運行的路徑,即PC值的變化與預(yù)先設(shè)置的運行路徑是否一致;若要定點檢查程序運行到某處的結(jié)果,則選擇在程序中間設(shè)置斷點運行程序,觀察每段程序的執(zhí)行結(jié)果與理論值是否相同。
(7)檢驗程序運行結(jié)果是否正確。用理論方法得出的結(jié)果與程序運行的結(jié)果對照是否相同。若不同,則分析出錯的原因并改正錯誤之處,重新運行程序直到結(jié)果正確。圖3.1添加變量表窗口修改變量值
2)調(diào)試程序說明
(1)外部RAM0100H單元內(nèi)容的修改或連續(xù)地址內(nèi)容的修改,可以通過在查看菜單中單擊數(shù)據(jù)存儲器窗口,然后在數(shù)據(jù)存儲器窗口中單擊鼠標(biāo)右鍵,選擇放置相同數(shù)據(jù)修改對應(yīng)連續(xù)地址中的數(shù)據(jù),如圖3.2所示,將外部RAM0100H~0102H單元設(shè)置為FFH。圖3.2設(shè)置外部數(shù)據(jù)存儲器連續(xù)地址內(nèi)容
(2)當(dāng)運行程序觀察A、DPTR、R0的內(nèi)容時,在“查看”菜單中點擊“寄存器窗口”,就可以觀察寄存器內(nèi)容的變化,如圖3.3所示。
3)思考題
(1)外部數(shù)據(jù)存儲器0100H單元的內(nèi)容與0101H、0102H兩個單元中的內(nèi)容有什么關(guān)系?
(2)將數(shù)據(jù)傳送到外部用什么指令?用什么尋址方式?
(3)在主程序的開始時為什么要加跳轉(zhuǎn)指令?LJMP與AJMP指令有什么區(qū)別?圖3.3觀察寄存器內(nèi)容的變化2.利用實驗仿真軟件調(diào)試下列程序
1)程序調(diào)試步驟
(1)將該源程序輸入QTH-2008XS單片機(jī)開發(fā)環(huán)境,保存文件名為?**.ASM。
(2)對源程序進(jìn)行編譯。
(3)根據(jù)提示進(jìn)行糾錯。
(4)將源程序裝載入實驗儀。
(5)確定調(diào)試前的參數(shù)設(shè)置。程序中需要設(shè)置內(nèi)部RAM30H、5AH、40H單元的內(nèi)容,先在“查看”菜單中點擊“寄存器窗口”,然后進(jìn)入窗口中的內(nèi)部RAM區(qū),直接修改地址中的內(nèi)容,如圖3.4所示。P1口的內(nèi)容在寄存器窗口下設(shè)置。圖3.4修改內(nèi)部RAM單元的內(nèi)容
(6)確定調(diào)試方法。用單步運行方法調(diào)試或用中間設(shè)置斷點方法運行程序。
2)思考題
(1)在編譯程序前設(shè)置數(shù)據(jù)與編譯后設(shè)置數(shù)據(jù),運行程序的結(jié)果有什么不同?
(2)寫出存儲單元R0、R1、A、B、P1、40H、30H及5AH單元的內(nèi)容。
(3)如何選擇調(diào)試方法?一、預(yù)習(xí)內(nèi)容
1.?dāng)?shù)據(jù)傳送類指令
MOV目的操作數(shù),源操作數(shù) ;(目的地址)源操作數(shù)
MOVX A,@DPTR ;(A)←((DPTR))
MOVX A,@Ri ;(A)←((Ri))
MOVX @DPTR,A ;((DPTR))←(A)
MOVX @Ri,A ;((Ri))←(A)
MOVC A,@A+DPTR ;(A)←((A)+(DPTR))實驗二單片機(jī)指令練習(xí)MOVCA,@A+PC ;(PC)←(PC)+1,(A)←((A)+(PC))
XCH A,direct ;(A)(direct)
XCH A,@Ri ;(A)((Ri))
XCH A,Rn ;(A)(Rn)
XCHDA,@Ri ;(A3~0)((Ri)3~0)
SWAPA ;(A7~4)(A3~0)
2.算術(shù)運算類指令
指令助記符:ADD(加法),ADDC(帶進(jìn)位加法),SUBB(帶借位減法),MUL(乘法),DIV(除法),INC(加1),DEC(減1),DA(十進(jìn)制調(diào)整)。
3.程序轉(zhuǎn)移類指令
無條件轉(zhuǎn)移指令:LJMPaddr16(長轉(zhuǎn)移),AJMPaddr11(短轉(zhuǎn)移),SJMPrel(相對轉(zhuǎn)移),JMP@A+DPTR(間接轉(zhuǎn)移)。條件轉(zhuǎn)移指令:
JZrel ;若(A)=0,則轉(zhuǎn)移;若(A)≠0,則順序執(zhí)行
JNZrel ;若(A)≠0,則轉(zhuǎn)移;若(A)=0,則順序執(zhí)行
CJNE目的操作數(shù),源操作數(shù),rel
;若兩數(shù)相等,則順序執(zhí)行;若兩數(shù)不等,則
轉(zhuǎn)移DJNZdirect,rel ;(direct)←(direct)?-1,若(direct)=0,則
順序執(zhí)行;若(direct)≠0,則轉(zhuǎn)移
DJNZRn,rel ;(Rn)←(Rn)?-1,若(Rn)=0,則順序執(zhí)
行;若(Rn)≠0,則轉(zhuǎn)移
子程序調(diào)用及返回指令:LCALLaddr16(長調(diào)用),ACALLaddr11(短調(diào)用),RET(子程序返回),RETI(中斷程序返回)。4.位操作類指令
JCrel ;若(CY)=1,轉(zhuǎn)移;若(CY)=0,則順序執(zhí)行
JNCrel ;若(CY)=0,轉(zhuǎn)移;若(CY)=1,則順序執(zhí)行
JBbit,rel ;若(bit)=1,轉(zhuǎn)移;若(bit)=0,則順序執(zhí)行
JNBbit,rel ;若(bit)=0,1轉(zhuǎn)移;若(bit)=1,則順序執(zhí)行
JBCbit,rel ;若(bit)=1,則(bit)←0后轉(zhuǎn)移;否(bit)=0,則
順序執(zhí)行二、實驗練習(xí)
1.實驗?zāi)康?/p>
掌握項目、文件的建立方法,寄存器、存儲器內(nèi)容的查看方法,以及程序的單步執(zhí)行及斷點運行程序方法。
熟悉程序轉(zhuǎn)移類指令、算術(shù)運算類指令的功能。
2.實驗設(shè)備
QTH-2008XS單片機(jī)實驗儀一臺,PC機(jī)一臺,QTH-2008XS單片機(jī)開發(fā)環(huán)境。
3.實驗內(nèi)容
(1)按照操作步驟在實驗儀上實際練習(xí)。
(2)在開發(fā)機(jī)上完成規(guī)定程序的調(diào)試。
(3)回答思考題。
4.程序調(diào)試
數(shù)據(jù)傳送程序(寫出各單元內(nèi)容)
1)程序調(diào)試步驟
(1)將該源程序輸入QTH-2008XS單片機(jī)開發(fā)環(huán)境,保存文件名為**.ASM。
(2)對源程序進(jìn)行編譯。
(3)根據(jù)提示進(jìn)行糾錯。
(4)將源程序裝載入實驗儀。
(5)確定調(diào)試前的參數(shù)設(shè)置。根據(jù)程序要求,首先要修改內(nèi)部RAM單元的內(nèi)容,在開發(fā)環(huán)境中設(shè)置40H~4FH單元的初始值,并修改為00H~FFH范圍內(nèi)的內(nèi)容。例如:(40H)=01H,(41H)=02H,依次類推。
(6)確定調(diào)試方法。用單步運行方法調(diào)試,觀察每條指令的執(zhí)行結(jié)果,觀察程序執(zhí)行后A、R0、DPTR、R7的變化情況。如果循環(huán)程序次數(shù)多,則采用設(shè)置斷點的方法快速得到最終結(jié)果。
(7)調(diào)試程序,填寫表中的結(jié)果(每次循環(huán)結(jié)果),觀察程序PC值的變化情況和循環(huán)的次數(shù)。
2)調(diào)試程序說明
(1)讀懂程序后,觀察程序運行的結(jié)果是否正確。在實際的調(diào)試中,由于各種原因,程序運行中可能存在錯誤,因此必須根據(jù)執(zhí)行的結(jié)果快速、有效地找到產(chǎn)生故障的原因并排除所有錯誤,直到調(diào)試出正確的結(jié)果為止。例如,數(shù)據(jù)傳送程序采用單步運行(F8)程序,邊運行邊觀察程序中單元地址(內(nèi)部或外部)、工作寄存器、特殊功能寄存器中內(nèi)容的變化,若運行到MOVX@DPTR,A指令,則1000H單元的內(nèi)容應(yīng)該是01H,但如果結(jié)果錯誤,這時應(yīng)該停止運行程序,查看這條指令前面的設(shè)置或指令是否正確。
(2)程序中有循環(huán)結(jié)構(gòu),如果想快速觀測程序的最終結(jié)果,可先將光標(biāo)或斷點設(shè)置在循環(huán)程序的第一條指令和最后一條指令處,然后運用連續(xù)運行(F5)命令或執(zhí)行到光標(biāo)處(F7)命令執(zhí)行程序,光標(biāo)或斷點設(shè)置一次程序只能運行一次,如果反復(fù)設(shè)置光標(biāo)或斷點,就可以得到每次循環(huán)后單元的結(jié)果。例如,數(shù)據(jù)傳送程序斷點設(shè)置在“IF:MOVA,@R0”指令和“DJNZR6,LOOP”指令。為提高調(diào)試速度,也可以將斷點設(shè)置在循環(huán)程序的最后一條指令處,用F7快速將程序運行到光標(biāo)處,就可以直接得到循環(huán)程序的最終結(jié)果。例如,將上面程序光標(biāo)設(shè)置在RET指令上。如果在點擊運行處出現(xiàn)程序不執(zhí)行,有可能出現(xiàn)死循環(huán)等錯誤,此時,應(yīng)考慮用單步運行的方法檢查程序運行的路徑是否正確。為縮短調(diào)試時間,可在調(diào)試循環(huán)程序前,將循環(huán)初始值中的循環(huán)次數(shù)改小些,例如,數(shù)據(jù)傳送程序中MOVR7,#10H改為MOVR7,#05H,然后通過觀察運行路徑和運行的結(jié)果,找出循環(huán)程序內(nèi)部出現(xiàn)的故障并加以修改。
3)思考題
(1)指出程序中的循環(huán)部分,觀察循環(huán)執(zhí)行的次數(shù)。
(2)如何修改循環(huán)次數(shù)和傳送的數(shù)據(jù)?
(3)觀察外部RAM中1000H~1010H的內(nèi)容。
多字節(jié)加法程序(寫出各單元內(nèi)容)續(xù)表
1)程序調(diào)試步驟
(1)將該源程序輸入QTH-2008XS單片機(jī)開發(fā)環(huán)境,保存文件名為DZJF.ASM。
(2)對源程序進(jìn)行編譯。
(3)根據(jù)提示進(jìn)行糾錯。
(4)將源程序裝載入實驗儀。
(5)確定調(diào)試前的參數(shù)設(shè)置。根據(jù)程序要求,首先要修改內(nèi)部RAM單元的內(nèi)容,在開發(fā)環(huán)境中設(shè)置內(nèi)部RAM30H、31H、32H、40H、41H、42H單元的內(nèi)容初始值,并修改為00H~FFH范圍內(nèi)的內(nèi)容。例如:(30H)=4EH,(31H)=9AH,(32H)=79H,依次類推。
(6)確定調(diào)試方法。采用單步運行程序或跳出子程序(Shift+F11)命令運行程序。
(7)觀察執(zhí)行的結(jié)果并填入表中。
2)調(diào)試程序說明
(1)多字節(jié)加法程序中有子程序調(diào)用,在運用單步運行(F8)命令調(diào)用子程序指令時,應(yīng)觀察程序是否能運行到該調(diào)用指令的下一條指令處,若能,則說明子程序調(diào)用的運行過程是正確的;再檢查子程序的出口內(nèi)容是否正確,若兩者都正確,則繼續(xù)調(diào)試程序直到程序結(jié)束。若執(zhí)行了調(diào)用子程序后,程序不能返回到該調(diào)用指令的下一條指令處,則查看子程序返回指令是否正確。為了提高調(diào)試速度,可以用跳出子程序(Shift+F11)命令運行程序,使程序運行時跳過子程序只運行主程序,然后查看運行的結(jié)果。
(2)運行程序時應(yīng)先讀懂程序,然后觀察程序運行的結(jié)果是否正確。先用單步運行(F8)程序,觀察30H單元的內(nèi)容。30H單元中存放的是30H和40H單元設(shè)定值相加的結(jié)果,先自己手動計算結(jié)果,然后和觀察的結(jié)果進(jìn)行比較。如果不相同,則查找程序內(nèi)部出現(xiàn)的故障并加以修改;如果相同,則繼續(xù)調(diào)試程序,邊運行邊觀察程序中單元地址、工作寄存器、特殊功能寄存器中內(nèi)容的變化。
3)思考題
(1)修改程序?qū)崿F(xiàn)49E9H+98FCH,寫出程序及執(zhí)行結(jié)果。
(2)堆棧指針SP的初始值是什么?在什么情況下需要用指令重新設(shè)置該指針內(nèi)容?
(3)多字節(jié)加法程序中調(diào)用子程序時SP堆棧指針如何變化?
(4)程序狀態(tài)寄存器PSW的作用是什么?常用哪些狀態(tài)位?作用是什么?
比較數(shù)據(jù)大小程序(寫出單元內(nèi)容)
1)程序調(diào)試步驟
(1)將該源程序輸入QTH-2008XS單片機(jī)開發(fā)環(huán)境,保存文件名為DZJF.ASM。
(2)對源程序進(jìn)行編譯。
(3)根據(jù)提示進(jìn)行糾錯。
(4)將源程序裝載入實驗儀。
(5)確定調(diào)試前的參數(shù)設(shè)置。根據(jù)程序要求,首先要修改內(nèi)部RAM單元的內(nèi)容,在開發(fā)環(huán)境中設(shè)置內(nèi)部RAM48H單元的內(nèi)容初始值,并修改為00H~FFH范圍內(nèi)的內(nèi)容,至少設(shè)置三次,分別為大于7FH的值、小于7FH的值和等于7FH的值。
(6)確定調(diào)試方法。調(diào)試方法采用單步運行(F8)程序,觀察程序中控制轉(zhuǎn)移指令的執(zhí)行情況,如果要縮短調(diào)試時間,則可以用設(shè)置斷點運行(F7)程序。斷點設(shè)置在NEXT2:SJMP$指令上。
(7)查看程序結(jié)果,填寫程序運行后單元的內(nèi)容。
2)思考題
(1)指出程序運行中的跳轉(zhuǎn)位置,并說明每次跳轉(zhuǎn)的條件。
(2)調(diào)試程序的方法有幾種?各有什么優(yōu)點?
一、預(yù)習(xí)內(nèi)容
1.偽指令
在匯編源程序的過程中,有一些指令不要求計算機(jī)進(jìn)行任何操作,也沒有對應(yīng)的機(jī)器碼,不產(chǎn)生目標(biāo)程序,不影響程序的執(zhí)行,僅僅是能夠幫助匯編進(jìn)行的一些指令,這些指令稱之為偽指令。實驗三單片機(jī)程序設(shè)計實驗
(1)設(shè)置目標(biāo)程序起始地址偽指令ORG。
格式:[標(biāo)號:]ORG16位地址
該偽指令的功能是規(guī)定其后面目標(biāo)程序的起始地址。它放在一段源程序(主程序、子程序)或數(shù)據(jù)塊的前面。
(2)結(jié)束匯編偽指令END。
格式:[標(biāo)號:]END
該偽指令是匯編語言源程序的結(jié)束標(biāo)志,表示程序結(jié)束。
(3)定義字節(jié)偽指令DB。
格式:[標(biāo)號:]DB項或項表
該偽指令的功能是把項或項表的數(shù)值(字符則用ASCII碼)存入從標(biāo)號開始的連續(xù)存儲單元中。
(4)定義字偽指令DW。
格式:[標(biāo)號:]DW項或項表
該偽指令與DB的功能類似,所不同的是DB用于定義一個字節(jié)(8位二進(jìn)制數(shù)),而DW則用于定義一個字(即兩個字節(jié),16位二進(jìn)制數(shù))。
(5)等值偽指令EQU。
格式:[標(biāo)號:]EQU項
該偽指令的功能是將指令中項的值賦予本語句的標(biāo)號。項可以是常數(shù)、地址標(biāo)號或表達(dá)式。
(6)位地址賦值偽指令BIT。
格式:[標(biāo)號:]BIT位地址
該偽指令的功能是將位地址賦予特定位的標(biāo)號,經(jīng)賦值后就可用指令中BIT左面的標(biāo)號來代替BIT右邊所指出的位。
2.程序的結(jié)構(gòu)
程序的結(jié)構(gòu)可以分解為:順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、子程序結(jié)構(gòu)。
實現(xiàn)分支結(jié)構(gòu)的指令有:JZREL;JNZREL;JCREL;JNCREL;JBBIT,REL;JNBBIT,REL;JBCBIT,REL;CJNZ比較數(shù)據(jù)1,比較數(shù)據(jù)2,REL。
實現(xiàn)循環(huán)結(jié)構(gòu)的指令有:DJNZdirect,rel;DJNZRn,rel。
子程序調(diào)用和返回的指令有:LCALLaddr16;ACALLaddr11
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 榆林市清澗縣2025年數(shù)學(xué)五年級第二學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測試題含答案
- 三亞學(xué)院《景觀設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西航空職業(yè)技術(shù)學(xué)院《社會調(diào)查理論與研究方法》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧商貿(mào)職業(yè)學(xué)院《傳播學(xué)理論》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年福建省泉州市永春第二中學(xué)初三下學(xué)期第二次質(zhì)檢生物試題含解析
- 重慶商務(wù)職業(yè)學(xué)院《廣告設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年河北省衡水市景縣重點名校中考生物試題考前三個月(江蘇專版)含解析
- 2025合同與協(xié)議的英語表達(dá)
- 江西外語外貿(mào)職業(yè)學(xué)院《虛擬化技術(shù)應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年安陽經(jīng)濟(jì)開發(fā)集團(tuán)有限公司下屬子公司招聘工作人員筆試人員筆試參考題庫附帶答案詳解
- 托管班送餐合同(2篇)
- 中國超級計算行業(yè)市場運行態(tài)勢及發(fā)展趨向研判報告
- 四年級下冊數(shù)學(xué)方程題100道及答案
- 小學(xué)數(shù)學(xué)小專題講座《數(shù)學(xué)教學(xué)生活化-》
- 2024至2030年中國精量播種機(jī)行業(yè)投資前景及策略咨詢研究報告
- 結(jié)構(gòu)力學(xué):靜定梁
- 醫(yī)務(wù)科醫(yī)療質(zhì)量管理工作計劃
- 四年級英語教學(xué)計劃及質(zhì)量提升方案
- 新視野大學(xué)英語(第四版)讀寫教程3(思政智慧版)課件 B3U5 Chinas space dream Section A
- 2023-2024學(xué)年廣東省深圳市寶安區(qū)富源學(xué)校七年級(下)期中數(shù)學(xué)試卷(含答案)
- 瓶瓶罐罐做花瓶課件
評論
0/150
提交評論