第三章課后題_第1頁(yè)
第三章課后題_第2頁(yè)
第三章課后題_第3頁(yè)
第三章課后題_第4頁(yè)
第三章課后題_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 第三章 80C51系列微控制器的指令系統(tǒng)及程序設(shè)計(jì)1簡(jiǎn)述80C51系列MCU的尋址方式及所涉及的尋址空間。80C51系列MCU指令系統(tǒng)的尋址方式共有7種。(1)立即尋址:在指令中直接給出操作數(shù)。尋址空間為數(shù)據(jù)存儲(chǔ)器區(qū)。(2)直接尋址:在指令中直接給出操作數(shù)單元的地址。尋址空間為內(nèi)部RAM低128B,特殊功能寄存器。(3)寄存器尋址:在指令中指定寄存器的內(nèi)容作為操作數(shù)。尋址空間為工作寄存器R0R7、寄存器對(duì)AB、數(shù)據(jù)指針DPTR、進(jìn)位位CY。(4)寄存器間接尋址:在指令中要到寄存器的內(nèi)容所指定的地址去取操作數(shù)。尋址空間為全部RAM。(5)相對(duì)尋址:在指令中給出的操作數(shù)為程序轉(zhuǎn)移的偏移量。尋址空

2、間為程序存儲(chǔ)器區(qū)。(6)變址尋址:以DPTR及PC作為基址寄存器,累加器A作為變址寄存器,以兩者內(nèi)容相加形成的16位程序存儲(chǔ)器地址作為操作數(shù)地址。尋址空間為程序存儲(chǔ)器區(qū)。(7)位尋址:對(duì)數(shù)據(jù)位的操作。尋址空間為內(nèi)部RAM中的位尋址區(qū)和可位尋址的SFR位。2變址尋址方式有什么優(yōu)點(diǎn)?主要用于什么場(chǎng)合? 優(yōu)點(diǎn):可以方便地訪問(wèn)全部程序存儲(chǔ)器區(qū)。用途:查表和多分支轉(zhuǎn)移(散轉(zhuǎn))。3訪問(wèn)SFR和片外RAM應(yīng)采用哪種尋址方式? 訪問(wèn)SFR應(yīng)采用直接尋址、位尋址(部分寄存器,A、AB、DPTR可寄存器尋址);訪問(wèn)片外RAM應(yīng)采用寄存器間接尋址。4.對(duì)80C51系列MCU片內(nèi)數(shù)據(jù)區(qū)地址80H0FFH的空間尋址時(shí)應(yīng)

3、注意些什么? 注意:只有80C52(例如89C52)中有這部分地址空間;在這部分空間,只能采用間接尋址。580C51系列MCU的指令系統(tǒng)具有哪些主要特點(diǎn)? 80C51的指令系統(tǒng)由111條指令組成。如果按字節(jié)數(shù)分類(lèi),有49條單字節(jié)指令、46條雙字節(jié)指令和16條三字節(jié)指令,以單字節(jié)指令為主;如果按指令執(zhí)行時(shí)間分類(lèi),有64條單周期指令、45條雙周期指令和2條(乘、除)四周期指令,以單周期指令為主。 由此看來(lái),80C51的指令系統(tǒng)具有存儲(chǔ)效率高、執(zhí)行速度快的特點(diǎn)。除此而外,指令系統(tǒng)還有如下特點(diǎn): 可以進(jìn)行直接地址到直接地址的數(shù)據(jù)傳送,能把一個(gè)并行I/O口中的內(nèi)容傳送到內(nèi)部RAM單元中而不必經(jīng)過(guò)累加器A

4、或工作寄存器Rn。這樣可以大大提高傳送速度和緩解累加器A的瓶頸效應(yīng)。 580C51系列MCU的指令系統(tǒng)具有哪些主要特點(diǎn)? 用變址尋址方式訪問(wèn)程序存儲(chǔ)器中的表格,將程序存儲(chǔ)器單元中的固定常數(shù)或表格字節(jié)內(nèi)容傳送到累加器A中。這為編程翻譯算法提供了方便。 在算術(shù)運(yùn)算指令中設(shè)有乘法(MUL)和除法(DIV)指令。 指令系統(tǒng)中,一些對(duì)I/O口進(jìn)行操作的指令具有讀一修改一寫(xiě)的功能。讀一修改一寫(xiě)指令是指:在執(zhí)行讀鎖存器的指令時(shí),CPU首先完成將鎖存器的值通過(guò)緩沖器BUF2讀 人內(nèi)部,進(jìn)行修改、改變,然后重新寫(xiě)到鎖存器中去。這一特點(diǎn)是由I/O口的準(zhǔn)雙向特性所決定的。這種類(lèi)型的指令包含所有的口的邏輯操作(ANL

5、、ORL、XRL)和位操作(JBC、CPL、 MOV、SETB、CLR等)指令。 80C51單片機(jī)內(nèi)部有一個(gè)布爾(位)處理器,對(duì)位地址空間具有豐富的位操作指令。布 爾(位)操作類(lèi)指令共有17條,其中包括布爾傳送指令、布爾狀態(tài)控制指令、布爾(位)邏輯操作指令及布爾(位)條件轉(zhuǎn)移指令。680C51系列MCU有哪些邏輯運(yùn)算功能?各有什么用處? (1)邏輯運(yùn)算功能 單操作數(shù)邏輯運(yùn)算指令,其操作對(duì)象都是累加器A,包括:清0、取反、循環(huán)左移、帶進(jìn)位循環(huán)左移、循環(huán)右移、帶進(jìn)位循環(huán)右移和半字節(jié)互換指令。 雙操作數(shù)邏輯運(yùn)算指令,包括:邏輯與(ANL)、邏輯或(ORL)及邏輯異或(XOR)三類(lèi)操作。 布爾(位)邏

6、輯操作指令,包括:位邏輯與(ANL)及位邏輯或(ORL)兩類(lèi)操作。 680C51系列MCU有哪些邏輯運(yùn)算功能?各有什么用處? ( 2 ) 邏輯運(yùn)算的用處 若是對(duì)口的操作,即為讀一改一寫(xiě)。 邏輯與運(yùn)算指令用做清除。 邏輯或運(yùn)算指令用做置位。 邏輯異或運(yùn)算指令用做取反。 用RLC A指令將累加器A的內(nèi)容作乘2運(yùn)算。 用RRC A指令將累加器A的內(nèi)容作除2運(yùn)算。780C51系列MCU的轉(zhuǎn)移類(lèi)指令有何獨(dú)特優(yōu)點(diǎn)?無(wú)條件轉(zhuǎn)移指令有哪幾種?如何選用?1. 條件轉(zhuǎn)移指令 在條件轉(zhuǎn)移指令中兩類(lèi)指令有獨(dú)特的優(yōu)點(diǎn)。(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條指令能對(duì)所有單元內(nèi)容進(jìn)行比較,當(dāng)不相等時(shí)程序作相對(duì)轉(zhuǎn)移,并指出其大小,以備作第二次判斷。780C51系列MCU的轉(zhuǎn)移類(lèi)指令有何獨(dú)特優(yōu)點(diǎn)?無(wú)條件轉(zhuǎn)移指令有哪幾種?如何選用?其功能可從程序轉(zhuǎn)移和數(shù)值比較兩個(gè)方面說(shuō)明。 程序轉(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)移類(lèi)指令有何獨(dú)特優(yōu)點(diǎn)?無(wú)條件轉(zhuǎn)移指令有哪幾種?如何選用?數(shù)值比較:在80C51的指令系統(tǒng)中沒(méi)有比較指令,兩個(gè)數(shù)值的比較可利用這4條指令來(lái)實(shí)現(xiàn),即可按指令執(zhí)行后,根據(jù)CY的狀態(tài)來(lái)判斷數(shù)值的大小。若(CY)=0,則目的操作數(shù)源操作數(shù); 若(CY)=1,則目的操作數(shù)源操作數(shù)。 (2)循環(huán)轉(zhuǎn)移(DJNZ)指令 80C51設(shè)有功能極強(qiáng)的循環(huán)轉(zhuǎn)移指令: DJNZ Rn,rel 以工作寄存器作控制計(jì)數(shù)器。DJNZ direct,rel 以直接尋址單元作控制計(jì)數(shù)器。 這2條基本指令可派生出很多條不同控制計(jì)數(shù)器

9、的循環(huán)轉(zhuǎn)移指令,大大擴(kuò)充了應(yīng)用范圍 和多重循環(huán)層次。 780C51系列MCU的轉(zhuǎn)移類(lèi)指令有何獨(dú)特優(yōu)點(diǎn)?無(wú)條件轉(zhuǎn)移指令有哪幾種?如何選用?2. 無(wú)條件轉(zhuǎn)移指令無(wú)條件轉(zhuǎn)移指令的功能是程序無(wú)條件地轉(zhuǎn)移到各自指定的目標(biāo)地址去執(zhí)行,不同的指令 形成的目標(biāo)地址不同。共有4條: (1)相對(duì)轉(zhuǎn)移(SJMP)指令SJMP rel 指令的目標(biāo)地址是由PC(程序計(jì)數(shù)器)和指令的第二字節(jié)帶符號(hào)的相對(duì)地址相加而成的。 指令可轉(zhuǎn)向指令前128B或指令后127B。(2)短轉(zhuǎn)移(AJMP)指令 AJMP addr11 指令提供11位地址,目標(biāo)地址由指令第一字節(jié)的高三位a10a8和指令第二字節(jié)的a7a0所組成。因此,程序的目標(biāo)

10、地址必須包含AJMP指令后第一條指令的第一個(gè)字節(jié)在內(nèi)的2KB范圍內(nèi)。780C51系列MCU的轉(zhuǎn)移類(lèi)指令有何獨(dú)特優(yōu)點(diǎn)?無(wú)條件轉(zhuǎn)移指令有哪幾種?如何選用? (3)長(zhǎng)轉(zhuǎn)移(LJMP)指令 LJMP addrl6 指令提供16位地址,目標(biāo)地址由指令第二字節(jié)和第三字節(jié)組成。因此,程序轉(zhuǎn)向的目標(biāo)地址可以包含程序存儲(chǔ)器的整個(gè)64KB空間。 (4)間接轉(zhuǎn)移(JMP)指令 JMP A+DPTR 指令的目標(biāo)地址是將累加器A中的8位無(wú)符號(hào)數(shù)與數(shù)據(jù)指針DPTR的內(nèi)容相加而得。 相加運(yùn)算不影響累加器A和數(shù)據(jù)指針DPTR的原內(nèi)容。若相加的結(jié)果大于64KB,則從程序存儲(chǔ)器的零地址往下延續(xù)。880C51系列MCU的短調(diào)用和長(zhǎng)

11、調(diào)用指令本質(zhì)上有何區(qū)別?如何選用? 這兩條指令都是在主程序中調(diào)用子程序,兩者的區(qū)別:對(duì)短調(diào)用指令,被調(diào)用子程序入口地址必須與調(diào)用指令的下一條指令的第一字節(jié)在相同的2KB存儲(chǔ)區(qū)之內(nèi)。入口地址與指令在2K內(nèi)可選用ACALL或LCALL,超出2K范圍只能選用LCALL。980C51系列MCU的片內(nèi)RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。分析下面各條指令,說(shuō)明源操作數(shù)的尋址方式,給出按順序執(zhí)行各條指令后的結(jié)果。10已知(A)=7AH,(R0)=30H,(30H)=0A5H,(PSW)=80H,請(qǐng)?zhí)顚?xiě)下列各條指令的執(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單元中,請(qǐng)編程實(shí)現(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單元中,高位存放在高地址中,請(qǐng)編程實(shí)現(xiàn)。16將片外RAM區(qū)40H60H區(qū)域的數(shù)據(jù)塊,全部搬移到片內(nèi)RAM區(qū)的相同地址區(qū)域,并將原數(shù)據(jù)區(qū)全部填00H,請(qǐng)編程實(shí)現(xiàn)。17計(jì)算片內(nèi)RAM區(qū)50H57H區(qū)域的數(shù)據(jù)的算術(shù)平均值,結(jié)果存放在58H中,請(qǐng)編程實(shí)現(xiàn)。18已知16位二進(jìn)制數(shù)放在片內(nèi)RAM區(qū)20H和21H單元,高位存放在高地址中,請(qǐng)編寫(xiě)將其右移一位的程序。19請(qǐng)用位操作指令,求下列邏輯方程:20已知16位二進(jìn)制數(shù)放在R7R6中,請(qǐng)編寫(xiě)對(duì)它們進(jìn)行求補(bǔ)操作的程序,結(jié)果存放在R1R0中。 MOV A,R0 CPL A ADD A,#01H MOV R2,A MOV A,R1 CPL A ADDC A,#00H MOV R3,A END21在起始地址為1200H,長(zhǎng)度為64的數(shù)據(jù)表中找出ASCII碼“F”,將其送到1000H單元中,請(qǐng)編程實(shí)現(xiàn)。22試編寫(xiě)一段程序,把0500H0506H單元中的壓縮BCD碼轉(zhuǎn)換成ASCII碼,存放在0500H為首地址的存儲(chǔ)單元中。23請(qǐng)編寫(xiě)一個(gè)延時(shí)2ms的子程序。24利用查表技術(shù)將累加器中的一位BCD碼轉(zhuǎn)換為相應(yīng)的十進(jìn)制數(shù)的七段碼,結(jié)果仍放在A中(設(shè)顯示數(shù)字09的七段碼分別是:40H

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論