




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)1單片機(jī)原理接口及其應(yīng)用(Principle and Application of Single Chip Microcomputer)單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)2第1章 概述第2章 MCS-51單片機(jī)硬件結(jié)構(gòu)第3章 MCS-51尋址方式和指令系統(tǒng)第4章 MCS-51匯編程序設(shè)計(jì)第5章 中斷系統(tǒng)第6章 定時(shí)器/計(jì)數(shù)器及串行口第7章 存儲(chǔ)器擴(kuò)展第8章 接口電路擴(kuò)展第9章 應(yīng)用舉例單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)3第3章 MCS-51尋址方式和指令系統(tǒng)重點(diǎn):掌握MCS-51的尋址方式和主要指令的功能、格式、使用。 3.1 MCS-51指令系統(tǒng)概指令系統(tǒng)概述述3.2 MCS-51
2、尋址方式尋址方式3.3 指令系統(tǒng)指令系統(tǒng)分類介紹分類介紹 單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)43.1 MCS-51指令系統(tǒng)概述指令系統(tǒng)概述單片機(jī)所能執(zhí)行的指令集合稱為指令系統(tǒng)。MCS-51的基本指令共111條,按指令所占的字節(jié)來分: (1) 單字節(jié)指令49條; (2) 雙字節(jié)指令45條; (3) 三字節(jié)指令17條。按指令的執(zhí)行時(shí)間來分: (1)單機(jī)器周期(12個(gè)時(shí)鐘振蕩周期)的指令64條; (2)二機(jī)器周期(24個(gè)時(shí)鐘振蕩周期)的指令45條; (3)只有乘、除兩條指令的執(zhí)行時(shí)間為4個(gè)機(jī)器周期(48個(gè)時(shí)鐘振蕩周期)。返回本章單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)5指令格式指令格式在MCS-51指令中,指令主要由操作
3、碼、操作數(shù)組成。指令具有以下功能:(1)操作碼指明執(zhí)行什么性質(zhì)和類型的操作。例 如,數(shù)的傳送、加法、減法等。(2)操作數(shù)指明參與操作的數(shù)本身或者是其所在的 地址。(3)指定操作結(jié)果存放的地址。指令一般格式:指令一般格式:標(biāo)號(hào):操作碼助記符 (目的操作數(shù)),(源操作數(shù)) ;注釋單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)6返回本節(jié)單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)73.2 尋址方式(尋址方式(7種)種)(p34) 3.2.1 寄存器尋址寄存器尋址 3.2.2 直接尋址直接尋址 3.2.3 寄存器間接尋址寄存器間接尋址 3.2.4 立即尋址立即尋址 3.2.5 變址尋址變址尋址 3.2.6 相對(duì)尋址相對(duì)尋址 3.2.7 位
4、尋址位尋址返回本章單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)83.2.1 寄存器尋址寄存器尋址 以通用寄存器的內(nèi)容為操作數(shù)的尋址方式。通用寄存器指A、B 、DPTR以及R0R7(當(dāng)前工作寄存器組)。 例如: CLR A;A0 INC DPTR;DPTR(DPTR)+1 ADDA,# 20H;A(A) + #20H 單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)93.2.2 直接尋址直接尋址 指令中直接給出操作數(shù)地址的尋址方式,能進(jìn)行直接尋址的存儲(chǔ)空間有SFR寄存器和內(nèi)部數(shù)據(jù)RAM。例如: MOVPSW,# 20H;PSW#20H PSW為直接尋址寄存器的符號(hào)地址。 MOVA,30H;A(30H) 30H為直接給出的內(nèi)部RAM的地
5、址。MOVA,P0;讀P0口引腳MOVA,80H 直接尋址方式是訪問特殊功能寄存器的唯一尋址方式。單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)103.2.3 寄存器間接尋址寄存器間接尋址 以寄存器中內(nèi)容為地址,以該地址中內(nèi)容為操作數(shù)的尋址方式。寄存器間接尋址的存儲(chǔ)器空間包括內(nèi)部數(shù)據(jù)RAM和外部數(shù)據(jù)RAM。 能用于寄存器間接尋址的寄存器有R0,R1,DPTR,SP。其中R0、R1必須是當(dāng)前工作寄存器組中的寄存器。SP僅用于堆棧操作。單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)11在寄存器的名稱前面加前綴標(biāo)志“”表示間接尋址MOV AMOV A,Ri Ri ;i=0i=0或或1 1MOVX AMOVX A,DPTRDPTR單片機(jī)原理
6、及其應(yīng)用揚(yáng)州大學(xué)12例如: MOV R0,A ;內(nèi)部RAM (R0)(A),其指令操作過程示意圖如圖3-1所示。片內(nèi)RAM30HR034HA30H34H圖3-1 MOV R0,A間接尋址示意圖單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)13又如: MOVX A,R1;A外部RAM (P2R1)其指令操作過程示意圖如圖3-2所示。片外RAM34HP245HA3410H45H10HR1圖3-2 MOVX A,R1 間接尋址示意圖 單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)14再如: MOVX DPTR,A;外部RAM (DPTR)(A) 其指令操作過程示意圖如圖3-3所示。片外RAM2000HDPTR30HA2000H30H圖3-
7、3 MOVX DPTR,A 間接尋址示意圖單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)15 指令中直接給出操作數(shù)的尋址方式。立即操作數(shù)用前面加有#號(hào)的8位或16位數(shù)來表示。例如: MOVA,# 60H ;A#60H MOVDPTR,# 3400H ;DPTR#3400H MOV30H,# 40H;30H單元#40H 3.2.4 立即尋址方式立即尋址方式單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)163.2.5 變址尋址變址尋址 變址尋址是由基址寄存器(DPTR、PC)加變址寄存器(A)形成的尋址方式。它只能對(duì)程序存儲(chǔ)器中數(shù)據(jù)進(jìn)行操作。 (變址尋址只有讀操作而無寫操作) 在指令符號(hào)上采用MOVC的形式。例如:MOVC A,A+DP
8、TR ;A(A)+(DPTR)又如: MOVC A, A+PC ;A(A)+(PC) 這條指令與上條指令不同的是,基址寄存器是PC (當(dāng)前PC值)。 JMP ADPTR ;PC (A)+(DPTR)17圖3 -4 變址尋址示意圖程序存儲(chǔ)器2000HDPTR64H(10H)A2010H64H10H2000HMOVC A,A+DPTRA=10H DPTR=2000HA=64H單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)183.2.6 位尋址位尋址 位尋址只能對(duì)有位地址的單元作位尋址操作。 位尋址其實(shí)是一種直接尋址方式,不過其地址是位地址。 例如:SETB 10H ;將10H位置1。 若22H單元中存放著數(shù)據(jù)40H,
9、22H單元D0位的位地址即10H,執(zhí)行上述指令后,(22H)=41H。 又如:MOV 32H,C ;32H進(jìn)位位C ORL C ,32H ;C(C)(32H)返回本節(jié)單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)19位尋址范圍包括:(1)內(nèi)部RAM中的位尋址區(qū)。位有兩種表示方法: a.位地址: 40H; b.單元地址加上位:(28H).0,指的是28H單元中的最低位。它們是等價(jià)的。(2)特殊功能寄存器中的可尋址位 可尋址位在指令中有4種表示方法: a.特殊功能寄存器符號(hào)加位數(shù)。如: PSW.5。 b.直接使用位地址。PSW.5的位地址為0D5H。 c.位名稱。PSW.5是F0標(biāo)志位,可使用F0表示該位。 d.單元
10、地址加位數(shù)。例如 :(0D0H).5。單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)203.2.7 相對(duì)尋址相對(duì)尋址 相對(duì)尋址用于修改PC值,主要用于實(shí)現(xiàn)程序的分支轉(zhuǎn)移。 以當(dāng)前程序計(jì)數(shù)器PC (取指令后)的內(nèi)容為基礎(chǔ),加上指令中給出的一字節(jié)補(bǔ)碼數(shù)(偏移量rel)形成新的PC值的尋址方式。 目的地址 = 轉(zhuǎn)移指令所在的地址 + 轉(zhuǎn)移指令字節(jié)數(shù)+ rel = 當(dāng)前PC值 rel 21程序存儲(chǔ)器(2000H)200AHSJMP200AH08H2000H+208HPC2000H圖3-5 相對(duì)尋址示意圖目的地址當(dāng)前目的地址當(dāng)前PC值值 rel 例如,SJMP 08H ;PC(PC)+2+08H單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)2
11、23.3 指令系統(tǒng)分類介紹指令系統(tǒng)分類介紹按指令所占的字節(jié)來分: 49條單字節(jié)指令 45條雙字節(jié)指令 17條3字節(jié)指令組成按指令的執(zhí)行時(shí)間來分(主頻取12MHz時(shí)): 64條指令的執(zhí)行時(shí)間為1個(gè)機(jī)器周期,1us 45條指令的執(zhí)行時(shí)間為2個(gè)機(jī)器周期, 2us 2條乘、除法運(yùn)算指令的執(zhí)行時(shí)間為4個(gè)機(jī)器周期,4us 單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)23 3.3.1 指令描述符號(hào)介紹指令描述符號(hào)介紹 3.3.2 數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令 3.3.3 算術(shù)運(yùn)算類指令算術(shù)運(yùn)算類指令 3.3.4 邏輯運(yùn)算與循環(huán)類指令邏輯運(yùn)算與循環(huán)類指令 3.3.5 程序轉(zhuǎn)移類指令程序轉(zhuǎn)移類指令 3.3.6 調(diào)用子程序及返回指
12、令調(diào)用子程序及返回指令 3.3.7 位操作指令位操作指令 3.3.8 空操作指令空操作指令返回本章單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)243.3.1 指令描述符號(hào)介紹指令描述符號(hào)介紹(p33)Rn當(dāng)前選中的寄存器區(qū)中的8個(gè)工作寄存器 R0R7(n=07)。Ri當(dāng)前選中的寄存器區(qū)中的2個(gè)工作寄存器 R0、R1(i=0,1)。direct8位內(nèi)部數(shù)據(jù)存儲(chǔ)器單元的地址。#data包含在指令中的8位常數(shù)。#data16包含在指令中的16位常數(shù)。addr1616位目的地址。addr1111位目的地址。單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)25rel8位帶符號(hào)的偏移字節(jié),簡(jiǎn)稱偏移量。DPTR數(shù)據(jù)指針,可用作16位地址寄存器。b
13、it內(nèi)部RAM或?qū)S眉拇嫫髦械闹苯訉ぶ肺?。A累加器。B專用寄存器,用于乘法和除法指令中。C進(jìn)位標(biāo)志(進(jìn)位位),或布爾處理機(jī)中的位累加 器。單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)26間址寄存器或基址寄存器的前綴, 如 Ri,DPTR。/ 位操作數(shù)的前綴,表示對(duì)該位操作數(shù)取反, 如 /bit。(X)X中的內(nèi)容((X))由X尋址的單元中的內(nèi)容。 箭頭左邊的內(nèi)容被箭頭右邊的內(nèi)容所代替。返回本節(jié)單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)273.3.2 數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令 數(shù)據(jù)傳送類指令共28條,將源操作數(shù)復(fù)制到目的操作數(shù)。指令執(zhí)行后,源操作數(shù)不變,目的操作數(shù)被源操作數(shù)取代。指令執(zhí)行后對(duì)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單片機(jī)片內(nèi)數(shù)據(jù)傳送圖單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)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 單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)302以Rn為目的操作數(shù)MOV Rn,A;(Rn) (A)MOV Rn,direct;(Rn) (direct)MOV Rn,#data;(Rn) #dataMOV R4, AMOV R2, 25HMOV R5, #0FH單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)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)單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)324以間接地址為目的操作數(shù)MOV Ri,A;((Ri)) (A)MOV Ri,direct ; ((Ri)) (direct)MOV Ri,#data; ((Ri)) #data間接尋址單元在程序運(yùn)行時(shí)確定。例:設(shè)(30H)=6FH,(R1)=40H,執(zhí)行MOV R1,30H后,30H單元中數(shù)據(jù)取出送入R1間接尋址的40H單元,(40H)=6FH單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)335以以DPTR為目的操作數(shù)為目的操作數(shù)MOV DPTR,#data16 ;(DPTR) #data16例如執(zhí)行 M
17、OV DPTR,#2000H 后,(DPTR)= 2000H。 單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)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) 單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)357讀程序存儲(chǔ)器(查表)讀程序存儲(chǔ)器(查表)(p40)MOVC A,A+DPTR;(A) (A)+(DPTR)MOVC A,A+PC;(PC) (PC)+1, (A) (A)+(PC);例如已知(A)=30H,(DPTR)=3000H,程序存儲(chǔ)器單元(303
18、0H)=50H,執(zhí)行MOVC A, A+DPTR后,(A)=50H。例:查表:設(shè)(A)=03, 按(A)2的值查表,結(jié)果是什么?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值單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)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單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)379堆棧操作 堆棧是在片內(nèi)RAM中按“先進(jìn)后出,后進(jìn)先出”原則設(shè)置的專用存儲(chǔ)區(qū)。數(shù)據(jù)的進(jìn)棧出棧由指針SP統(tǒng)一管理。堆棧的操作有如下兩條專用指令: PUSH direct ;(SP)(SP)+1,(SP)(direct) POP direct ;direct(SP),(SP) (SP)1例: 設(shè)中斷時(shí),(SP)=09h, (DPTR)=1034h, 保護(hù)DPTR進(jìn)棧。PUSH DPL PUSH DPH 則 (0AH)=34H, (0BH)=10H, (SP)=0BH單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)38片內(nèi)RAM30H11H10HSP片內(nèi)RAM5
20、0H40H11H10HSP40H30H片內(nèi)RAM50H40H11H10H50HSP30H片內(nèi)RAM40H11H10H34HSP30H34H34H執(zhí)行前執(zhí)行前執(zhí)行前PUSH指令后執(zhí)行POP指令后指令PUSH操作示意圖指令POP操作示意圖PUSH 40HPOP 30H單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)39【例3.1】 將片內(nèi)RAM 30H單元與40H單元中的內(nèi)容互換。方法1(直接地址傳送法): MOV31H,30H MOV30H,40H MOV40H,31H SJMP$方法2(間接地址傳送法): MOVR0,#40H MOVR1,#30H MOVA,R0 MOVB,R1 MOVR1,A MOVR0,B S
21、JMP$單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)40方法3(字節(jié)交換傳送法): MOVA,30H XCHA,40H MOV30H,A SJMP$方法4(堆棧傳送法): PUSH30H PUSH40H POP30H POP40H SJMP$返回本節(jié)單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)413.3.3 算術(shù)運(yùn)算類指令算術(shù)運(yùn)算類指令(p40)算術(shù)運(yùn)算算術(shù)運(yùn)算指令執(zhí)行后對(duì) CY、AC、OV 有影響(除INC和DEC指令)。1加法指令加法指令A(yù)DD A,Rn;(A) (A) +( Rn)ADD A,direct;(A)( A) +(direct)ADD A,Ri;(A) (A) + (Ri)ADD A,#data;(A) (A)
22、 + #data單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)42 使用加法指令時(shí),要注意累加器A的運(yùn)算結(jié)果對(duì)各個(gè)標(biāo)志位的影響:(1)如果位7有進(jìn)位,則置“1”進(jìn)位標(biāo)志Cy,否則清“0” Cy。(2)如果位3有進(jìn)位,置“1”輔助進(jìn)位標(biāo)志Ac,否則 清“0” Ac(Ac為PSW寄存器中的一位)。(3)如果位6有進(jìn)位,而位7沒有進(jìn)位,或者位7有進(jìn)位,而位6沒有,則溢出標(biāo)志位OV置“1”,否則清“0”O(jiān)V。 溢出標(biāo)志位OV的狀態(tài),只有在帶符號(hào)數(shù)加法運(yùn)算時(shí)才有意義。當(dāng)兩個(gè)帶符號(hào)數(shù)相加時(shí),OV=1,表示加法運(yùn)算超出了累加器A所能表示的帶符號(hào)數(shù)的有效范圍。單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)43例: (A)=53H,(R0)=FCH,
23、執(zhí)行指令 ADD A,R0結(jié)果為: (A)=4FH,Cy=1,Ac=0,OV=0,P=1注意:上面的運(yùn)算中,由于位6和位7同時(shí)有進(jìn)位,所 以標(biāo)志位OV=0。例: (A)=85H,(R0)=20H,(20H)=AFH,執(zhí)行指令: ADD A,R0 結(jié)果為:(A)=34H,Cy=1,Ac=1,OV=1,P=1注意:由于位7有進(jìn)位,而位6無進(jìn)位,所以標(biāo)志位 OV=1 單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)442帶進(jìn)位加指令帶進(jìn)位加指令A(yù)DDC 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)寄存器中的進(jìn)位位C。 例如,設(shè)(A)=20H,(R0)=21H,C=1,執(zhí)行指令 ADDC ,R0后,(A)=42H。 單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)45【例【例3.2】 試把存放在試把存放在 R1R2 和和 R3R4 中的兩個(gè)中的兩個(gè)16位數(shù)相加,結(jié)果存于位數(shù)相加,結(jié)果存于 R5R6 中。中。解:參考程序如下:解:參考程序如下: MOV A,R2;取第一個(gè)數(shù)的低8位 ADD A,R4;兩數(shù)的低8位相加 MOV R6,A;保存和的低8位 MOV A,R1;取第一個(gè)數(shù)的高8位 ADDC A,R3;兩數(shù)的高8位相加
25、,并把低8位 相加時(shí)的進(jìn)位位加進(jìn)來 MOV R5,A ;把相加的高8位存入R5寄存器中 SJMP $ 返回本節(jié)單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)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 例如,設(shè)(A)=39H,(R0)=20H,(20H)=32H,C=1,執(zhí)行指令 SUBB ,R0 后,(A)=06H。 一般在做減法時(shí),要先將C清零。單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)47例:多
26、字節(jié)減法 被減數(shù)和結(jié)果放在由R0間址的單元,減數(shù)放在由R1間址的單元,字節(jié)數(shù)存于R2中。SUBSTR: CLR CSUBS1: MOV A, R0;被減數(shù) SUBB A, R1;被減數(shù)-減數(shù) MOV R0, A;存結(jié)果 INC R0;被減數(shù)地址+1 INC R1;減數(shù)地址+1 DJNZ R2, SUBS1單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)484乘法指令乘法指令(p43)MUL AB;(B)(A) (A)(B) A和B中各存放一個(gè)8位無符號(hào)數(shù),指令執(zhí)行后,16位乘積的高8位在B中,低8位存A中。 例如,(A)=30H,(B)=60H,執(zhí)行 MUL AB 后,(A)=00H,(B)=12H。單片機(jī)原理及其
27、應(yīng)用揚(yáng)州大學(xué)49 5除法指令除法指令 DIV AB ; (A)(B)商在A中,余數(shù)在B中 A和B中各存放一個(gè)8位無符號(hào)數(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。單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)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。單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)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。單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)528十進(jìn)制調(diào)整指令十進(jìn)制調(diào)整指令(p42)DA A ;把A中按二進(jìn)制相加的結(jié)果調(diào)整成按BCD碼相加的結(jié)果。指令不能直接用于16進(jìn)制數(shù)轉(zhuǎn)為BCD數(shù),必須跟在加法指令后使用。 二進(jìn)
29、制數(shù)的加法運(yùn)算原則并不能適用于十進(jìn)制數(shù)的加法運(yùn)算,有時(shí)會(huì)產(chǎn)生錯(cuò)誤結(jié)果。例如:(a)3+6=9 0011+0101=1001 運(yùn)算結(jié)果正確(b)7+8=15 0111+1000=1111 運(yùn)算結(jié)果不正確(c)9+8=17 1001+1000=00001 C=1 結(jié)果不正確 二進(jìn)制數(shù)加法指令不能完全適用于BCD碼十進(jìn)制數(shù)的加法運(yùn)算,對(duì)結(jié)果作有條件的修正 十進(jìn)制調(diào)整單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)53修正方法應(yīng)是:修正方法應(yīng)是:(a a)累加器低)累加器低4 4位大于位大于9 9或或Ac=1Ac=1,進(jìn)行低,進(jìn)行低4 4位加位加6 6修正。修正。(b b)累加器高)累加器高4 4位大于位大于9 9或或Cy
30、=1Cy=1,進(jìn)行高,進(jìn)行高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。單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)543.3.4 邏輯運(yùn)算與循環(huán)類指令邏輯運(yùn)算與循環(huán)類指令(p44)1“與與”操作指令操作指令 2“或或”操作指令操作指令3“異或異或”操作指令操作指令4求反與清除指令求反與清除指令5循環(huán)指令循環(huán)指令單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)553
31、.3.4 邏輯運(yùn)算與循環(huán)類指令邏輯運(yù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 常用于屏蔽某些不用的位,清零某些位。單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)56
32、3.3.4 邏輯運(yùn)算與循環(huán)類指令邏輯運(yù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 可用于對(duì)某些位置1。單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)573.3.4 邏輯運(yùn)算與循環(huán)類指令邏
33、輯運(yùn)算與循環(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可對(duì)某些位取反:用“1”與那些位作異或運(yùn)算。單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)583.3.4 邏輯運(yùn)算與循環(huán)類指
34、令邏輯運(yùn)算與循環(huán)類指令(p45)4循環(huán)指令循環(huán)指令四條循環(huán)移位指令 RL A ; A循環(huán)左移 RR A ; A循環(huán)右移 RLC A ; 帶進(jìn)位位的循環(huán)左移 RRC A ; 帶進(jìn)位位的循環(huán)右移 單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)593.3.4 邏輯運(yùn)算與循環(huán)類指令邏輯運(yùn)算與循環(huán)類指令5求反與清除指令求反與清除指令(p45)取反指令 CPL A ;(A ) /(A)清零指令 CLR A ;(A) 0返回本節(jié)單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)603.3.5 程序轉(zhuǎn)移類指令程序轉(zhuǎn)移類指令1無條件轉(zhuǎn)移指令無條件轉(zhuǎn)移指令(p46)l 絕對(duì)轉(zhuǎn)移指令 (范圍:2k字節(jié)) AJMP addr11 ;PC100 addr11,P
35、C1511 不變。 要求目的地址與AJMP指令下條指令地址高5位相同。l 長(zhǎng)轉(zhuǎn)移指令 (范圍:64k字節(jié)) LJMP addr16;PC addr16l 短(相對(duì))轉(zhuǎn)移指令 (范圍:-128127字節(jié)) SJMP rel;PC ( PC) + 2 + rell 間接轉(zhuǎn)移指令 JMPA+DPTR ;PC (A) +( DPTR) 轉(zhuǎn)移地址動(dòng)態(tài)決定,常用于多分支選擇轉(zhuǎn)移。單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)61例: 按A中的數(shù)(0,2,4,6)決定程序轉(zhuǎn)移方向。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)單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)622條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令(共共8條條)(p46)l l 累加器為零(非零)轉(zhuǎn)移指令l 兩數(shù)不等轉(zhuǎn)移指令l 減1非零轉(zhuǎn)移指令原則原則:滿足條件則轉(zhuǎn)移滿足條件則轉(zhuǎn)移,不滿足條件則向下執(zhí)行不滿足條件則向下執(zhí)行3.3.5 程序轉(zhuǎn)移類指令程序轉(zhuǎn)移類指令單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)63一、累加器為零(非零)轉(zhuǎn)移指令一、累加器為零(非零)轉(zhuǎn)移指令JZ rel ; (A) = 0 轉(zhuǎn)移: PC (PC)+2+rel ; (A) 0 向下執(zhí)行:PC (PC)+2JNZ rel ; (A)
37、0 轉(zhuǎn)移: PC (PC)+2+rel ; (A)=0 向下執(zhí)行: PC (PC)+23.3.5 程序轉(zhuǎn)移類指令程序轉(zhuǎn)移類指令單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)64二、二、兩數(shù)不等轉(zhuǎn)移指令兩數(shù)不等轉(zhuǎn)移指令CJNE A, direct, rel ; (A)=(direct) 向下執(zhí)行:(PC) (PC)+3并C 0 ; (A)(direct) 轉(zhuǎn)移:(PC) (PC)+3+rel,并C 0 ; (A)(direct) 轉(zhuǎn)移:(PC) (PC)+3+rel,并C 1CJNE A, #data, rel ; (A)=data 向下執(zhí)行:(PC) (PC)+3并C 0 ; (A)data 轉(zhuǎn)移:(PC) (P
38、C)+3+rel,并C 0 ; (A)data 轉(zhuǎn)移:(PC) (PC)+3+rel,并C 1 3.3.5 程序轉(zhuǎn)移類指令程序轉(zhuǎn)移類指令單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)65CJNE Rn, #data, rel ; (Rn)=data 向下執(zhí)行:(PC) (PC)+3并C 0 ; (Rn)data 轉(zhuǎn)移:(PC) (PC)+3+rel,并C 0 ; (Rn)data 轉(zhuǎn)移:(PC) (PC)+3+rel,并C 1CJNE Ri, #data, rel ; (Ri)=data 向下執(zhí)行:(PC) (PC)+3并C 0 ; (Ri)data 轉(zhuǎn)移:(PC) (PC)+3+rel,并C 0 ; (Ri)d
39、ata 轉(zhuǎn)移:(PC) (PC)+3+rel,并C 13.3.5 程序轉(zhuǎn)移類指令程序轉(zhuǎn)移類指令單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)66三、三、減減1非零轉(zhuǎn)移指令非零轉(zhuǎn)移指令DJNZ Rn, rel ; (Rn) (Rn)-1, ; (a)若(Rn)0 轉(zhuǎn)移:(PC) (PC)+2+rel ; (b) 若(Rn)=0 向下執(zhí)行:(PC) (PC)+2DJNZ direct, rel ; (direct) (direct)-1。 ; (a)若(direct)0 轉(zhuǎn)移:(PC) (PC)+2+rel ; (b) (direct)=0 向下執(zhí)行: (PC) (PC)+2 3.3.5 程序轉(zhuǎn)移類指令程序轉(zhuǎn)移類指令
40、單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)67DJNZ Rn, relDJNZ Rn, rel 可實(shí)現(xiàn)軟件延時(shí)。AGIN: NOPAGIN: NOP NOP NOP DJNZ R2, AGIN DJNZ R2, AGIN RET RET3.3.5 程序轉(zhuǎn)移類指令程序轉(zhuǎn)移類指令返回本節(jié)Main: MOV R2,30H ACALL AGIN 單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)683.3.6 調(diào)用子程序及返回指令調(diào)用子程序及返回指令(p46)1調(diào)用子程序指令調(diào)用子程序指令LCALL addr16 (長(zhǎng)調(diào)用:64k) ; (PC) (PC) + 3, (SP) (SP) + 1, (SP) (PC)70; (SP) (SP)
41、 + 1, (SP) (PC)158, (PC) addr16ACALL addr11 (絕對(duì)調(diào)用: 2k);PC (PC) + 2, (SP) (SP) + 1, (SP) (PC)70; (SP) ( SP) + 1,(SP) (PC)158,PC100addr11,PC1511 不變。 子程序首地址距調(diào)用指令下一條指令地址必須在2k字節(jié)范圍內(nèi)。單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)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),當(dāng)前中斷服務(wù)程序已結(jié)束。返回本節(jié)單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)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單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)713位邏輯運(yùn)算指令位邏輯運(yùn)算指令A(yù)NL C,bit;CC (bit)ANL C,/bit;CC (/bit)ORL C,bit;CC (bit)ORL C,/bit;C
43、C (/bit) 單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)724位轉(zhuǎn)移指令位轉(zhuǎn)移指令(5條條)(p49)功能:分別檢測(cè)指定位是1還是0,若條件符合,則CPU轉(zhuǎn)向指定的目標(biāo)地址去執(zhí)行程序;否則,順序執(zhí)行下條指令。 JCrel; 若 C = 1, 則轉(zhuǎn)移: PC (PC) + 2 + rel;否則程序順序執(zhí)行。JNCrel; 若C = 0, 則轉(zhuǎn)移: PC (PC) + 2 + rel;否則程序順序執(zhí)行。單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)73JBbit,rel ; 若(bit) = 1, 則轉(zhuǎn)移: PC (PC) + 3 + rel;否則程序順序執(zhí)行。JNBbit,rel; 若(bit) = 0, 則轉(zhuǎn)移: PC (PC) + 3 + rel ;否則程序順序執(zhí)行。JBCbit,rel; 若(bit) = 1, 則(bit) 0;轉(zhuǎn)移: PC (PC) + 3 + rel,否則 程序順序執(zhí)行。返回本節(jié)單片機(jī)原理及其應(yīng)用揚(yáng)州大學(xué)743.3.8 空操作指令空操作指令NOP ;PC (PC) + 1 這是一條單字節(jié)指令。執(zhí)行時(shí),不作任何操作(即空操作),僅將程序計(jì)數(shù)器PC的內(nèi)容加1,使CPU指向下一條指令繼續(xù)執(zhí)行程序。這條指令常用來產(chǎn)生一個(gè)機(jī)器周期的時(shí)間延遲。例: 從P2.7 輸出負(fù)脈沖,脈寬5個(gè)機(jī)器周期。CLR P2.7NOPNOPNOPNOPSETB
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國(guó)智慧高速公路行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及前景趨勢(shì)與投資分析研究報(bào)告(2024-2030)
- 健康知識(shí)普及課件
- 健康的生活-生物課件
- 2024年標(biāo)簽貼紙項(xiàng)目項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 營(yíng)銷全業(yè)務(wù)管控管理辦法
- 蚌埠市數(shù)據(jù)共享管理辦法
- 街道辦事處考勤管理辦法
- 西藏大學(xué)勤工儉學(xué)管理辦法
- 裝修與機(jī)電配合管理辦法
- 西咸新區(qū)自行車管理辦法
- 直流屏檢修作業(yè)指導(dǎo)書(word文檔)
- YY/T 1293.2-2022接觸性創(chuàng)面敷料第2部分:聚氨酯泡沫敷料
- GB/T 19404-2003微波鐵氧體器件主要性能測(cè)量方法
- GB/T 18418-2017家用衛(wèi)生殺蟲用品電熱蚊香液
- GB/T 17456.2-2010球墨鑄鐵管外表面鋅涂層第2部分:帶終飾層的富鋅涂料涂層
- 政府用地項(xiàng)目用地報(bào)批流程
- 高校畢業(yè)生學(xué)籍檔案管理課件
- 老年人的生理變化特點(diǎn)課件
- 徐健順吟誦文集(.12.16)
- 臨床藥師用藥干預(yù)記錄表
- 特種設(shè)備管理“332211”工作法
評(píng)論
0/150
提交評(píng)論