單片機原理及其應用課件--第三章(修訂1)_第1頁
單片機原理及其應用課件--第三章(修訂1)_第2頁
單片機原理及其應用課件--第三章(修訂1)_第3頁
單片機原理及其應用課件--第三章(修訂1)_第4頁
單片機原理及其應用課件--第三章(修訂1)_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、單片機原理及其應用揚州大學1單片機原理接口及其應用(Principle and Application of Single Chip Microcomputer)單片機原理及其應用揚州大學2第1章 概述第2章 MCS-51單片機硬件結構第3章 MCS-51尋址方式和指令系統(tǒng)第4章 MCS-51匯編程序設計第5章 中斷系統(tǒng)第6章 定時器/計數(shù)器及串行口第7章 存儲器擴展第8章 接口電路擴展第9章 應用舉例單片機原理及其應用揚州大學3第3章 MCS-51尋址方式和指令系統(tǒng)重點:掌握MCS-51的尋址方式和主要指令的功能、格式、使用。 3.1 MCS-51指令系統(tǒng)概指令系統(tǒng)概述述3.2 MCS-51

2、尋址方式尋址方式3.3 指令系統(tǒng)指令系統(tǒng)分類介紹分類介紹 單片機原理及其應用揚州大學43.1 MCS-51指令系統(tǒng)概述指令系統(tǒng)概述單片機所能執(zhí)行的指令集合稱為指令系統(tǒng)。MCS-51的基本指令共111條,按指令所占的字節(jié)來分: (1) 單字節(jié)指令49條; (2) 雙字節(jié)指令45條; (3) 三字節(jié)指令17條。按指令的執(zhí)行時間來分: (1)單機器周期(12個時鐘振蕩周期)的指令64條; (2)二機器周期(24個時鐘振蕩周期)的指令45條; (3)只有乘、除兩條指令的執(zhí)行時間為4個機器周期(48個時鐘振蕩周期)。返回本章單片機原理及其應用揚州大學5指令格式指令格式在MCS-51指令中,指令主要由操作

3、碼、操作數(shù)組成。指令具有以下功能:(1)操作碼指明執(zhí)行什么性質和類型的操作。例 如,數(shù)的傳送、加法、減法等。(2)操作數(shù)指明參與操作的數(shù)本身或者是其所在的 地址。(3)指定操作結果存放的地址。指令一般格式:指令一般格式:標號:操作碼助記符 (目的操作數(shù)),(源操作數(shù)) ;注釋單片機原理及其應用揚州大學6返回本節(jié)單片機原理及其應用揚州大學73.2 尋址方式(尋址方式(7種)種)(p34) 3.2.1 寄存器尋址寄存器尋址 3.2.2 直接尋址直接尋址 3.2.3 寄存器間接尋址寄存器間接尋址 3.2.4 立即尋址立即尋址 3.2.5 變址尋址變址尋址 3.2.6 相對尋址相對尋址 3.2.7 位

4、尋址位尋址返回本章單片機原理及其應用揚州大學83.2.1 寄存器尋址寄存器尋址 以通用寄存器的內容為操作數(shù)的尋址方式。通用寄存器指A、B 、DPTR以及R0R7(當前工作寄存器組)。 例如: CLR A;A0 INC DPTR;DPTR(DPTR)+1 ADDA,# 20H;A(A) + #20H 單片機原理及其應用揚州大學93.2.2 直接尋址直接尋址 指令中直接給出操作數(shù)地址的尋址方式,能進行直接尋址的存儲空間有SFR寄存器和內部數(shù)據(jù)RAM。例如: MOVPSW,# 20H;PSW#20H PSW為直接尋址寄存器的符號地址。 MOVA,30H;A(30H) 30H為直接給出的內部RAM的地

5、址。MOVA,P0;讀P0口引腳MOVA,80H 直接尋址方式是訪問特殊功能寄存器的唯一尋址方式。單片機原理及其應用揚州大學103.2.3 寄存器間接尋址寄存器間接尋址 以寄存器中內容為地址,以該地址中內容為操作數(shù)的尋址方式。寄存器間接尋址的存儲器空間包括內部數(shù)據(jù)RAM和外部數(shù)據(jù)RAM。 能用于寄存器間接尋址的寄存器有R0,R1,DPTR,SP。其中R0、R1必須是當前工作寄存器組中的寄存器。SP僅用于堆棧操作。單片機原理及其應用揚州大學11在寄存器的名稱前面加前綴標志“”表示間接尋址MOV AMOV A,Ri Ri ;i=0i=0或或1 1MOVX AMOVX A,DPTRDPTR單片機原理

6、及其應用揚州大學12例如: MOV R0,A ;內部RAM (R0)(A),其指令操作過程示意圖如圖3-1所示。片內RAM30HR034HA30H34H圖3-1 MOV R0,A間接尋址示意圖單片機原理及其應用揚州大學13又如: MOVX A,R1;A外部RAM (P2R1)其指令操作過程示意圖如圖3-2所示。片外RAM34HP245HA3410H45H10HR1圖3-2 MOVX A,R1 間接尋址示意圖 單片機原理及其應用揚州大學14再如: MOVX DPTR,A;外部RAM (DPTR)(A) 其指令操作過程示意圖如圖3-3所示。片外RAM2000HDPTR30HA2000H30H圖3-

7、3 MOVX DPTR,A 間接尋址示意圖單片機原理及其應用揚州大學15 指令中直接給出操作數(shù)的尋址方式。立即操作數(shù)用前面加有#號的8位或16位數(shù)來表示。例如: MOVA,# 60H ;A#60H MOVDPTR,# 3400H ;DPTR#3400H MOV30H,# 40H;30H單元#40H 3.2.4 立即尋址方式立即尋址方式單片機原理及其應用揚州大學163.2.5 變址尋址變址尋址 變址尋址是由基址寄存器(DPTR、PC)加變址寄存器(A)形成的尋址方式。它只能對程序存儲器中數(shù)據(jù)進行操作。 (變址尋址只有讀操作而無寫操作) 在指令符號上采用MOVC的形式。例如:MOVC A,A+DP

8、TR ;A(A)+(DPTR)又如: MOVC A, A+PC ;A(A)+(PC) 這條指令與上條指令不同的是,基址寄存器是PC (當前PC值)。 JMP ADPTR ;PC (A)+(DPTR)17圖3 -4 變址尋址示意圖程序存儲器2000HDPTR64H(10H)A2010H64H10H2000HMOVC A,A+DPTRA=10H DPTR=2000HA=64H單片機原理及其應用揚州大學183.2.6 位尋址位尋址 位尋址只能對有位地址的單元作位尋址操作。 位尋址其實是一種直接尋址方式,不過其地址是位地址。 例如:SETB 10H ;將10H位置1。 若22H單元中存放著數(shù)據(jù)40H,

9、22H單元D0位的位地址即10H,執(zhí)行上述指令后,(22H)=41H。 又如:MOV 32H,C ;32H進位位C ORL C ,32H ;C(C)(32H)返回本節(jié)單片機原理及其應用揚州大學19位尋址范圍包括:(1)內部RAM中的位尋址區(qū)。位有兩種表示方法: a.位地址: 40H; b.單元地址加上位:(28H).0,指的是28H單元中的最低位。它們是等價的。(2)特殊功能寄存器中的可尋址位 可尋址位在指令中有4種表示方法: a.特殊功能寄存器符號加位數(shù)。如: PSW.5。 b.直接使用位地址。PSW.5的位地址為0D5H。 c.位名稱。PSW.5是F0標志位,可使用F0表示該位。 d.單元

10、地址加位數(shù)。例如 :(0D0H).5。單片機原理及其應用揚州大學203.2.7 相對尋址相對尋址 相對尋址用于修改PC值,主要用于實現(xiàn)程序的分支轉移。 以當前程序計數(shù)器PC (取指令后)的內容為基礎,加上指令中給出的一字節(jié)補碼數(shù)(偏移量rel)形成新的PC值的尋址方式。 目的地址 = 轉移指令所在的地址 + 轉移指令字節(jié)數(shù)+ rel = 當前PC值 rel 21程序存儲器(2000H)200AHSJMP200AH08H2000H+208HPC2000H圖3-5 相對尋址示意圖目的地址當前目的地址當前PC值值 rel 例如,SJMP 08H ;PC(PC)+2+08H單片機原理及其應用揚州大學2

11、23.3 指令系統(tǒng)分類介紹指令系統(tǒng)分類介紹按指令所占的字節(jié)來分: 49條單字節(jié)指令 45條雙字節(jié)指令 17條3字節(jié)指令組成按指令的執(zhí)行時間來分(主頻取12MHz時): 64條指令的執(zhí)行時間為1個機器周期,1us 45條指令的執(zhí)行時間為2個機器周期, 2us 2條乘、除法運算指令的執(zhí)行時間為4個機器周期,4us 單片機原理及其應用揚州大學23 3.3.1 指令描述符號介紹指令描述符號介紹 3.3.2 數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令 3.3.3 算術運算類指令算術運算類指令 3.3.4 邏輯運算與循環(huán)類指令邏輯運算與循環(huán)類指令 3.3.5 程序轉移類指令程序轉移類指令 3.3.6 調用子程序及返回指

12、令調用子程序及返回指令 3.3.7 位操作指令位操作指令 3.3.8 空操作指令空操作指令返回本章單片機原理及其應用揚州大學243.3.1 指令描述符號介紹指令描述符號介紹(p33)Rn當前選中的寄存器區(qū)中的8個工作寄存器 R0R7(n=07)。Ri當前選中的寄存器區(qū)中的2個工作寄存器 R0、R1(i=0,1)。direct8位內部數(shù)據(jù)存儲器單元的地址。#data包含在指令中的8位常數(shù)。#data16包含在指令中的16位常數(shù)。addr1616位目的地址。addr1111位目的地址。單片機原理及其應用揚州大學25rel8位帶符號的偏移字節(jié),簡稱偏移量。DPTR數(shù)據(jù)指針,可用作16位地址寄存器。b

13、it內部RAM或專用寄存器中的直接尋址位。A累加器。B專用寄存器,用于乘法和除法指令中。C進位標志(進位位),或布爾處理機中的位累加 器。單片機原理及其應用揚州大學26間址寄存器或基址寄存器的前綴, 如 Ri,DPTR。/ 位操作數(shù)的前綴,表示對該位操作數(shù)取反, 如 /bit。(X)X中的內容((X))由X尋址的單元中的內容。 箭頭左邊的內容被箭頭右邊的內容所代替。返回本節(jié)單片機原理及其應用揚州大學273.3.2 數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令 數(shù)據(jù)傳送類指令共28條,將源操作數(shù)復制到目的操作數(shù)。指令執(zhí)行后,源操作數(shù)不變,目的操作數(shù)被源操作數(shù)取代。指令執(zhí)行后對CY、AC、OV無影響。 數(shù)據(jù)傳送類

14、指令用到的助記符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP 8種。 源操作數(shù)可采用寄存器、寄存器間接、直接、立即、變址5種尋址方式尋址,目的操作數(shù)可以采用寄存器、寄存器間接、直接尋址3種尋址方式。28直接地址direct累加器A直接地址direct間接地址Ri寄存器Rn立即數(shù)#data寄存器DPTR圖36 MCS-51單片機片內數(shù)據(jù)傳送圖單片機原理及其應用揚州大學291以以A為目的操作數(shù)為目的操作數(shù)MOV A,Rn;A (Rn)MOV A,direct;A(direct)MOV A,Ri;A((Ri))MOV A,#data;A #dataMOV A, R0MO

15、V A, 30HMOV A, R1MOV A, #03 單片機原理及其應用揚州大學302以Rn為目的操作數(shù)MOV Rn,A;(Rn) (A)MOV Rn,direct;(Rn) (direct)MOV Rn,#data;(Rn) #dataMOV R4, AMOV R2, 25HMOV R5, #0FH單片機原理及其應用揚州大學313以直接地址為目的操作數(shù)以直接地址為目的操作數(shù)MOV direct,A; (direct) (A)MOV direct,direct; (direct) (direct)MOV direct,Rn; (direct) (Rn)MOV direct,#data; (d

16、irect) #dataMOV direct,Ri; (direct) (Ri)單片機原理及其應用揚州大學324以間接地址為目的操作數(shù)MOV Ri,A;((Ri)) (A)MOV Ri,direct ; ((Ri)) (direct)MOV Ri,#data; ((Ri)) #data間接尋址單元在程序運行時確定。例:設(30H)=6FH,(R1)=40H,執(zhí)行MOV R1,30H后,30H單元中數(shù)據(jù)取出送入R1間接尋址的40H單元,(40H)=6FH單片機原理及其應用揚州大學335以以DPTR為目的操作數(shù)為目的操作數(shù)MOV DPTR,#data16 ;(DPTR) #data16例如執(zhí)行 M

17、OV DPTR,#2000H 后,(DPTR)= 2000H。 單片機原理及其應用揚州大學346訪問外部數(shù)據(jù)訪問外部數(shù)據(jù)RAM(p39) MOVX A,DPTR;(A) (DPTR)MOVX DPTR,A; (DPTR) (A)MOVX A,Ri; (A) (P2Ri)MOVX Ri,A; (P2Ri) (A) 單片機原理及其應用揚州大學357讀程序存儲器(查表)讀程序存儲器(查表)(p40)MOVC A,A+DPTR;(A) (A)+(DPTR)MOVC A,A+PC;(PC) (PC)+1, (A) (A)+(PC);例如已知(A)=30H,(DPTR)=3000H,程序存儲器單元(303

18、0H)=50H,執(zhí)行MOVC A, A+DPTR后,(A)=50H。例:查表:設(A)=03, 按(A)2的值查表,結果是什么?REL-PC: INC A ;跳過RET MOVC A,A+PC ; 查表 RET DB 66H ; 表格 (A)=0 DB 77H ; (A)=1 DB 88H ; (A)=2 DB 99H ; (A)=3指令單元處PC值單片機原理及其應用揚州大學368數(shù)據(jù)交換數(shù)據(jù)交換(p39)l l 字節(jié)交換XCH A,Rn;(A)(Rn)XCH A ,direct;(A)(direct)XCH A,Ri;(A)(Ri)l 半字節(jié)交換XCHD A,Ri;(A)03(Ri)03SW

19、AP A;(A)03(A)47單片機原理及其應用揚州大學379堆棧操作 堆棧是在片內RAM中按“先進后出,后進先出”原則設置的專用存儲區(qū)。數(shù)據(jù)的進棧出棧由指針SP統(tǒng)一管理。堆棧的操作有如下兩條專用指令: PUSH direct ;(SP)(SP)+1,(SP)(direct) POP direct ;direct(SP),(SP) (SP)1例: 設中斷時,(SP)=09h, (DPTR)=1034h, 保護DPTR進棧。PUSH DPL PUSH DPH 則 (0AH)=34H, (0BH)=10H, (SP)=0BH單片機原理及其應用揚州大學38片內RAM30H11H10HSP片內RAM5

20、0H40H11H10HSP40H30H片內RAM50H40H11H10H50HSP30H片內RAM40H11H10H34HSP30H34H34H執(zhí)行前執(zhí)行前執(zhí)行前PUSH指令后執(zhí)行POP指令后指令PUSH操作示意圖指令POP操作示意圖PUSH 40HPOP 30H單片機原理及其應用揚州大學39【例3.1】 將片內RAM 30H單元與40H單元中的內容互換。方法1(直接地址傳送法): MOV31H,30H MOV30H,40H MOV40H,31H SJMP$方法2(間接地址傳送法): MOVR0,#40H MOVR1,#30H MOVA,R0 MOVB,R1 MOVR1,A MOVR0,B S

21、JMP$單片機原理及其應用揚州大學40方法3(字節(jié)交換傳送法): MOVA,30H XCHA,40H MOV30H,A SJMP$方法4(堆棧傳送法): PUSH30H PUSH40H POP30H POP40H SJMP$返回本節(jié)單片機原理及其應用揚州大學413.3.3 算術運算類指令算術運算類指令(p40)算術運算算術運算指令執(zhí)行后對 CY、AC、OV 有影響(除INC和DEC指令)。1加法指令加法指令ADD A,Rn;(A) (A) +( Rn)ADD A,direct;(A)( A) +(direct)ADD A,Ri;(A) (A) + (Ri)ADD A,#data;(A) (A)

22、 + #data單片機原理及其應用揚州大學42 使用加法指令時,要注意累加器A的運算結果對各個標志位的影響:(1)如果位7有進位,則置“1”進位標志Cy,否則清“0” Cy。(2)如果位3有進位,置“1”輔助進位標志Ac,否則 清“0” Ac(Ac為PSW寄存器中的一位)。(3)如果位6有進位,而位7沒有進位,或者位7有進位,而位6沒有,則溢出標志位OV置“1”,否則清“0”O(jiān)V。 溢出標志位OV的狀態(tài),只有在帶符號數(shù)加法運算時才有意義。當兩個帶符號數(shù)相加時,OV=1,表示加法運算超出了累加器A所能表示的帶符號數(shù)的有效范圍。單片機原理及其應用揚州大學43例: (A)=53H,(R0)=FCH,

23、執(zhí)行指令 ADD A,R0結果為: (A)=4FH,Cy=1,Ac=0,OV=0,P=1注意:上面的運算中,由于位6和位7同時有進位,所 以標志位OV=0。例: (A)=85H,(R0)=20H,(20H)=AFH,執(zhí)行指令: ADD A,R0 結果為:(A)=34H,Cy=1,Ac=1,OV=1,P=1注意:由于位7有進位,而位6無進位,所以標志位 OV=1 單片機原理及其應用揚州大學442帶進位加指令帶進位加指令ADDC A,Rn;(A) (A) + (Rn) + CADDC A,direct;(A) (A) + (direct)+ CADDC A,Ri; (A) (A) + (Ri) +

24、 CADDC A,#data; (A) (A) + #data + CC為來自PSW狀態(tài)寄存器中的進位位C。 例如,設(A)=20H,(R0)=21H,C=1,執(zhí)行指令 ADDC ,R0后,(A)=42H。 單片機原理及其應用揚州大學45【例【例3.2】 試把存放在試把存放在 R1R2 和和 R3R4 中的兩個中的兩個16位數(shù)相加,結果存于位數(shù)相加,結果存于 R5R6 中。中。解:參考程序如下:解:參考程序如下: MOV A,R2;取第一個數(shù)的低8位 ADD A,R4;兩數(shù)的低8位相加 MOV R6,A;保存和的低8位 MOV A,R1;取第一個數(shù)的高8位 ADDC A,R3;兩數(shù)的高8位相加

25、,并把低8位 相加時的進位位加進來 MOV R5,A ;把相加的高8位存入R5寄存器中 SJMP $ 返回本節(jié)單片機原理及其應用揚州大學463帶借位減指令帶借位減指令(p42)SUBB A,Rn;(A) (A) (Rn) - CSUBB A,direct; (A) (A) -(direct)- CSUBB A,Ri; (A) (A) (Ri)- CSUBB A,#data; (A) (A) - #data C 例如,設(A)=39H,(R0)=20H,(20H)=32H,C=1,執(zhí)行指令 SUBB ,R0 后,(A)=06H。 一般在做減法時,要先將C清零。單片機原理及其應用揚州大學47例:多

26、字節(jié)減法 被減數(shù)和結果放在由R0間址的單元,減數(shù)放在由R1間址的單元,字節(jié)數(shù)存于R2中。SUBSTR: CLR CSUBS1: MOV A, R0;被減數(shù) SUBB A, R1;被減數(shù)-減數(shù) MOV R0, A;存結果 INC R0;被減數(shù)地址+1 INC R1;減數(shù)地址+1 DJNZ R2, SUBS1單片機原理及其應用揚州大學484乘法指令乘法指令(p43)MUL AB;(B)(A) (A)(B) A和B中各存放一個8位無符號數(shù),指令執(zhí)行后,16位乘積的高8位在B中,低8位存A中。 例如,(A)=30H,(B)=60H,執(zhí)行 MUL AB 后,(A)=00H,(B)=12H。單片機原理及其

27、應用揚州大學49 5除法指令除法指令 DIV AB ; (A)(B)商在A中,余數(shù)在B中 A和B中各存放一個8位無符號數(shù),A放被除數(shù),B放除數(shù)。指令執(zhí)行后,A中存放商,B中存入余數(shù)。若除數(shù)(B)=00H,則指令執(zhí)行后OV=1,A與B不變。 例如,(A)=30H,(B)=07H,執(zhí)行 DIV AB 后,(A)=06H,(B)=06H。單片機原理及其應用揚州大學506加加1指令指令(p41)INC A;(A) (A) + 1INC Rn;(Rn) (Rn) + 1INC direct;(direct) (direct) + 1INC Ri;(Ri)(Ri) + 1INC DPTR;(DPTR) (

28、DPTR) + 1例如,(30H)=22H,執(zhí)行 INC 30H 后(30H)=23H。單片機原理及其應用揚州大學517減減1指令指令(p43)DEC A;(A) (A) 1DEC Rn;(Rn) (Rn) 1DEC direct;(direct) (direct) 1DEC Ri; (Ri) (Ri) 1例如,(R0)=30H,(30H)=22H,執(zhí)行 DEC R0 后,(30H)=21H。單片機原理及其應用揚州大學528十進制調整指令十進制調整指令(p42)DA A ;把A中按二進制相加的結果調整成按BCD碼相加的結果。指令不能直接用于16進制數(shù)轉為BCD數(shù),必須跟在加法指令后使用。 二進

29、制數(shù)的加法運算原則并不能適用于十進制數(shù)的加法運算,有時會產(chǎn)生錯誤結果。例如:(a)3+6=9 0011+0101=1001 運算結果正確(b)7+8=15 0111+1000=1111 運算結果不正確(c)9+8=17 1001+1000=00001 C=1 結果不正確 二進制數(shù)加法指令不能完全適用于BCD碼十進制數(shù)的加法運算,對結果作有條件的修正 十進制調整單片機原理及其應用揚州大學53修正方法應是:修正方法應是:(a a)累加器低)累加器低4 4位大于位大于9 9或或Ac=1Ac=1,進行低,進行低4 4位加位加6 6修正。修正。(b b)累加器高)累加器高4 4位大于位大于9 9或或Cy

30、=1Cy=1,進行高,進行高4 4位加位加6 6修正。修正。(c c)累加器高)累加器高4 4位為位為9 9,低,低4 4位大于位大于9 9,則高,則高4 4位和低位和低4 4位分位分 別加別加6 6修正。修正。例如,(A)=65H(BCD),(B)=78H(BCD),C=0,執(zhí)行下列語句ADD A,BDAA后,A=43H(BCD),C=1。單片機原理及其應用揚州大學543.3.4 邏輯運算與循環(huán)類指令邏輯運算與循環(huán)類指令(p44)1“與與”操作指令操作指令 2“或或”操作指令操作指令3“異或異或”操作指令操作指令4求反與清除指令求反與清除指令5循環(huán)指令循環(huán)指令單片機原理及其應用揚州大學553

31、.3.4 邏輯運算與循環(huán)類指令邏輯運算與循環(huán)類指令(p44)1“與與”操作指令操作指令 六條邏輯與指令六條邏輯與指令 ANL A,Rn ; (A) (A)(Rn) ANL A, direct ; (A) (A)(direct) ANL A, Ri ; (A) (A)(Ri) ANL A, #data ; (A) (A)#data ANL direct, A ; (direct) (direct)(A) ANL direct, #data ; (direct) (direct)#data “與邏輯”:全1為1,有0為0。 ANL 常用于屏蔽某些不用的位,清零某些位。單片機原理及其應用揚州大學56

32、3.3.4 邏輯運算與循環(huán)類指令邏輯運算與循環(huán)類指令2“或或”操作指令操作指令六條或指令六條或指令 ORL A,Rn ; (A) (A)(Rn) ORL A, direct ; (A) (A)(direct) ORL A, Ri ; (A) (A)(Ri) ORL A, #data ; (A) (A)#data ORL direct, A ; (direct) (direct)(A) ORL direct, #data ; (direct) (direct)#data “或邏輯”:有1為1,全0為0。 ORL 可用于對某些位置1。單片機原理及其應用揚州大學573.3.4 邏輯運算與循環(huán)類指令邏

33、輯運算與循環(huán)類指令3“異或異或”操作指令操作指令六條邏輯異或指令 XRL A, Rn ; (A) (A) (Rn) XRL A, direct ; (A) (A) (direct) XRL A, Ri ; (A) (A) (Ri) XRL A, #data ; (A) (A) #data XRL direct, A ; (direct) (direct) (A) XRL direct, #data ; (direct) (direct) #data “異或邏輯”:相同為0,不同為1。用XRL可對某些位取反:用“1”與那些位作異或運算。單片機原理及其應用揚州大學583.3.4 邏輯運算與循環(huán)類指

34、令邏輯運算與循環(huán)類指令(p45)4循環(huán)指令循環(huán)指令四條循環(huán)移位指令 RL A ; A循環(huán)左移 RR A ; A循環(huán)右移 RLC A ; 帶進位位的循環(huán)左移 RRC A ; 帶進位位的循環(huán)右移 單片機原理及其應用揚州大學593.3.4 邏輯運算與循環(huán)類指令邏輯運算與循環(huán)類指令5求反與清除指令求反與清除指令(p45)取反指令 CPL A ;(A ) /(A)清零指令 CLR A ;(A) 0返回本節(jié)單片機原理及其應用揚州大學603.3.5 程序轉移類指令程序轉移類指令1無條件轉移指令無條件轉移指令(p46)l 絕對轉移指令 (范圍:2k字節(jié)) AJMP addr11 ;PC100 addr11,P

35、C1511 不變。 要求目的地址與AJMP指令下條指令地址高5位相同。l 長轉移指令 (范圍:64k字節(jié)) LJMP addr16;PC addr16l 短(相對)轉移指令 (范圍:-128127字節(jié)) SJMP rel;PC ( PC) + 2 + rell 間接轉移指令 JMPA+DPTR ;PC (A) +( DPTR) 轉移地址動態(tài)決定,常用于多分支選擇轉移。單片機原理及其應用揚州大學61例: 按A中的數(shù)(0,2,4,6)決定程序轉移方向。SEL-JP: MOV DPTR,#JMP-TBL JMP A+DPTR JMP-TBL: AJMP LABEL0 ;(A=0) AJMP LABE

36、L1 ;(A=2) AJMP LABEL2 ;(A=4) AJMP LABEL3 ;(A=6)單片機原理及其應用揚州大學622條件轉移指令條件轉移指令(共共8條條)(p46)l l 累加器為零(非零)轉移指令l 兩數(shù)不等轉移指令l 減1非零轉移指令原則原則:滿足條件則轉移滿足條件則轉移,不滿足條件則向下執(zhí)行不滿足條件則向下執(zhí)行3.3.5 程序轉移類指令程序轉移類指令單片機原理及其應用揚州大學63一、累加器為零(非零)轉移指令一、累加器為零(非零)轉移指令JZ rel ; (A) = 0 轉移: PC (PC)+2+rel ; (A) 0 向下執(zhí)行:PC (PC)+2JNZ rel ; (A)

37、0 轉移: PC (PC)+2+rel ; (A)=0 向下執(zhí)行: PC (PC)+23.3.5 程序轉移類指令程序轉移類指令單片機原理及其應用揚州大學64二、二、兩數(shù)不等轉移指令兩數(shù)不等轉移指令CJNE A, direct, rel ; (A)=(direct) 向下執(zhí)行:(PC) (PC)+3并C 0 ; (A)(direct) 轉移:(PC) (PC)+3+rel,并C 0 ; (A)(direct) 轉移:(PC) (PC)+3+rel,并C 1CJNE A, #data, rel ; (A)=data 向下執(zhí)行:(PC) (PC)+3并C 0 ; (A)data 轉移:(PC) (P

38、C)+3+rel,并C 0 ; (A)data 轉移:(PC) (PC)+3+rel,并C 1 3.3.5 程序轉移類指令程序轉移類指令單片機原理及其應用揚州大學65CJNE Rn, #data, rel ; (Rn)=data 向下執(zhí)行:(PC) (PC)+3并C 0 ; (Rn)data 轉移:(PC) (PC)+3+rel,并C 0 ; (Rn)data 轉移:(PC) (PC)+3+rel,并C 1CJNE Ri, #data, rel ; (Ri)=data 向下執(zhí)行:(PC) (PC)+3并C 0 ; (Ri)data 轉移:(PC) (PC)+3+rel,并C 0 ; (Ri)d

39、ata 轉移:(PC) (PC)+3+rel,并C 13.3.5 程序轉移類指令程序轉移類指令單片機原理及其應用揚州大學66三、三、減減1非零轉移指令非零轉移指令DJNZ Rn, rel ; (Rn) (Rn)-1, ; (a)若(Rn)0 轉移:(PC) (PC)+2+rel ; (b) 若(Rn)=0 向下執(zhí)行:(PC) (PC)+2DJNZ direct, rel ; (direct) (direct)-1。 ; (a)若(direct)0 轉移:(PC) (PC)+2+rel ; (b) (direct)=0 向下執(zhí)行: (PC) (PC)+2 3.3.5 程序轉移類指令程序轉移類指令

40、單片機原理及其應用揚州大學67DJNZ Rn, relDJNZ Rn, rel 可實現(xiàn)軟件延時。AGIN: NOPAGIN: NOP NOP NOP DJNZ R2, AGIN DJNZ R2, AGIN RET RET3.3.5 程序轉移類指令程序轉移類指令返回本節(jié)Main: MOV R2,30H ACALL AGIN 單片機原理及其應用揚州大學683.3.6 調用子程序及返回指令調用子程序及返回指令(p46)1調用子程序指令調用子程序指令LCALL addr16 (長調用:64k) ; (PC) (PC) + 3, (SP) (SP) + 1, (SP) (PC)70; (SP) (SP)

41、 + 1, (SP) (PC)158, (PC) addr16ACALL addr11 (絕對調用: 2k);PC (PC) + 2, (SP) (SP) + 1, (SP) (PC)70; (SP) ( SP) + 1,(SP) (PC)158,PC100addr11,PC1511 不變。 子程序首地址距調用指令下一條指令地址必須在2k字節(jié)范圍內。單片機原理及其應用揚州大學692返回指令返回指令RET ;PC158 (SP), (SP) (SP)1 ;PC70 (SP) , (SP) (SP)1RETI ;PC158(SP), (SP) (SP)1 ;PC70 (SP), (SP) (SP)

42、1 通知中斷系統(tǒng),當前中斷服務程序已結束。返回本節(jié)單片機原理及其應用揚州大學703.3.7 位操作指令位操作指令(p48)1位數(shù)據(jù)傳送指令位數(shù)據(jù)傳送指令 MOV C,bit;C (bit) MOV bit,C;bit C2位狀態(tài)修改指令位狀態(tài)修改指令 CLRC;C 0 CLRbit;bit 0 CPL C;C /C CPL bit;bit / (bit) SETBC;C 1 SETBbit;bit 1單片機原理及其應用揚州大學713位邏輯運算指令位邏輯運算指令ANL C,bit;CC (bit)ANL C,/bit;CC (/bit)ORL C,bit;CC (bit)ORL C,/bit;C

43、C (/bit) 單片機原理及其應用揚州大學724位轉移指令位轉移指令(5條條)(p49)功能:分別檢測指定位是1還是0,若條件符合,則CPU轉向指定的目標地址去執(zhí)行程序;否則,順序執(zhí)行下條指令。 JCrel; 若 C = 1, 則轉移: PC (PC) + 2 + rel;否則程序順序執(zhí)行。JNCrel; 若C = 0, 則轉移: PC (PC) + 2 + rel;否則程序順序執(zhí)行。單片機原理及其應用揚州大學73JBbit,rel ; 若(bit) = 1, 則轉移: PC (PC) + 3 + rel;否則程序順序執(zhí)行。JNBbit,rel; 若(bit) = 0, 則轉移: PC (PC) + 3 + rel ;否則程序順序執(zhí)行。JBCbit,rel; 若(bit) = 1, 則(bit) 0;轉移: PC (PC) + 3 + rel,否則 程序順序執(zhí)行。返回本節(jié)單片機原理及其應用揚州大學743.3.8 空操作指令空操作指令NOP ;PC (PC) + 1 這是一條單字節(jié)指令。執(zhí)行時,不作任何操作(即空操作),僅將程序計數(shù)器PC的內容加1,使CPU指向下一條指令繼續(xù)執(zhí)行程序。這條指令常用來產(chǎn)生一個機器周期的時間延遲。例: 從P2.7 輸出負脈沖,脈寬5個機器周期。CLR P2.7NOPNOPNOPNOPSETB

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論