80C51單片機(jī)指令系統(tǒng).ppt_第1頁
80C51單片機(jī)指令系統(tǒng).ppt_第2頁
80C51單片機(jī)指令系統(tǒng).ppt_第3頁
80C51單片機(jī)指令系統(tǒng).ppt_第4頁
80C51單片機(jī)指令系統(tǒng).ppt_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)原理與應(yīng)用,第3章 80C51單片機(jī)指令系統(tǒng),1.CPU包括哪兩部分電路?,2.80C51單片機(jī)引腳有多少個(gè)?分為幾類?,3.80C51內(nèi)部RAM空間分配?ROM空間?,4.80C51單片機(jī)PO口在作為通用I/O口使用時(shí)要注意什么?,5.80C51單片機(jī)時(shí)鐘電路一般外接晶振多少HZ?相應(yīng)的機(jī)器周期如何計(jì)算?,6.80C51單片機(jī)復(fù)位如何實(shí)現(xiàn),有哪兩種方式?,單片機(jī)指令系統(tǒng)簡介,80C51指令尋址方式,80C51單片機(jī)指令分類介紹,1,2,3,本章主要內(nèi)容,3.1 單片機(jī)指令系統(tǒng)概述,一、基本概念 指令: 規(guī)定計(jì)算機(jī)基本操作的語句或命令。 指令系統(tǒng): 一個(gè)單片機(jī)所能執(zhí)行的指令集合,是單片機(jī)

2、提供給用戶使用的軟件資源。,二、指令格式: 標(biāo)號(hào):操作碼目的操作數(shù),源操作數(shù);注釋 標(biāo)號(hào): 用戶設(shè)定的符號(hào), 它實(shí)際代表該指令所在的地址。標(biāo)號(hào)必須以字母開頭, 其后跟17個(gè)字母或數(shù)字, 并以“:”結(jié)尾。 操作碼: 用英文縮寫的指令功能助記符,規(guī)定指令進(jìn)行什么操作,源操作數(shù) : 提供操作的對(duì)象 指出的是一個(gè)源地址,表示操作數(shù)來自何處。 也可以是一個(gè)立即數(shù),表示操作的對(duì)象 與目的操作數(shù)之間要用“,”號(hào)隔開。,目的操作數(shù): 提供操作的對(duì)象; 指出一個(gè)目標(biāo)地址, 表示操作結(jié)果存放單元的地址; 與操作碼之間必須以一個(gè)或幾個(gè)空格分隔。,注釋: 在編寫程序時(shí), 為了增加程序的可讀性, 由用戶擬寫對(duì)該條指令或

3、該段程序功能的說明。 它以分號(hào)“;”開頭, 可以用中文、 英文或某些符號(hào)來表示, 顯然它不存入計(jì)算機(jī), 只出現(xiàn)在源程序中。,標(biāo)號(hào):操作碼目的操作數(shù),源操作數(shù);注釋 表示該項(xiàng)是可選項(xiàng); 例如: LOOP: ADD A, 10H ; (A)(A)+10H CLR A RETI RET,三、指令中常用符號(hào)介紹 (1) Ri和Rn: R表示當(dāng)前工作寄存器區(qū)中的工作寄存器,當(dāng)前工作寄存器的選定是由PSW的RS1和RS0位決定的。 i表示0或1, 即R0和R1; n表示07, 即R0R7; (2) data: 表示立即數(shù), data為8位二進(jìn)制常數(shù)。 data是指包含在指令中的8位立即數(shù)。 (3) dat

4、a16: 包含在指令中的16位立即數(shù)。,(4) rel: 8位補(bǔ)碼形式表示的地址偏移量 范圍為-128+127, 主要用于無條件相對(duì)短轉(zhuǎn)移指令SJMP和所有的條件轉(zhuǎn)移指令中。,(5) addr16: 16位目的地址 目的地址可在全部程序存儲(chǔ)器的64 KB空間范圍內(nèi), 用于無條件長轉(zhuǎn)移指令LJMP和子程序長調(diào)用指令LCALL中,(6) addr11: 11位目的地址 以該11位地址替換PC的低11位內(nèi)容,形成新的PC值。用于絕對(duì)轉(zhuǎn)移指令A(yù)JMP和子程序絕對(duì)調(diào)用指令A(yù)CALL指令中,(7) direct: 表示直接尋址的地址, 即8位內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM的單元地址(0127); 特殊功能寄存器SF

5、R的地址。對(duì)于SFR可直接用其名稱來代替其直接地址。,(8) bit: 內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM中位尋址區(qū)中的位地址 特殊功能寄存器SFR中的可直接尋址位地址或名稱。,(9) : 間接尋址寄存器或基地址寄存器的前綴, 如Ri, DPTR, 表示寄存器間接尋址。,(10) (X): 表示X(地址或寄存器)中的內(nèi)容。在注釋中使用。,(11) (X): 表示 (X)作地址, 該地址的內(nèi)容用(X)表示。在注釋中使用。,(12) / 符號(hào): 加在位地址的前面,表示對(duì)該位狀態(tài)取反。,(13) 符號(hào): 表示指令操作流程, 將箭頭右邊的內(nèi)容, 送入箭頭左邊的單元中去。,3.2 80C51單片機(jī)指令尋址方式,尋址方

6、式:如何確定操作數(shù)單元地址,并取得操作數(shù)(源操作數(shù)的尋址方式) 80C51有7種尋址方式:,1. 寄存器尋址方式,2. 直接尋址方式,3. 寄存器間接尋址方式,4. 立即尋址方式,5. 變址尋址方式,6. 位尋址方式,7. 相對(duì)尋址方式,1. 寄存器尋址方式 操作數(shù)在寄存器(以符號(hào)名表示寄存器)中,指定寄存器就能得到操作數(shù) 寄存器尋址的主要對(duì)象: 當(dāng)前通用寄存器,R0R7; 部分專用寄存器 A、AB、DPTR 例:MOV A,R0,2.直接尋址方式 操作數(shù)直接以存儲(chǔ)單元地址的形式給出 尋址范圍:在內(nèi)部RAM中 低128單元:直接以單元地址形式給出 專用寄存器:可以以單元地址形式給出,還可以寄存

7、器符號(hào)形式給出,直接尋址是訪問專用寄存器的唯一方法。 例: MOV A,30H MOVA,P1,3. 寄存器間接尋址方式 由指令指出某一個(gè)寄存器的內(nèi)容作為操作數(shù)的地址。在寄存器前加符號(hào)。 尋址范圍: 訪問片內(nèi)RAM低128單元,用R0和R1。 MOV A, R0(R1) 用訪問片外RAM 64KB,用DPTR。 MOVX A, DPTR 訪問片外RAM低256單元,也可以用R0和R1。 MOVX A, R0(R1)(DPTR) 堆棧操作指令 PUSH POP,4. 立即尋址方式 在指令中直接給出操作數(shù)。 立即數(shù)前面加#標(biāo)志。 例: MOVA,#30H MOVDPTR,#2000H,5. 變址尋

8、址 以16位的程序計(jì)數(shù)器PC或數(shù)據(jù)指針DPTR作為基址寄存器,以8位的累加器A作為變址寄存器,并以兩者內(nèi)容相加形成的16位地址為操作數(shù)地址。 只能對(duì)程序存儲(chǔ)器進(jìn)行尋址,范圍64K。 指令只有三條: MOVC A, A+DPTR MOVC A,A+PC JMP A+DPTR,6. 位尋址方式 指令中直接給出位地址,對(duì)數(shù)據(jù)位進(jìn)行處理 尋址范圍: 片內(nèi)RAM的位尋址區(qū)(128位)。 SFR的可尋址位(83位)。 直接使用位地址 位名稱表示方法 單元地址加位數(shù) 專用寄存器符號(hào)加位數(shù) 例: MOV C, 3AH,7.相對(duì)尋址方式 為轉(zhuǎn)移指令采用的尋址方式。 以PC的內(nèi)容(相對(duì)轉(zhuǎn)移指令的存儲(chǔ)地址加上該指令

9、的字節(jié)數(shù))作為基址寄存器,加上指令中給定的偏移量所得結(jié)果作為轉(zhuǎn)移地址。 偏移量rel是有符號(hào)的單字節(jié)數(shù)。以補(bǔ)碼表示,其值的范圍是-128+127,負(fù)數(shù)表示從當(dāng)前地址向前轉(zhuǎn)移,正數(shù) 表示從當(dāng)前地址向后轉(zhuǎn)移。 目的地址=轉(zhuǎn)移指令地址+轉(zhuǎn)移指令字節(jié)數(shù)+rel,說明下列指令中源操作數(shù)的尋址方式 MOVA,R7 MOVA,R1 MOVCA,A+DPTR MOVA,P0 MOVA,#88H MOVA,88H MOV C,P0.0,3.3 80C51單片機(jī)指令系統(tǒng),80C51指令分類(按功能分) 數(shù)據(jù)傳送指令(29條) 算術(shù)運(yùn)算指令(24條) 邏輯運(yùn)算指令及移位類指令(24條) 控制轉(zhuǎn)移類指令(17條) 位

10、操作類指令(17條),一、數(shù)據(jù)傳送指令(29條) 1. 內(nèi)部RAM單元之間數(shù)據(jù)傳送指令(16條) 2. 片外RAM數(shù)據(jù)傳送指令(4條) 3. ROM數(shù)據(jù)傳送指令(2條) 4. 交換指令(5條) 5. 堆棧指令(2條),1. 內(nèi)部RAM單元之間數(shù)據(jù)傳送指令(16 ) 以A為目標(biāo)操作數(shù)的傳送指令 (4) 以Rn為目標(biāo)操作數(shù)的指令 (3) 以直接地址為目標(biāo)操作數(shù)的指令 (5) 以間接地址為目標(biāo)操作數(shù)的指令 (3) 16位數(shù)據(jù)傳送指令 (1),目的操作數(shù)為A (4) MOV A, #data MOV A,direct MOV A, Rn MOV A, Ri 目的操作數(shù)為Rn (3) MOV Rn, #

11、data MOV Rn, direct MOV Rn, A 目的操作數(shù)為DPTR (1) MOV DPTR, #data,例1:指令執(zhí)行前(A)=33H,(R0)=30H,(30H)=55H,指令執(zhí)行后的結(jié)果:MOVA,R0 ;(A)=?MOVA , 30H ;(A)=?MOVA , R0 ;(A)=?MOVA , #20H ;(A)=?,30H,55H,(30H)=55H,20H,例2指令執(zhí)行前(A)=33H,(R0)=30H,(30H)=55H,指令執(zhí)行后的結(jié)果:MOVR0,A ; (R0)=MOVR3 , 30H ; (R3)=MOVR7 , #20H ; (R7)=,33H,55H,2

12、0H,例3 指令執(zhí)行前(DPTR)=2000H,指令執(zhí)行后的結(jié)果:MOV DPTR,#8811H;,(DPTR)=8811H,目的操作數(shù)為direct (5) MOV direct, A MOV direct, direct MOV direct, #data MOV direct, Rn MOV direct, Ri 目的操作數(shù)為Ri (3) MOV Ri, A MOV Ri, direct MOV Ri, #data,例4指令執(zhí)行前(A)=33H,(R0)=20H,(20H)=55H,(40H)=88H,指令執(zhí)行后的結(jié)果: MOV30H,A ;(30H)=MOV30H,R0 ;(30H)=

13、 MOV30H , R0 ;(30H)=MOV30H , #20H ;(30H)=MOV30H,40H ;(30H)=,33H,20H,55H,20H,88H,例5指令執(zhí)行前(A)=33H,(R0)=30H,(30H)=55H,指令執(zhí)行后的結(jié)果:MOV R0 ,A ;(30H)=MOV R0 , 30H;(30H)= MOV R0, #20H ;(30H)=,33H,55H,20H,練習(xí)一,(59H)=50H,執(zhí)行指令后的結(jié)果 MOVA,59H MOVR0,A MOVA,#00H MOVR0,A MOVA,#25H MOV51H,A MOV53H,#70H,練習(xí)二,寫出相應(yīng)的指令 (內(nèi)RAM內(nèi)

14、RAM) 將R1的內(nèi)容傳送到20H單元。 將A的內(nèi)容傳送到寄存器R5。 將立即數(shù)30H傳送到累加器A。 將R0的內(nèi)容傳送到A。 將立即數(shù)88H傳送到50H單元。,2. 片外RAM傳送指令 (4) 尋址方式:寄存器間接尋址, 只能通過A實(shí)現(xiàn)片內(nèi)片外數(shù)據(jù)傳送 目的操作數(shù)為A MOVX A, Ri MOVX A, DPTR 目的操作數(shù)為Ri MOVX Ri, A MOVX DPTR, A,例6:指令執(zhí)行前(DPTR)=2000H,(A)=30H,(2000H)=55H,(R0)=20H,(20H)=88H MOVXA,DPTR ; MOVXR0,A ;,(A)=55H,(20H)=30H,練習(xí)3:按

15、要求寫出指令: 將外部RAM中2000H單元的內(nèi)容送A,MOV DPTR,#2000H MOVXA, DPTR 法1,MOV P2,#20H 法2 MOV R0,#00H MOVX A, R0,練習(xí)4:按要求寫出指令: 將A的內(nèi)容送外部RAM中2000H單元,MOV DPTR,#2000H MOVXDPTR,A 法1,MOV P2,#20H 法2 MOV R0,#00H MOVXR0,A,練習(xí)5:按要求寫出指令:(內(nèi)RAM 外RAM) 將50H的內(nèi)容送外部RAM中2000H單元,MOV DPTR,#2000H MOV A,50H MOVXDPTR,A,練習(xí)6:按要求寫出指令:(外RAM 內(nèi)RA

16、M) 將外部RAM中2000H的內(nèi)容送50H單元,MOV DPTR,#2000H MOVX A,DPTR MOV 50H, A,練習(xí)7:按要求寫出指令:(外RAM 外RAM) 將外部RAM中2000H的內(nèi)容送1000H單元,MOV DPTR,#2000H MOVX A,DPTR MOV DPTR,#1000H MOVX DPTR,A,3. ROM數(shù)據(jù)傳送指令(2條) ROM數(shù)據(jù)只能讀,不能寫,因此數(shù)據(jù)傳送是單向的。 MOVC A,A+PC MOVC A,A+DPTR 片外ROM中的數(shù)據(jù)只能傳送到累加器A。 用于查閱常數(shù)表,DPTR、PC稱為基地址寄存器,用于存放表格的首地址。A中的數(shù)稱為地址偏

17、移量,用于指出表格中待查數(shù)據(jù)存放的單元地址偏移表頭地址的字節(jié)數(shù)。,例:指令執(zhí)行前(DPTR)=2000H, (A)=30H,(2030H)=55H, MOVC A,A+DPTR 則(A)=(2000H+30H) =(2030H) =55H,ROM數(shù)據(jù)傳送指令又稱查表指令,例:MOV DPTR,#TABLE MOV A,#02H MOVC A,A+DPTR SJMP $ TABLE: DB 0,1,24,9,16,25,36,49,64,81,或者M(jìn)OV A,#02H ADD A,#02H MOVC A,A+PC SJMP $ TABLE: DB 0,1,24,9,16,25,36,49,64,

18、81,4.數(shù)據(jù)交換指令(5條),將源操作數(shù)的內(nèi)容和累加器A的內(nèi)容互換 XCHA,Rn ;(A)(Rn) XCHA ,direct;(A)(direct) XCHA , Ri ;(A)(Ri) XCHDA,Ri ;(A)30(Ri)30,最后一條指令將A的低4位和R0或R1指出的RAM單元低4位相互交換,各自的高4位不變。,累加器高低半字節(jié)交換指令 只有一條指令: SWAP A,例:已知:(A)=80H,(R0)=30H,(30H)=44H;執(zhí)行下列指令后的結(jié)果: XCHA, R0 ;(A)=44H,(30H)=80H XCHDA, R0 ;(A)=84H,(30H)=40H XCHA,R0 ;(A)=30H,(R0)=80H,法1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論