




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 第三章 80C51系列微控制器的指令系統(tǒng)及程序設(shè)計1簡述80C51系列MCU的尋址方式及所涉及的尋址空間。80C51系列MCU指令系統(tǒng)的尋址方式共有7種。(1)立即尋址:在指令中直接給出操作數(shù)。尋址空間為數(shù)據(jù)存儲器區(qū)。(2)直接尋址:在指令中直接給出操作數(shù)單元的地址。尋址空間為內(nèi)部RAM低128B,特殊功能寄存器。(3)寄存器尋址:在指令中指定寄存器的內(nèi)容作為操作數(shù)。尋址空間為工作寄存器R0R7、寄存器對AB、數(shù)據(jù)指針DPTR、進(jìn)位位CY。(4)寄存器間接尋址:在指令中要到寄存器的內(nèi)容所指定的地址去取操作數(shù)。尋址空間為全部RAM。(5)相對尋址:在指令中給出的操作數(shù)為程序轉(zhuǎn)移的偏移量。尋址空
2、間為程序存儲器區(qū)。(6)變址尋址:以DPTR及PC作為基址寄存器,累加器A作為變址寄存器,以兩者內(nèi)容相加形成的16位程序存儲器地址作為操作數(shù)地址。尋址空間為程序存儲器區(qū)。(7)位尋址:對數(shù)據(jù)位的操作。尋址空間為內(nèi)部RAM中的位尋址區(qū)和可位尋址的SFR位。2變址尋址方式有什么優(yōu)點?主要用于什么場合? 優(yōu)點:可以方便地訪問全部程序存儲器區(qū)。用途:查表和多分支轉(zhuǎn)移(散轉(zhuǎn))。3訪問SFR和片外RAM應(yīng)采用哪種尋址方式? 訪問SFR應(yīng)采用直接尋址、位尋址(部分寄存器,A、AB、DPTR可寄存器尋址);訪問片外RAM應(yīng)采用寄存器間接尋址。4.對80C51系列MCU片內(nèi)數(shù)據(jù)區(qū)地址80H0FFH的空間尋址時應(yīng)
3、注意些什么? 注意:只有80C52(例如89C52)中有這部分地址空間;在這部分空間,只能采用間接尋址。580C51系列MCU的指令系統(tǒng)具有哪些主要特點? 80C51的指令系統(tǒng)由111條指令組成。如果按字節(jié)數(shù)分類,有49條單字節(jié)指令、46條雙字節(jié)指令和16條三字節(jié)指令,以單字節(jié)指令為主;如果按指令執(zhí)行時間分類,有64條單周期指令、45條雙周期指令和2條(乘、除)四周期指令,以單周期指令為主。 由此看來,80C51的指令系統(tǒng)具有存儲效率高、執(zhí)行速度快的特點。除此而外,指令系統(tǒng)還有如下特點: 可以進(jìn)行直接地址到直接地址的數(shù)據(jù)傳送,能把一個并行I/O口中的內(nèi)容傳送到內(nèi)部RAM單元中而不必經(jīng)過累加器A
4、或工作寄存器Rn。這樣可以大大提高傳送速度和緩解累加器A的瓶頸效應(yīng)。 580C51系列MCU的指令系統(tǒng)具有哪些主要特點? 用變址尋址方式訪問程序存儲器中的表格,將程序存儲器單元中的固定常數(shù)或表格字節(jié)內(nèi)容傳送到累加器A中。這為編程翻譯算法提供了方便。 在算術(shù)運算指令中設(shè)有乘法(MUL)和除法(DIV)指令。 指令系統(tǒng)中,一些對I/O口進(jìn)行操作的指令具有讀一修改一寫的功能。讀一修改一寫指令是指:在執(zhí)行讀鎖存器的指令時,CPU首先完成將鎖存器的值通過緩沖器BUF2讀 人內(nèi)部,進(jìn)行修改、改變,然后重新寫到鎖存器中去。這一特點是由I/O口的準(zhǔn)雙向特性所決定的。這種類型的指令包含所有的口的邏輯操作(ANL
5、、ORL、XRL)和位操作(JBC、CPL、 MOV、SETB、CLR等)指令。 80C51單片機內(nèi)部有一個布爾(位)處理器,對位地址空間具有豐富的位操作指令。布 爾(位)操作類指令共有17條,其中包括布爾傳送指令、布爾狀態(tài)控制指令、布爾(位)邏輯操作指令及布爾(位)條件轉(zhuǎn)移指令。680C51系列MCU有哪些邏輯運算功能?各有什么用處? (1)邏輯運算功能 單操作數(shù)邏輯運算指令,其操作對象都是累加器A,包括:清0、取反、循環(huán)左移、帶進(jìn)位循環(huán)左移、循環(huán)右移、帶進(jìn)位循環(huán)右移和半字節(jié)互換指令。 雙操作數(shù)邏輯運算指令,包括:邏輯與(ANL)、邏輯或(ORL)及邏輯異或(XOR)三類操作。 布爾(位)邏
6、輯操作指令,包括:位邏輯與(ANL)及位邏輯或(ORL)兩類操作。 680C51系列MCU有哪些邏輯運算功能?各有什么用處? ( 2 ) 邏輯運算的用處 若是對口的操作,即為讀一改一寫。 邏輯與運算指令用做清除。 邏輯或運算指令用做置位。 邏輯異或運算指令用做取反。 用RLC A指令將累加器A的內(nèi)容作乘2運算。 用RRC A指令將累加器A的內(nèi)容作除2運算。780C51系列MCU的轉(zhuǎn)移類指令有何獨特優(yōu)點?無條件轉(zhuǎn)移指令有哪幾種?如何選用?1. 條件轉(zhuǎn)移指令 在條件轉(zhuǎn)移指令中兩類指令有獨特的優(yōu)點。(1)比較轉(zhuǎn)移(CJNE)指令CJNE A,direct,rel A內(nèi)容與直接尋址單元內(nèi)容比較,并轉(zhuǎn)移
7、。 CJNE A,#data,rel A內(nèi)容與立即數(shù)比較,并轉(zhuǎn)移。CJNE Rn,#data,rel 寄存器內(nèi)容與立即數(shù)比較,并轉(zhuǎn)移。CJNE Ri,#data,rel 間址單元內(nèi)容與立即數(shù)比較,并轉(zhuǎn)移。這4條指令能對所有單元內(nèi)容進(jìn)行比較,當(dāng)不相等時程序作相對轉(zhuǎn)移,并指出其大小,以備作第二次判斷。780C51系列MCU的轉(zhuǎn)移類指令有何獨特優(yōu)點?無條件轉(zhuǎn)移指令有哪幾種?如何選用?其功能可從程序轉(zhuǎn)移和數(shù)值比較兩個方面說明。 程序轉(zhuǎn)移:若目的操作數(shù)=源操作數(shù),則 程序順利執(zhí)行 PC(PC)+3 進(jìn)位位清0 CY0 若目的操作數(shù)源操作數(shù),則 程序轉(zhuǎn)移 PC(PC)+3+rel 進(jìn)位位清0 CY0 若目
8、的操作數(shù)源操作數(shù),則程序轉(zhuǎn)移 PC(PC)+3+rel 進(jìn)位位清0 CYl 780C51系列MCU的轉(zhuǎn)移類指令有何獨特優(yōu)點?無條件轉(zhuǎn)移指令有哪幾種?如何選用?數(shù)值比較:在80C51的指令系統(tǒng)中沒有比較指令,兩個數(shù)值的比較可利用這4條指令來實現(xiàn),即可按指令執(zhí)行后,根據(jù)CY的狀態(tài)來判斷數(shù)值的大小。若(CY)=0,則目的操作數(shù)源操作數(shù); 若(CY)=1,則目的操作數(shù)源操作數(shù)。 (2)循環(huán)轉(zhuǎn)移(DJNZ)指令 80C51設(shè)有功能極強的循環(huán)轉(zhuǎn)移指令: DJNZ Rn,rel 以工作寄存器作控制計數(shù)器。DJNZ direct,rel 以直接尋址單元作控制計數(shù)器。 這2條基本指令可派生出很多條不同控制計數(shù)器
9、的循環(huán)轉(zhuǎn)移指令,大大擴(kuò)充了應(yīng)用范圍 和多重循環(huán)層次。 780C51系列MCU的轉(zhuǎn)移類指令有何獨特優(yōu)點?無條件轉(zhuǎn)移指令有哪幾種?如何選用?2. 無條件轉(zhuǎn)移指令無條件轉(zhuǎn)移指令的功能是程序無條件地轉(zhuǎn)移到各自指定的目標(biāo)地址去執(zhí)行,不同的指令 形成的目標(biāo)地址不同。共有4條: (1)相對轉(zhuǎn)移(SJMP)指令SJMP rel 指令的目標(biāo)地址是由PC(程序計數(shù)器)和指令的第二字節(jié)帶符號的相對地址相加而成的。 指令可轉(zhuǎn)向指令前128B或指令后127B。(2)短轉(zhuǎn)移(AJMP)指令 AJMP addr11 指令提供11位地址,目標(biāo)地址由指令第一字節(jié)的高三位a10a8和指令第二字節(jié)的a7a0所組成。因此,程序的目標(biāo)
10、地址必須包含AJMP指令后第一條指令的第一個字節(jié)在內(nèi)的2KB范圍內(nèi)。780C51系列MCU的轉(zhuǎn)移類指令有何獨特優(yōu)點?無條件轉(zhuǎn)移指令有哪幾種?如何選用? (3)長轉(zhuǎn)移(LJMP)指令 LJMP addrl6 指令提供16位地址,目標(biāo)地址由指令第二字節(jié)和第三字節(jié)組成。因此,程序轉(zhuǎn)向的目標(biāo)地址可以包含程序存儲器的整個64KB空間。 (4)間接轉(zhuǎn)移(JMP)指令 JMP A+DPTR 指令的目標(biāo)地址是將累加器A中的8位無符號數(shù)與數(shù)據(jù)指針DPTR的內(nèi)容相加而得。 相加運算不影響累加器A和數(shù)據(jù)指針DPTR的原內(nèi)容。若相加的結(jié)果大于64KB,則從程序存儲器的零地址往下延續(xù)。880C51系列MCU的短調(diào)用和長
11、調(diào)用指令本質(zhì)上有何區(qū)別?如何選用? 這兩條指令都是在主程序中調(diào)用子程序,兩者的區(qū)別:對短調(diào)用指令,被調(diào)用子程序入口地址必須與調(diào)用指令的下一條指令的第一字節(jié)在相同的2KB存儲區(qū)之內(nèi)。入口地址與指令在2K內(nèi)可選用ACALL或LCALL,超出2K范圍只能選用LCALL。980C51系列MCU的片內(nèi)RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。分析下面各條指令,說明源操作數(shù)的尋址方式,給出按順序執(zhí)行各條指令后的結(jié)果。10已知(A)=7AH,(R0)=30H,(30H)=0A5H,(PSW)=80H,請?zhí)顚懴铝懈鳁l指令的執(zhí)行結(jié)果:11試分析以下程序段的執(zhí)行
12、結(jié)果。 執(zhí)行結(jié)果:A、B內(nèi)容交換,即:(A)=30H,(B)=20H12已知(A)=81H,(R0)=17H,(17H)=35H,指出執(zhí)行完下列程序段后A的內(nèi)容。 ANL A, #17H ORL 17H, A XRL A, R0 CPL A 執(zhí)行結(jié)果:(A)=0CBH13設(shè)R0的內(nèi)容為32H,A的內(nèi)容為48H,內(nèi)部RAM的32H單元內(nèi)容為80H,40H單元內(nèi)容為08H,指出在執(zhí)行下列程序段后上述各單元內(nèi)容的變化。14將片外RAM區(qū)100CH單元中的內(nèi)容傳送到120CH單元中,請編程實現(xiàn)。 MOV DPTR, #100CH MOVXA, DPTR MOV DPTR, #120CH MOVXDPT
13、R, A15將片外RAM區(qū)40H單元中內(nèi)容和41H單元中內(nèi)容相乘,并將結(jié)果存放在片外RAM區(qū)42H和43H單元中,高位存放在高地址中,請編程實現(xiàn)。16將片外RAM區(qū)40H60H區(qū)域的數(shù)據(jù)塊,全部搬移到片內(nèi)RAM區(qū)的相同地址區(qū)域,并將原數(shù)據(jù)區(qū)全部填00H,請編程實現(xiàn)。17計算片內(nèi)RAM區(qū)50H57H區(qū)域的數(shù)據(jù)的算術(shù)平均值,結(jié)果存放在58H中,請編程實現(xiàn)。18已知16位二進(jìn)制數(shù)放在片內(nèi)RAM區(qū)20H和21H單元,高位存放在高地址中,請編寫將其右移一位的程序。19請用位操作指令,求下列邏輯方程:20已知16位二進(jìn)制數(shù)放在R7R6中,請編寫對它們進(jìn)行求補操作的程序,結(jié)果存放在R1R0中。 MOV A,
14、R0 CPL A ADD A,#01H MOV R2,A MOV A,R1 CPL A ADDC A,#00H MOV R3,A END21在起始地址為1200H,長度為64的數(shù)據(jù)表中找出ASCII碼“F”,將其送到1000H單元中,請編程實現(xiàn)。22試編寫一段程序,把0500H0506H單元中的壓縮BCD碼轉(zhuǎn)換成ASCII碼,存放在0500H為首地址的存儲單元中。23請編寫一個延時2ms的子程序。24利用查表技術(shù)將累加器中的一位BCD碼轉(zhuǎn)換為相應(yīng)的十進(jìn)制數(shù)的七段碼,結(jié)果仍放在A中(設(shè)顯示數(shù)字09的七段碼分別是:40H,79H,24H,30H,19H,12H,02H,78H,00H,1BH)。25為什么SJMP指令的rel=0FEH時,將實現(xiàn)單指令的無限循環(huán)? 答:指令SJMP 0FEH 的作用相當(dāng)于HERE:SJMP HERE(機器碼80FE) 此時程序?qū)⒃谠剡M(jìn)行無限循環(huán)。(答案1) 因為rel為帶符號的8位二進(jìn)制補碼數(shù),所以 目的地址=轉(zhuǎn)移指令所在地址+轉(zhuǎn)移指令字節(jié)數(shù)+rel =轉(zhuǎn)移指令所在地址+02H+0FEH =轉(zhuǎn)移指令所在地址(答案2)人有了知識,就會具備各種分析能力,人有了知識,就會具備各種分析能力,明辨是非的能力。明辨是非的能力。所以我們要勤懇讀書,廣泛閱讀,所以我們要勤懇讀書,廣泛閱讀,古人說古人說“書中自有黃金屋
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑工程項目委托管理合同
- 工作流程標(biāo)準(zhǔn)化操作指南說明
- 中介業(yè)務(wù)合作協(xié)議合同
- 夫妻離婚協(xié)議書年
- 醫(yī)院治療流程規(guī)范
- 混凝土運輸承包合同
- 2025年武漢貨運資格證考試答題20題
- 三農(nóng)品牌塑造與推廣策略手冊
- 2025年哈爾濱貨運從業(yè)資格證模擬考試
- 2025年自貢貨運從業(yè)資格證考試模擬考試題庫下載
- 電焊工培訓(xùn)課件
- 考研考博-英語-天津職業(yè)技術(shù)師范大學(xué)考試押題三合一+答案詳解4
- 原型范疇理論(精選)課件
- 網(wǎng)絡(luò)賬號信息登記表
- 鋼樓梯計算(自動版)
- 部編版八年級歷史(下)全冊教案
- 水土保持各種分級標(biāo)準(zhǔn)表與指標(biāo)
- (完整版)學(xué)生課堂學(xué)習(xí)自我評價表
- Unit 1 How tall are you B Read and write(課堂PPT)
- 最新部編版九年級語文下冊 12《詞四首》課后習(xí)題參考答案
- 部編版四年級語文下冊27《巨人的花園》PPT課件(共2課時)
評論
0/150
提交評論