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

下載本文檔

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

文檔簡介

1、1單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-22單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-23-1 指令格式指令格式標號:標號: 操作碼操作碼 操作數(shù)操作數(shù)1,操作數(shù)操作數(shù)2;注釋;注釋 例:例: LOOP: MOV A,#40H ;40H - A 標號:標號: 指令的符號地址。指令的符號地址。 18個字母或數(shù)字,并以冒號個字母或數(shù)字,并以冒號“:”結尾。結尾。 操作碼:操作碼:指明指令功能。指明指令功能。25個字母。個字母。MOV 傳送傳送ANL 邏輯與邏輯與MUL 乘法乘法RR 右循環(huán)右循環(huán)SJMP 短跳轉短跳轉RET

2、 子程序返回子程序返回例:例:3單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-23-1 指令格式指令格式標號:標號: 操作碼操作碼 操作數(shù)操作數(shù)1,操作數(shù)操作數(shù)2;注釋;注釋 例:例: LOOP: MOV A,#40H ;40H - A 操作數(shù):操作數(shù):指令操作對象數(shù)據(jù)、地址、寄存器名及約定符號。指令操作對象數(shù)據(jù)、地址、寄存器名及約定符號。 注釋行:注釋行:說明說明指令在程序中的作用。指令在程序中的作用。 操作碼操作碼和和操作數(shù)操作數(shù)是指令主體。是指令主體。4單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2二、二、 匯編時不產(chǎn)生機

3、器碼,僅供匯編識別控制。匯編時不產(chǎn)生機器碼,僅供匯編識別控制。 1. 1.定位偽指令定位偽指令 格式:格式: ORG mORG m 例例3-33-3 ORG 0000HORG 0000H START START: SJMP SJMP MAIN MAIN ORG ORG 0030H 0030H MAIN MAIN: MOV MOV SP SP,# 30H # 30H 以以STARTSTART開始的程序匯編為機器碼后從開始的程序匯編為機器碼后從00000000H H存貯單元開始連續(xù)存放。存貯單元開始連續(xù)存放。 2. 2.結束偽指令結束偽指令 格式:格式: ENDEND3-1 指令格式指令格式5單片

4、機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-23.3.定義字節(jié)偽指令定義字節(jié)偽指令 格式:格式: DB X1,X2,DB X1,X2,XnXn 例例3-43-4 ORG ORG 7F00H 7F00H DB DB 01110010B 01110010B,16H16H,4545,8 8,A A 匯編后存貯單元內容為:匯編后存貯單元內容為: (7 7F00HF00H)=72H=72H (7F01H7F01H)=16H=16H (7F02H7F02H)=2DH =2DH (7F03H7F03H)=38H=38H (7F04H7F04H)=41H =41H 4.4.定義字

5、偽指令定義字偽指令 格式:格式: DW YDW Y1 1,Y Y2 2,Y Yn n 3-1 指令格式指令格式二、二、 匯編時不產(chǎn)生機器碼,僅供匯編識別控制。匯編時不產(chǎn)生機器碼,僅供匯編識別控制。6單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-25定義空間偽指令:定義空間偽指令:DSDS 表達式表達式 例例3-63-6 ORGORG 0F00H 0F00H DS DS10H10H DB DB20H20H,40H40H 匯編后,從匯編后,從0 0F00HF00H開始,保留開始,保留1616個字節(jié)的內存單元,個字節(jié)的內存單元, 然后從然后從0 0F10HF10H開始

6、,按照下一條開始,按照下一條DBDB偽指令給內存單元賦值,偽指令給內存單元賦值, 得(得(0 0F10HF10H)=20H=20H,(,(0F11H0F11H)=40H=40H。3-1 指令格式指令格式二、二、 匯編時不產(chǎn)生機器碼,僅供匯編識別控制。匯編時不產(chǎn)生機器碼,僅供匯編識別控制。7單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2 例例3-73-7 ORG 8500H AA EQU R1 A10 EQU 10H DELAY EQU 87E6H MOV R0, A10 ;R0(10H) MOV A, AA ;A(R1) LCALL DELAY;調用起始地址為

7、調用起始地址為87E6H的子程序的子程序 END EQU賦值后,賦值后,AA為寄存器為寄存器R1,A10為為8位直接地址位直接地址10H, DELAY為為16位地址位地址87E6H。3-1 指令格式指令格式二、二、 匯編時不產(chǎn)生機器碼,僅供匯編識別控制。匯編時不產(chǎn)生機器碼,僅供匯編識別控制。6等值偽指令:等值偽指令:EQUEQU數(shù)據(jù)或匯編符數(shù)據(jù)或匯編符8單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-27數(shù)據(jù)地址賦值偽指令數(shù)據(jù)地址賦值偽指令 格式:格式: 字符名稱字符名稱 DATA DATA 表達式表達式 8位地址賦值偽指令位地址賦值偽指令 格式:字符名稱格式:字

8、符名稱 BITBIT 位地址位地址 3-1 指令格式指令格式二、二、 匯編時不產(chǎn)生機器碼,僅供匯編識別控制。匯編時不產(chǎn)生機器碼,僅供匯編識別控制。9單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2一一、立即尋址方式立即尋址方式 指令中給出實際操作數(shù)據(jù)指令中給出實際操作數(shù)據(jù)( (立即數(shù)立即數(shù)) ), 一般用于為寄存器或存儲器賦常數(shù)初值。一般用于為寄存器或存儲器賦常數(shù)初值。 例:例: 8 8位立即數(shù):位立即數(shù): MOV AMOV A,#40H#40H ;A A40H40H 16 16位立即數(shù):位立即數(shù): MOV DPTRMOV DPTR,#2100H #2100H

9、;DPTRDPTR2100H2100H3-2 指令尋址方式指令尋址方式尋找操作數(shù)的方法叫尋址方式。尋找操作數(shù)的方法叫尋址方式。10單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2二、二、直接尋址方式直接尋址方式 指令操作數(shù)是存儲器單元地址,數(shù)據(jù)在存儲器單元中。指令操作數(shù)是存儲器單元地址,數(shù)據(jù)在存儲器單元中。 MOV AMOV A,40H40H;A A(40H)(40H) 例:例:設存儲器兩個單元的內容如圖所示,設存儲器兩個單元的內容如圖所示, 執(zhí)行指令執(zhí)行指令 MOV AMOV A,40H 40H 后后 A =A = 直接尋址方式對數(shù)據(jù)操作時,地址是固定值,而地

10、址所指直接尋址方式對數(shù)據(jù)操作時,地址是固定值,而地址所指 定的單元內容為變量形式。定的單元內容為變量形式。41H 78H40H 56H? ?56H 11單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2 三、三、寄存器尋址方式寄存器尋址方式 指令操作數(shù)為寄存器名,數(shù)據(jù)在寄存器中。指令操作數(shù)為寄存器名,數(shù)據(jù)在寄存器中。 例例: : MOV AMOV A,R0R0;A A(R0R0) 設指令執(zhí)行前設指令執(zhí)行前 A=20HA=20H,R0=40HR0=40H, 執(zhí)行指令后,執(zhí)行指令后,A= A= ?,?,R0= R0= ?41H 67H40H 34H40H40H四、四、

11、寄存器間接尋址方式寄存器間接尋址方式 指令的操作數(shù)為寄存器名,寄存器中為數(shù)據(jù)地址。指令的操作數(shù)為寄存器名,寄存器中為數(shù)據(jù)地址。 存放地址的寄存器稱為間址寄存器或數(shù)據(jù)指針。存放地址的寄存器稱為間址寄存器或數(shù)據(jù)指針。 例例: : MOV AMOV A,R0R0 ;A A (R0)(R0) 設指令執(zhí)行前設指令執(zhí)行前 A=20HA=20H,R0=40HR0=40H,地址為地址為 40 40H H存儲器單元內容如圖所示存儲器單元內容如圖所示。執(zhí)行指令后,執(zhí)行指令后, A= A= ? ,R0 = ,R0 = ? , (40H)= , (40H)= ?34H40H34H12單片機原理及應用單片機原理及應用常

12、州大學信息學常州大學信息學院院2022-2-2五、五、基寄存器加變址寄存器間接尋址方式基寄存器加變址寄存器間接尋址方式 數(shù)據(jù)在存儲器中,指令給出的寄存器中為數(shù)據(jù)的基地址數(shù)據(jù)在存儲器中,指令給出的寄存器中為數(shù)據(jù)的基地址 和偏移量。和偏移量。 數(shù)據(jù)地址數(shù)據(jù)地址 = = 基地址基地址 + + 偏移量。偏移量。2008H89H2009H 12H例:例:MOVC AMOVC A,A+DPTRA+DPTR;A A( ((A A)+ +(DPTRDPTR)) ) 設指令執(zhí)行前設指令執(zhí)行前 A=09HA=09H,DPTR=2000HDPTR=2000H,存儲器單元內容如圖所示。存儲器單元內容如圖所示。 執(zhí)行指

13、令后,執(zhí)行指令后,A= DPTR= A= DPTR= ? 12H2000H13單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2六、六、相對尋址方式相對尋址方式1007程序存儲器1000 00001000 0000PCPC+2PC+11005H1007H1006H程序轉到0F87H執(zhí)行ALU操作碼偏移量PC1007+80=0F8714單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2 指令給出位地址。一位數(shù)據(jù)在存儲器位尋址區(qū)。指令給出位地址。一位數(shù)據(jù)在存儲器位尋址區(qū)。 例:例: MOV CMOV C,40H40H ;CyCy( (位地

14、址位地址4040H)H) 設指令執(zhí)行前設指令執(zhí)行前 Cy=1Cy=1,位地址位地址4040H H存儲器單元如圖存儲器單元如圖, 執(zhí)行指令后,執(zhí)行指令后, Cy= Cy= ?028H 0110001029H 11010111位尋址區(qū)七七. .位尋址方式位尋址方式15單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2MCS-51指令系統(tǒng)中共有指令系統(tǒng)中共有111條指令,按功能可分為條指令,按功能可分為以下四大類:以下四大類: 數(shù)據(jù)傳送類數(shù)據(jù)傳送類 算術操作類算術操作類 邏輯操作類邏輯操作類 控制轉移類控制轉移類 3-3 指令的類型、字節(jié)和周期指令的類型、字節(jié)和周期16

15、單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2實現(xiàn)寄存器、存儲器之間的數(shù)據(jù)傳送。實現(xiàn)寄存器、存儲器之間的數(shù)據(jù)傳送。1 1 內部傳送指令內部傳送指令:片內數(shù)據(jù)存儲器數(shù)據(jù)傳送。:片內數(shù)據(jù)存儲器數(shù)據(jù)傳送。2 2、外部傳送指令外部傳送指令:片外數(shù)據(jù)存儲器數(shù)據(jù)傳送。:片外數(shù)據(jù)存儲器數(shù)據(jù)傳送。3 3、交換指令交換指令: 片內數(shù)據(jù)存儲器數(shù)據(jù)傳送。片內數(shù)據(jù)存儲器數(shù)據(jù)傳送。4 4、堆棧操作指令堆棧操作指令:片內數(shù)據(jù)存儲器數(shù)據(jù)傳送。:片內數(shù)據(jù)存儲器數(shù)據(jù)傳送。5 5、查表指令查表指令: 程序存儲器數(shù)據(jù)傳送。程序存儲器數(shù)據(jù)傳送。3-4 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令17單片機原理及應用單片

16、機原理及應用常州大學信息學常州大學信息學院院2022-2-2( (一一) )內部傳送指令:實現(xiàn)片內數(shù)據(jù)存儲器中數(shù)據(jù)傳送。內部傳送指令:實現(xiàn)片內數(shù)據(jù)存儲器中數(shù)據(jù)傳送。 指令格式指令格式: MOV MOV 目的目的操作數(shù),操作數(shù),源源操作數(shù)操作數(shù) 尋址方式尋址方式:立即尋址、直接尋址、:立即尋址、直接尋址、 寄存器尋址、寄存器間址。寄存器尋址、寄存器間址。MOV A,Rn ;A(Rn),Rn=R0R7 MOV A,direct ;A(direct),MOV A,Ri ;A(Ri),Ri=R0、R1MOV A,#data ;AdataMOV Rn,direct ;Rn(direct)MOV Ri,d

17、irect ;(Ri)(direct)MOV direct1,direct2 ;(direct1)(direct2)MOV DPTR,#d1d2 ;DPTRd1d2 18單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2操作碼目的源操作內容字節(jié)數(shù)執(zhí)行時間MOVA,#datadirectRiRn(A)#data(A)(data)(A)(Ri)(A)(Rn)22111111Rn,#datadirectA(Rn)#data(Rn)(data)(Rn)(A)221121Data,#dataAdirectRiRn(data)#data(data)(A)(data)(data

18、)(data)(Ri)(data)(Rn)3232221221Ri,#datadirectA(Ri)#data(Ri)(data)(Ri)(A)22112119單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2 例:例:順序執(zhí)行下列指令序列,求每一步執(zhí)行結果。順序執(zhí)行下列指令序列,求每一步執(zhí)行結果。MOV AMOV A,#30H#30HMOV 4FHMOV 4FH,A AMOV R0MOV R0,#20H#20HMOV R0MOV R0,4FH4FHMOV 21HMOV 21H,20H20H;A= 30HA= 30H;(4FH)= 30H(4FH)= 30H;R0

19、= 20HR0= 20H;(20H)= 30H(20H)= 30H;(21H)= 30H(21H)= 30H20單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2說明:說明: 1. 一條指令中不能同時出現(xiàn)兩個工作寄存器:一條指令中不能同時出現(xiàn)兩個工作寄存器:非法非法指令:指令:MOV R1MOV R1,R2 R2 MOV R2 MOV R2,R0R0 2. 間址寄存器只能使用間址寄存器只能使用 R0R0、R1R1。 非法非法指令:指令: MOV AMOV A,R2R2 3. SFRSFR區(qū)只能直接尋址,不能用寄存器間接尋址。區(qū)只能直接尋址,不能用寄存器間接尋址。非

20、法非法指令:指令: MOV R0MOV R0,#80H#80H MOV A MOV A,R0R0(以上指令的作用是將(以上指令的作用是將80528052的內部的內部RAM80HRAM80H內容送內容送A)A)21單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2(二)外部傳送指令(二)外部傳送指令 實現(xiàn)片外數(shù)據(jù)存儲器和實現(xiàn)片外數(shù)據(jù)存儲器和A A累加器之間的數(shù)據(jù)傳送。累加器之間的數(shù)據(jù)傳送。 指令格式:指令格式:MOVX MOVX 目的操作數(shù),源操作數(shù)目的操作數(shù),源操作數(shù) 尋址方式:片外數(shù)據(jù)存儲器用寄存器間址方式。尋址方式:片外數(shù)據(jù)存儲器用寄存器間址方式。 1. DP

21、TR 1. DPTR作作1616位數(shù)據(jù)指針,尋址位數(shù)據(jù)指針,尋址6464KBKB片外片外RAMRAM空間空間 MOVX A MOVX A,DPTRDPTR;A(DPTR)A(DPTR) MOVX DPTRMOVX DPTR,A A;(DPTR)(A)(DPTR)(A) 2. 2. RiRi作作8 8位數(shù)據(jù)指針,尋址位數(shù)據(jù)指針,尋址256256B B片外片外RAMRAM空間空間 MOVXMOVX A A,RiRi ;A(RiA(Ri) MOVXMOVX RiRi,A A ;( (Ri)(ARi)(A) ) 22單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2 例:

22、例:實現(xiàn)片外數(shù)據(jù)存儲器數(shù)據(jù)傳送實現(xiàn)片外數(shù)據(jù)存儲器數(shù)據(jù)傳送 (2000H) (2100H)。 MOV DPTR MOV DPTR,#2000H#2000HMOVX AMOVX A,DPTRDPTRMOV DPTRMOV DPTR,#2100H#2100HMOVX DPTRMOVX DPTR,A A; DPTR= 2000HDPTR= 2000H; A= X A= X; DPTR= 2100H DPTR= 2100H;(2100H)= X(2100H)= X片外數(shù)據(jù)存儲器不能直接尋址。片外數(shù)據(jù)存儲器不能直接尋址。 下列為下列為非法非法指令:指令: MOVX AMOVX A,2000H 2000H

23、MOVX 2100H MOVX 2100H,2000H2000H片外RAM地址內容2000HXDPTR2100HX23單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2 ( (三三) ) 查表指令查表指令 實現(xiàn)從程序存儲器讀取數(shù)據(jù)到實現(xiàn)從程序存儲器讀取數(shù)據(jù)到A A累加器,只能使用變址間接尋累加器,只能使用變址間接尋址方式。址方式。 多用于查常數(shù)表程序,可直接求取常數(shù)表中的函數(shù)值。多用于查常數(shù)表程序,可直接求取常數(shù)表中的函數(shù)值。 1 1DPTRDPTR為基址寄存器為基址寄存器MOVCMOVC A A,A+DPTRA+DPTR ;A A (A)+(DPTR) (A)+

24、(DPTR) 查表范圍為查表范圍為 6464KB KB 程序存儲器任意空間,稱為遠程查表指令程序存儲器任意空間,稱為遠程查表指令 。 2. 2. PCPC為基址寄存器為基址寄存器MOVCMOVC A A,A+PCA+PC;A A(A)+(PC)(A)+(PC) 常數(shù)表只能在查表指令后常數(shù)表只能在查表指令后256256B B范圍內。范圍內。 (PCPC內容為下一條指令的起始地址。)內容為下一條指令的起始地址。)24單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2例:查表法求例:查表法求Y=XY=X2 2。設設X(0X15)X(0X15)在片內在片內RAMRAM的的

25、2020H H單單元中,要求將查表求元中,要求將查表求Y Y,存入片內存入片內RAMRAM2121H H單元。單元。1 1)ORG 1000HORG 1000HSQU:SQU: MOV DPTRMOV DPTR,#TAB #TAB ;確定表首地址(基地址);確定表首地址(基地址)MOV AMOV A,20H20H ;取取X X(偏移量偏移量) )MOVC AMOVC A,A+DPTRA+DPTR;查表求查表求Y=XY=X2 2MOV 21HMOV 21H,A A ;保存保存Y YRETRET ;子程序結束子程序結束 ;其它程序段;其它程序段ORG 3000HORG 3000H ;常數(shù)表格首地址

26、常數(shù)表格首地址TAB:TAB: DB 00DB 00,0101,0404,0909,225225 ;平方表平方表25單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2(四)堆棧操作指令(四)堆棧操作指令 入棧指令:入棧指令:PUSH direct PUSH direct ;SPSP(SP)+1SP)+1,(SP)(SP)(direct)(direct) 出棧指令:出棧指令:POPPOP direct direct ;directdirect(SP)(SP),SPSP(SP)-1SP)-1例:例:設設 A=02HA=02H,B=56HB=56H,執(zhí)行下列指令后,執(zhí)行

27、下列指令后,SP= SP= ? ,A= A= ? ,B= ?B= ?30H02H56H SBR SBR: MOV SP MOV SP,#30H #30H ;設棧頂;設棧頂 PUSH APUSH A PUSH B PUSH B MOV A MOV A,#00H#00H MOV MOV B B,#01H#01H POP POP B B POP A POP A片內RAM34H33H32H31H30H26單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2 (五)(五) 交換指令交換指令 實現(xiàn)片內實現(xiàn)片內RAMRAM區(qū)的數(shù)據(jù)雙向傳送。區(qū)的數(shù)據(jù)雙向傳送。1. 1. 字節(jié)交換指

28、令字節(jié)交換指令 XCH XCH A A,RnRn ;(A A) (RnRn) XCH XCH A A,RiRi; (A A) (( (RiRi) )) XCH XCH A A,directdirect ; (A A) (direct)direct)例:例:設設A= 29HA= 29H,執(zhí)行指令執(zhí)行指令 XCH AXCH A,2AH2AH后,后,A= A= ?(2AH)= (2AH)= ?38H29H片內 RAM地址內容2BH35H2AH38H20H27單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2 2. 2. 半字節(jié)交換指令半字節(jié)交換指令 XCHD XCHD

29、A A,RiRi ;(A)(A)0 03 3 (Ri)(Ri)0 03 3 SWAP A SWAP A ;(A)(A)4 47 7 (A) (A)0 03 3例:例:將片內將片內RAM RAM 2 2AHAH和和2 2BHBH單元中的單元中的BCDBCD碼轉換成壓縮式碼轉換成壓縮式BCDBCD 碼存入碼存入2020H H單元。單元。MOV A,#0 MOV R0,#2AH MOV R1,#2BHXCHD A,R0SWAP AXCHD A,R1XCH A,20H壓縮式壓縮式BCD碼碼千位 百位十位 個位單單字字節(jié)節(jié)BCD0000 千位0000 百位0000 十位0000 個位28單片機原理及應用

30、單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2(40H)=(40H)= H H 50H = 50H = H H A= A= H H (41H)=(41H)= H H 51H= 51H= H H R0= R0= H H 課堂練習課堂練習1.1.設:設:內部內部RAMRAM中,中,(40H)=50H(40H)=50H,(41H)=60H(41H)=60H,(50H)=30H(50H)=30H, (51H)=70H(51H)=70H,執(zhí)行下列片段后:,執(zhí)行下列片段后:a.a. MOV R0MOV R0,40H40H MOV A MOV A,R0R0 INC R0 INC R0 MO

31、V R0 MOV R0,A Ab. MOV R0b. MOV R0,#40H#40H MOV A MOV A,R0R0 INC R0 INC R0 MOV A MOV A,R0R0;R0=50H;R0=50H;A=30H;A=30H;R0=51H;R0=51H;(51H)=30H;(51H)=30H;R0=40H;R0=40H;A=50H;A=50H;(40H)=51H;(40H)=51H;A=51H;A=51H29單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-22 2. .給出每條指令執(zhí)行后的結果給出每條指令執(zhí)行后的結果 MOV 23HMOV 23H,#30H

32、#30HMOV 12HMOV 12H,#34H#34HMOV R0MOV R0,#23H#23HMOV R7MOV R7,12H12HMOV R1MOV R1,#12H#12HMOV AMOV A,R0R0MOV 34HMOV 34H,R1R1MOV 45HMOV 45H,34H34HMOV DPTRMOV DPTR,#6712H#6712HMOV 12HMOV 12H,DPHDPHMOV R0MOV R0,DPLDPLMOV AMOV A,R0R0;(23H)=(23H)=3030H H;(12H)=(12H)=3434H H;R0=R0=2323H HXXXXXXXXXXXXXXXXXXX

33、XXXXXXXXXXXXXXXXXDPHDPHDPLDPL45H45H34H34H23H23H12H12HR7R7R1R1R0R0XXXXXXXXXXXXXXXX30303434XXXXXXXX2323XXXXXXXXXXXXXXXX30303434343412122323676712123434343430303434343412122323676712123434343430306767343412121212;R7=R7=3434H H;R1=R1=1212H H;A=A=3030H H;(34H)=(34H)=3434H H;(45H)=(45H)=3434H H;DPTR=DPTR=

34、67126712H H;(12H)=(12H)=6767H H;R0=R0=1212H H;A=A=6767H H內部內部RAMRAM30單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-23.3.利用傳送類指令并用多種方法將內部利用傳送類指令并用多種方法將內部RAMRAM中中50H50H單元的內容與單元的內容與40H40H單元的內容互換。單元的內容互換。31單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2 與數(shù)據(jù)傳送指令不同,多數(shù)算術運算指令會影響標志位與數(shù)據(jù)傳送指令不同,多數(shù)算術運算指令會影響標志位的狀態(tài),即的狀態(tài),即CPUCPU

35、執(zhí)行算術運算指令后,根據(jù)數(shù)據(jù)操作情況自執(zhí)行算術運算指令后,根據(jù)數(shù)據(jù)操作情況自動設置標志位的狀態(tài)。動設置標志位的狀態(tài)。 MCS-51 MCS-51 的程序狀態(tài)字寄存器的程序狀態(tài)字寄存器 PSWPSW 為標志寄存器。為標志寄存器。 其格式如下:其格式如下:3-53-5算術運算指令算術運算指令CyACF0RS1RS0OVP32單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-21 1標志位標志位( (自動設置狀態(tài)自動設置狀態(tài)) )1 1)CyCy:進位標志位:進位標志位保存運算后最高位的進位保存運算后最高位的進位/ /借位狀態(tài),當有進位借位狀態(tài),當有進位/ /借借位,位,

36、Cy=1Cy=1,否則否則Cy=0Cy=0。2 2)ACAC:輔助進位標志位:輔助進位標志位保存低半字節(jié)的進位保存低半字節(jié)的進位/ /借位狀態(tài),當借位狀態(tài),當D D3 3產(chǎn)生進位產(chǎn)生進位/ /借借位,位,AC=1AC=1,否則否則AC=0AC=0。用于十進制調整。用于十進制調整。3 3)OVOV:溢出標志位:溢出標志位OV=CyOV=Cy7 7 CyCy6 6,補碼運算產(chǎn)生溢出補碼運算產(chǎn)生溢出OV=1OV=1,否則否則OV=0OV=0。4 4)P P:奇偶標志位:奇偶標志位反映累加器反映累加器A A中數(shù)據(jù)的奇偶性。當中數(shù)據(jù)的奇偶性。當1 1的個數(shù)為奇數(shù),的個數(shù)為奇數(shù), P=1 P=1,否則否則

37、P=0P=0。33單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2 2 2用戶選擇位用戶選擇位( (編程設置狀態(tài)編程設置狀態(tài)) )1 1)F0F0:用戶自定義標志位。:用戶自定義標志位。2 2)RS1RS1、RS0RS0: 工作寄存器區(qū)選擇位。工作寄存器區(qū)選擇位。復位時,復位時,PSW=00HPSW=00H例:例:復位后,設置使用工作寄存復位后,設置使用工作寄存 器器3 3區(qū),其余標志位不變。區(qū),其余標志位不變。RS1 RS0工作寄存區(qū)0 00區(qū)0 11區(qū)1 02區(qū)1 13區(qū)CyACF0RS1RS0OVP34單片機原理及應用單片機原理及應用常州大學信息學常州大學

38、信息學院院2022-2-2 3-5-13-5-1 加減指令加減指令完成片內完成片內 RAM RAM 和和 A A 中數(shù)據(jù)的加減乘除運算中數(shù)據(jù)的加減乘除運算。 1. 1.加法指令加法指令 1 1)不帶進位加法:)不帶進位加法:ADD AADD A,源操作數(shù)源操作數(shù) ADD ADD A A,RnRn ADD ADD A A,directdirect ADD ADD A A,RiRi ADD ADD A A,#data#data 影響影響CyCy、OVOV、ACAC、P P35單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2例:例:A=3BHA=3BH,PSW=0PS

39、W=0,執(zhí)行指令執(zhí)行指令 ADD AADD A,#3BH#3BH求:求:A=76H A=76H ,Cy= 0 Cy= 0 ,OV= 0 OV= 0 ,AC= 1 AC= 1 ,P= 1 P= 1 , PSW= PSW= 01000001= 41H 0011 1011 0011 1011 + 0011 1011+ 0011 1011 0111 0110 0111 0110CyACF0RS1RS0OVP36單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2 2 2)帶進位加法:帶進位加法: ADDC AADDC A,源操作數(shù)源操作數(shù) ADDC ADDC A A,RnR

40、n ADDC ADDC A A,directdirect ADDC ADDC A A,RiRi ADDC ADDC A A,#data#data 影響影響CyCy、OVOV、ACAC、P P例:例:A= 9AHA= 9AH,R2= E3HR2= E3H,PSW= 0PSW= 0,執(zhí)行指令執(zhí)行指令ADDC AADDC A,R2R2 后求:后求:A= 7DH A= 7DH ,Cy= 1 Cy= 1 ,OV= 1OV= 1,AC= 0AC= 0,P= 0P= 0,PSW=PSW=10000100 = 84H 1001 1010 1001 1010 1110 00111110 0011 + 0 + 0

41、 1 0111 1101 1 0111 1101CyACF0RS1RS0OVP37單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2 帶進位加法指令帶進位加法指令ADDCADDC用于多字節(jié)運算用于多字節(jié)運算例:例:設雙字節(jié)數(shù)設雙字節(jié)數(shù) X X 存在片內存在片內RAMRAM 41 41H H、40H40H單元,單元,Y Y存在存在4242H H、43H43H單元,編程求單元,編程求 Z=X+YZ=X+Y,并存入片內并存入片內RAMRAM單元單元4444H H、45H45H、46H46H。ADDSADDS:CLR CCLR C MOV A MOV A,40H40HAD

42、D AADD A,42H42HMOV 44HMOV 44H,A AMOV AMOV A,41H41HADDC AADDC A,43H43HMOV 45HMOV 45H,A AMOV AMOV A,#0#0ADDC AADDC A,#0#0MOV 46HMOV 46H,A ARETRET;取被加數(shù)低字節(jié);取被加數(shù)低字節(jié);加上加數(shù)低字節(jié);加上加數(shù)低字節(jié);保存和的低字節(jié);保存和的低字節(jié);取被加數(shù)高字節(jié);取被加數(shù)高字節(jié);加上加數(shù)高字節(jié);加上加數(shù)高字節(jié);保存和的高字節(jié);保存和的高字節(jié);求高字節(jié)進位;求高字節(jié)進位;子程序結束;子程序結束38單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2

43、022-2-23 3)BCDBCD調整指令:調整指令:DADAA A ; 對對 A A 中加法結果進行調整中加法結果進行調整 在加法過程中低在加法過程中低4位向高位向高4位有進位或累加器位有進位或累加器A中低中低4位大于位大于9, 則累加器則累加器A作加作加6調整;若在加法過程中最高位有進位或累調整;若在加法過程中最高位有進位或累加加 器器A中高中高4位大于位大于9,則累加器,則累加器A作加作加60H調整調整 (即高(即高4位作加位作加6調整)。調整)。 十進制加法指令十進制加法指令:ADD AADD A,源操作數(shù)源操作數(shù)DA ADA A 帶進位十進制加法指令帶進位十進制加法指令:ADDC A

44、ADDC A,源操作數(shù)源操作數(shù)DA ADA A39單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2 例例3-39:編制編制8559的的BCD加法程序,并對其工作加法程序,并對其工作過程進行分析。過程進行分析。 解:解:相應相應BCD加法程序為:加法程序為: MOV A,#85H;A85 ADD A,#59H ;A85+59= 0DEH DA A ;A44,Cy=140單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2二進制加法和進制調整過程為:二進制加法和進制調整過程為: 85 1000 0101 (A) +) 59 0101 10

45、01 data 144 (0) 1101 1110 110 ;低低4位位9,加,加6調整調整 1110 0100 110 ;高高4位位9,加,加60H調整調整 (1) 0100 0100運算結果為(運算結果為(A)=44H,Cy=1 即十進制的即十進制的144。 41單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-22 2減法指令減法指令 SUBB ASUBB A,源操作數(shù)源操作數(shù) ;帶借位減法指令;帶借位減法指令 SUBBSUBB A A,RnRn SUBB SUBB A A,directdirect SUBB SUBB A A,RiRi SUBB SUBB A

46、 A,#data#data 影響影響: :CyCy、OVOV、ACAC、P P例:例:A= 5AHA= 5AH,R2= 5AHR2= 5AH,Cy= 0Cy= 0,執(zhí)行下列指令執(zhí)行下列指令SUBB ASUBB A,R2R2求:求: A= 00A= 00,Cy=0Cy=0,OV=0OV=0,P=0P=0,AC= 0AC= 0?42單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2例例3-36設(設(A)=0C9H,(R0)=60H,(,(60H)=54H,Cy=1,執(zhí)行指令:執(zhí)行指令:SUBB A,R0 結果為結果為 (A)=74H 標志位為標志位為 Cy=0,0V

47、=1,AC=0,P=0 1100 1001 (1100 1001 (A)A) 0101 0101 0100 (0100 (R0)R0) - - 1 1 CyCy 0111 0100 0111 010043單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-23. 增量、減量指令增量、減量指令增量指令:增量指令:INC INC 單操作數(shù)單操作數(shù) INC AINC A INC INC RnRn INC direct INC direct INC INC RiRi INC DPTR INC DPTR除對除對A A操作影響標志位操作影響標志位P P以外,不影響標志位狀態(tài)以外,

48、不影響標志位狀態(tài)。44單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2 減量指令:減量指令:DEC DEC 單操作數(shù)單操作數(shù) DEC ADEC A DEC directDEC direct DEC DEC RiRi DEC DEC RnRn 除對除對A A操作影響標志位操作影響標志位P P以外,不影響標志位狀態(tài)以外,不影響標志位狀態(tài)。 v 注意:注意:沒有指令沒有指令 DEC DPTR DEC DPTR 可用指令可用指令 DEC DPL DEC DPL 代替代替45單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-23-5-2.3-5

49、-2.乘除指令乘除指令 MUL ABMUL AB ;BAABAAB B,Cy0Cy0,;當積高字節(jié)當積高字節(jié)B=0B=0,OV0OV0;B0B0,則則OV1OV1 DIV AB DIV AB ;A AB B,AA商,商,BB余數(shù),余數(shù),Cy0Cy0,;當除數(shù)當除數(shù)B=0B=0,OV1OV1;B0B0,則則OV0OV0 例:例: A= 96(60H), B= 192(0C0H) A= 96(60H), B= 192(0C0H),執(zhí)行指令執(zhí)行指令 MUL AB MUL AB 后后,求:,求:A= A= ,B= B= ,Cy= Cy= ,OV= OV= ,P= P= ? 解:解: 96 96 192

50、 = 18432(4800192 = 18432(4800H)H) 例:例:A= 156(F6H)A= 156(F6H),B= 13(0DH)B= 13(0DH),執(zhí)行指令執(zhí)行指令 DIV ABDIV AB后后 求:求:A= A= ,B= B= ,Cy= Cy= ,OV= OV= ,P=P= 解:解: 156 156 13 = 18(12 13 = 18(12H)H),余數(shù)余數(shù)= = 12(12(0 0CH)CH)。46單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-23-63-6 邏輯運算指令邏輯運算指令一、單操作數(shù)指令(一、單操作數(shù)指令(A A累加器為操作數(shù))

51、累加器為操作數(shù))1. A A清清0 0指令:指令: CLR A CLR A ;A0A02. A A取反指令:取反指令:CPL A CPL A ;A/AA/A 3. 循環(huán)移位指令:循環(huán)移位指令: 1)8 8位循環(huán)指令:位循環(huán)指令: RL ARL A ;A A循環(huán)左移一位循環(huán)左移一位 RR ARR A ;A A循環(huán)右移一位循環(huán)右移一位 2)9 9位循環(huán)指令:位循環(huán)指令: RLC ARLC A;帶帶CyCy循環(huán)左移一位循環(huán)左移一位 RRC ARRC A;帶帶CyCy循環(huán)右移一位循環(huán)右移一位47單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2例:例:設設 A= 1100

52、0101A= 11000101,Cy= 0Cy= 0,分別執(zhí)行下列單條指分別執(zhí)行下列單條指令:令: CPL ACPL A ;A= A= ,Cy= Cy= RL A RL A ;A= A= ,Cy= Cy= RLC ARLC A ;A= A= ,Cy= Cy= 00111010 000111010 010001011 010001011 010001010 110001010 148單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2 用用9 9位循環(huán)指令實現(xiàn)多字節(jié)移位位循環(huán)指令實現(xiàn)多字節(jié)移位例:例:編程將寄存器編程將寄存器 R6R5 R6R5 中的雙字節(jié)數(shù)中的雙字節(jié)

53、數(shù)X X左移一位。左移一位。0CyR6R5CyCLR CMOV A,R5RLC AMOV R5,AMOV A,R6RLC AMOV R6,A;Cy=0Cy=0, 設設 R6= 55H R6= 55H ,R5= AAHR5= AAH;R6=01010101R6=01010101,R5=10101010R5=10101010,Cy=0Cy=0;R6=01010101R6=01010101,R5=01010100R5=01010100,Cy=1Cy=1;R6=10101011R6=10101011,R5=01010100R5=01010100,Cy=0Cy=049單片機原理及應用單片機原理及應用常州

54、大學信息學常州大學信息學院院2022-2-2二、雙操作數(shù)邏輯運算指令二、雙操作數(shù)邏輯運算指令( (對位邏輯運算對位邏輯運算) ):ANLANL、ORLORL、XRLXRL例例 A=01B,表示隨機狀態(tài),為表示隨機狀態(tài),為1或或0,執(zhí)行下述一組指令執(zhí)行后,執(zhí)行下述一組指令執(zhí)行后A的值如何的值如何? ANL A,#0E7H;將累加器將累加器A的內容的內容D4、D3清清0 ORL A,#03H ;將累加器將累加器A的內容的內容D1、D0置置1XRL A,#0C0H;將累加器將累加器A的內容的內容D7、D6取反取反解解 :執(zhí)行上述指令后,執(zhí)行上述指令后,A=100011B。50單片機原理及應用單片機原

55、理及應用常州大學信息學常州大學信息學院院2022-2-2 3-6 3-6 位操作指令位操作指令一、位傳送一、位傳送 對片內對片內RAMRAM中位尋址區(qū)操作。位累加器中位尋址區(qū)操作。位累加器CyCy和位地址和位地址b b。 MOV MOV C C,b b ;CyCy(b(b) ) MOV MOV b b,C C ;( (b)b)CyCy 例:將位地址例:將位地址2020H H的一位數(shù)傳送到位地址的一位數(shù)傳送到位地址3030H H中:中: MOV CMOV C,20H20H MOV 30H MOV 30H,C C 二位清二位清0 0、置、置1 1、取反:、取反:CLRCLR、SETBSETB、CP

56、LCPL: CLR C CLR C ;CyCy0 0, CLR 40H CLR 40H;( (位地址位地址4040H)H) 0 026H1 0 1 1 0 1 0 125H1 0 0 0 0 1 1 024H0 1 1 1 0 0 0 051單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2三邏輯運算:三邏輯運算:ANLANL、ORLORL: ANL CANL C,40H 40H ;CC(40H)CC(40H)ANL CANL C,/40H /40H ;CC/(40H)CC/(40H) 例:設例:設 Cy=0Cy=0,( (位地址位地址4040H)=1H)=1,執(zhí)

57、行指令執(zhí)行指令 ANL CANL C,/40H /40H 后,后, Cy= Cy= ? , ( (位地址位地址4040H)= H)= ? 位地址表示法位地址表示法: 位地址位地址 4040H H,位寄存器位寄存器 F0F0,字節(jié)加位字節(jié)加位 ACC.0ACC.00152單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-23-73-7 控制轉移指令控制轉移指令 轉移指令通過改寫轉移指令通過改寫PCPC的當前值,從而改變的當前值,從而改變CPUCPU執(zhí)執(zhí)行程序的順序,使程序發(fā)生跳轉。行程序的順序,使程序發(fā)生跳轉。按轉移條件分類:按轉移條件分類:1)1)無條件轉移:無條件

58、轉移:執(zhí)行無條件轉移指令,程序無條件轉移到指定處。執(zhí)行無條件轉移指令,程序無條件轉移到指定處。2)2)條件轉移:條件轉移:指令中給出轉移條件,執(zhí)行指令時,先測試條件,指令中給出轉移條件,執(zhí)行指令時,先測試條件, 若滿足條件,則程序發(fā)生轉移,否則,仍順序執(zhí)若滿足條件,則程序發(fā)生轉移,否則,仍順序執(zhí) 行程序。行程序。53單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2按轉移方式分類:按轉移方式分類:1 1)絕對轉移:絕對轉移:指令給出轉移目的的絕對地址指令給出轉移目的的絕對地址 nnnn,執(zhí)行指令后執(zhí)行指令后, PCPCnnnn。 例:例: 地址地址源程序源程序 1

59、000 1000H H LJMP 2000HLJMP 2000H 1003H 1003H 2000H 2000H ;轉移目的指令轉移目的指令2)相對轉移:相對轉移:指令給出轉移目的與轉移指令的相對偏移量指令給出轉移目的與轉移指令的相對偏移量e e,執(zhí)行指令后,執(zhí)行指令后,PCPCPCPC + + e e 。 例:例:地址地址 源程序源程序 1000 1000H SJMP 02 H SJMP 02 1004H 1004H ;轉移目的指令轉移目的指令1000H SJMP021004H54單片機原理及應用單片機原理及應用常州大學信息學常州大學信息學院院2022-2-2一一. .無條件轉移指令無條件轉

60、移指令 1. 1.長轉移指令:長轉移指令:LJMPLJMP addr16 addr16 ;PC PC addr16 addr16 指令轉移范圍:指令轉移范圍:6464KBKB,無條件轉移,不影響任何標志位無條件轉移,不影響任何標志位 2.2.絕對轉移指令:絕對轉移指令: AJMPAJMP addr11addr11;PCPCPC+2PC+2;PCPC10100 0pnpn10100 0 ;PCPC15151111不變不變 指令轉移范圍:指令轉移范圍:2 2KBKB 轉移時要求轉移前后保持轉移時要求轉移前后保持 PCPC15151111不變。不變。55單片機原理及應用單片機原理及應用常州大學信息學

溫馨提示

  • 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

提交評論