




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第3章 單片機(jī)指令系統(tǒng) 3.1 MCS51指令簡介3.2 指令系統(tǒng) . LOOP: MOV A, R0 ;將R0的內(nèi)容送A 標(biāo)號(hào) 操作碼 第一操作數(shù) 第二操作數(shù) 注釋 目的操作數(shù) 源操作數(shù) 注:白色的內(nèi)容不是必需的 3.1 MCS51指令簡介一、MCS51指令格式 . 二、MCS51系列單片機(jī)指令系統(tǒng)分類 按尋址方式分為以下七種:按功能分為以下四種:1、立刻立刻尋址 1、數(shù)據(jù)傳送指令位操2、直接尋址 2、算術(shù)運(yùn)算指令3、存放器尋址 3、邏輯運(yùn)算指令4、存放器間接尋址指令 4、控制轉(zhuǎn)移類指令5、相對(duì)尋址 5、位操作指令6、變址尋址7、位尋址.三、尋址方式 尋址方式:尋覓或確定操作數(shù)所在單元地址的
2、方式。尋址方式越多,計(jì)算機(jī)尋址才干越強(qiáng),但指令系統(tǒng)也越復(fù)雜。 闡明:以下討論的尋址方式都是針對(duì)源操作數(shù)的。但實(shí)踐上目的操作數(shù)也有尋址問題。1、存放器尋址 MOV A, Rn 操作數(shù)在存放器中,如R0R7,A、B、Cy(位)、DPTR 2、直接尋址 MOV A, 40H 操作數(shù)直接以單元地址方式給出也可以存放器稱號(hào)方式給出,但A B DPTR 除外 如: MOV A, P0 ; MOV R0, TH0.3、存放器間接尋址 MOV A, R1 操作數(shù)是經(jīng)過存放器間接得到的。4、立刻尋址 MOV A, #40H 操作數(shù)在指令中直接給出。5、基址存放器加變址存放器尋址 以DPTR或PC為基址存放器,以
3、A為變址存放器, 以兩者相加構(gòu)成的16位地址為操作數(shù)的地址。 MOVC A, A+DPTR MOVC A, A+PC.四、指令中常用符號(hào)闡明 Rn當(dāng)前存放器區(qū)的8個(gè)任務(wù)存放器R0R7(n07);Ri當(dāng)前存放器區(qū)可作地址存放器的2個(gè)任務(wù)存放器R0和R1(i0,1);direct8位內(nèi)部數(shù)據(jù)存儲(chǔ)器單元的地址及特殊功能存放器的地址;#data表示8位常數(shù)立刻數(shù);#datal6表示16位常數(shù);add 16表示16位地址;addrll表示11位地址;rel8位帶符號(hào)的地址偏移量;bit表示位地址;間接尋址存放器或基址存放器的前綴;( )表示括號(hào)中單元的內(nèi)容( )表示間接尋址的內(nèi)容; .五、MCS51指令
4、簡介 1. 以累加器A為目的操作數(shù)的指令 MOV A, data ; A data MOV A, Rn ; n=07, A (Rn) MOV A, Ri ; i=0,1 , A (Ri) MOV A, direct ; A (Rn) direct為內(nèi)部RAM或SFR地址 注: MOV A, Ri ; 以Ri的內(nèi)容為地址 ,把該地址中 的內(nèi)容送到A中去。A (Ri) MOV A, R0 ; 將R0的內(nèi)容送到A去。 A (R0) MOV A, #20H ; (A) = 20H A的內(nèi)容為20H MOV A, 20H ; (A) = (20H) A的內(nèi)容為20H中的內(nèi)容 留意以上兩組指令的不同點(diǎn) 例
5、:MOV R0, #30HMOV 30H, #60HMOV A, R0(A)=?.2. 以Rn為目的操作數(shù)的指令MOV Rn, A ;Rn (A) , n=07MOV Rn , direct ;Rn (direct) MOV Rn ,data ;Rn data .3. 以直接地址為目的操作數(shù)的指令 MOV direct, A ;direct (A) MOV direct, Rn ; direct (Rn) , n=07MOV direct, Ri ; direct ( Ri ) ) , i=0,1MOV direct, direct ;direct (direct) MOV direct, #
6、data ;direct data .4. 以存放器間接地址為目的操作數(shù)指令MOV Ri, A ; (Ri) ) (A) ,i=0,1MOV Ri , direct ; (Ri) ) (direct) MOV Ri ,data ; (Ri) ) data.運(yùn)用舉例1MOV P1, #0FEH ; 11111110B可以使P1.0上的發(fā)光二極管點(diǎn)亮MOV P1, #0F0H ; 11110000B可以使P1口上的上面4個(gè)發(fā)光二極管點(diǎn)亮P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 5v.8段數(shù)碼管顯示P1.0 aP1.1 bP1.2 cP1.3 dP1.4 eP1
7、.5 fP1.6 gP1.7 dp5vMOV P1, #00H ; 顯示 8.MOV P1, #0F8H ; 顯示 7MOV P1, #88H ; 顯示 A.運(yùn)用舉例2 一個(gè)引腳的高低電平,可以經(jīng)過“光電耦合器控制繼電器,從而以“弱電控制“強(qiáng)電。.3.2 指令系統(tǒng)一、數(shù)據(jù)傳送指令位操作 1. 16位數(shù)據(jù)傳輸指令MOV DPTR, #data16; DPTR data16 DPTR-數(shù)據(jù)指針,為SFR中(DPH)、(DPL) MOV DPTR, #2021H相當(dāng)于:MOV DPH, #20H MOV DPL, #10H.2、堆棧操作指令進(jìn)棧指令 PUSH direct如: (SP)=60H, (
8、A)=30H ,(B)=70H 時(shí),執(zhí)行 PUSH Acc ;(SP)+1=61HSP, (A) 61H PUSH B ;(SP)+1=62HSP, (B) 62H結(jié)果: (61H)=30H, (62H)=70H, (SP)=62H退棧指令 POP direct如: (SP)=62H, (62H)=70H ,(61H)=30H 時(shí),執(zhí)行 POP DPH ;(SP) DPH, (SP)1=61HSP POP DPHL ;(SP) DPL, (SP)1=60HSP結(jié)果: (DPTR)=7030H, (SP)=60H堆棧的存儲(chǔ)原那么:先進(jìn)后出(SP)(SP+1)(SP+2)(SP+3). 3. 累加
9、器A與外部數(shù)據(jù)傳輸指令MOVX A, DPTR ; A (DPTR) 地址范圍64KMOVX A, Ri ; A (Ri) 地址范圍0255MOVX DPTR, A ; (DPTR) (A)MOVX Ri , A ; (Ri) (A).4. 查表指令MOVC A, A+DPTR; A (A)+(DPTR)例: (DPTR)=0300H, A02H ROM中 (0302H)=55H執(zhí)行: MOVC A, A+DPTR結(jié)果:(A)=55H.MOVC A, A+PC A (A)+(pc)PC程序指針,指向下一條指令的地址例:根據(jù)A中的內(nèi)容09查平方表. MOVC A, A+PC 例子: 地址 機(jī)器碼
10、 源程序 ORG 0000H0000 7403 MOV A, #03H0002 83 MOVC A, A+PC0003 00 DB 00H0004 01 DB 01H0005 04 DB 04H0006 09 DB 09H0007 10 DB 10H0008 19 DB 19H0009 24 DB 24H 000A 31 DB 31H000B 40 DB 40H000C 51 DB 51H順便講解如何查機(jī)器碼END.5. 字節(jié)交換指令XCH A , Rn ; (A) (Ri)XCH A , direct ; (A) (direct)XCH A , Ri ; (A) (Ri)例: (A)=80H
11、, (R7)=97H執(zhí)行:XCH A , R7結(jié)果:(A)=97H, (R7)=80H例:將片內(nèi)RAM 60H單元與61H單元的數(shù)據(jù)交換。 XCH 60H,61H 對(duì)嗎?.6. 半字節(jié)交換指令XCHD A, Ri ;(A)0-3 (Ri ) 0-3例:(R0)=60H, (60H)=3EH, (A)=59H執(zhí)行: XCHD A, R0結(jié)果:A 5E H 60H39 H.二、算術(shù)操作類指令1. 加法指令A(yù)ddtion2. 帶進(jìn)位加法指令3. 加1指令 Increase 4. 十進(jìn)制調(diào)整指令5. 帶借位減法指令Subtraction6. 減1指令Decrease7. 乘法指令Multiplicat
12、ion8. 除法指令Division.PSW存放器Cy:進(jìn)位標(biāo)志位AC:輔助進(jìn)位標(biāo)志位F0: 供用戶運(yùn)用的標(biāo)志位OV:溢出標(biāo)志位P:奇偶標(biāo)志位 A中數(shù)據(jù)的奇偶性。當(dāng)1的個(gè)數(shù)為奇數(shù),P=1,否那么P=0。RS1 RS0 0 0 區(qū)0(地址:00H07H) 0 1 區(qū)1(地址:08H0FH) 1 0 區(qū)2(地址:10H17H) 1 1 區(qū)3(地址:18H1FH).2. 帶進(jìn)位加法指令A(yù)DDC A, Rn ; A(A)+(Rn)+(Cy)ADDC A, Ri ;A(A)+(Ri ) +(Cy)ADDC A, direct ;AA)+(direct) +(Cy)ADDC A, data ;AA)+#d
13、ata +(Cy)對(duì)標(biāo)志位的影響與ADD一樣.3. 加1指令I(lǐng)NC A ;A(A)+1INC Ri ;RiA)+1INC direct ;directdirect)+1INC Ri ;(Ri)(Ri)+1INC DPTR ;DPTR(DPTR)+1對(duì)標(biāo)志位不產(chǎn)生影響假設(shè): A0FFH , (Cy)=0執(zhí)行: INC A結(jié)果:A00H , (Cy)=0.4. 十進(jìn)制調(diào)整指令 DA A 用途:緊跟在BCD碼加法指令不包括減法之后,進(jìn)展十進(jìn)制調(diào)整。 96H 為緊縮BCD碼,表示十位為9, 個(gè)位為6 如兩BCD碼加: MOV A, #35H ADD A, #46H (A)=7BH, 并不是 81H 但
14、: DA A 后, A81H.5. 帶借位減法指令Subtraction1SUBB A, Rn ; AA)-(Rn)-(Cy2SUBB A, Ri ;AA)-(Ri) ) -(Cy3SUBB A, direct ;AA)-(direct) -(Cy4SUBB A, data ;AA)-#data -(Cy5) 對(duì)標(biāo)志位的影響 (6Cy - 進(jìn)位位7AC - 半進(jìn)位位8OV - 溢出位.6. 減1指令Decrease 減1類指令共4條,其功能是將操作數(shù)指定單元內(nèi)容減1。 DEC A ;A-1A, A中內(nèi)容減1DEC Rn ; Rn-1Rn, Rn中內(nèi)容減1DEC direct ;direct-1
15、(direct), 直接地址中內(nèi)容減1DEC Ri ;(Ri)-1(Ri), Ri間址中的內(nèi)容減1 .7. 乘法指令Multiplication MUL AB ; (A)(B) 低8位A 高8位B A、B中都是無符號(hào)整數(shù) 假設(shè)積大于255,OV1,否那么OV0;進(jìn)位標(biāo)志總是清零 Cy0。.8. 除法指令Division DIV AB ; (A)(B) 商 A 余數(shù)B A、B中都是無符號(hào)整數(shù) 假設(shè)除數(shù)B為“0,OV1,否那么OV0;進(jìn)位標(biāo)志總是清零 Cy0。. 三、邏輯運(yùn)算指令1. 簡單邏輯操作指令 CLR A ; A “0 CPL A ; A A SWAP A ; A03 A47例: (A)=
16、3AH, CPL A, (A)=0C5H 0011 1010B 1100 0101B (A)=3AH, SWAP A, (A)=0A3H .2. 循環(huán)指令 左循環(huán)指令 Rotate Accumulator Left RL A 例 A6CH = 0110 1100B RL A (A)=1101 1000B=0D8Ha7 a0 C.帶進(jìn)位左循環(huán)指令Rotate Accumulator Left through Carry flag RLC A 例A6CH = 0110 1100B, (C) =1 RLC A (A)=1101 1001B=0D9Ha7 a0 C. 右循環(huán)指令Rotate Accum
17、ulator Right RR A例A6CH = 0110 1100B RR A (A)=0011 0110B=36Ha7 a0 C.帶進(jìn)位右循環(huán)指令Rotate A Right with CRRC A例A6CH = 0110 1100B, (C) =1 RRC A (A)=1011 0110B=0B6Ha7 a0 C.3. 邏輯與指令A(yù)NL A, Rn ANL A, direct ANL A, dataANL A, RiANL direct, AANL direct, data “與 , “有0即0,全1為1 0000 0111 1111 1101 0000 0101 B 05H.4. 邏輯
18、或指令ORL A, Rn ORL A, direct ORL A, dataORL A, RiORL direct, AORL direct, data “或 , “有1即1,全0為0 0000 0110 0110 1101 0110 1111 B 6FH.5. 邏輯異或指令XRL A, Rn XRL A, direct XRL A, dataXRL A, RiXRL direct, AXRL direct, data “異或 , “相異為1,一樣為0 0000 0110 0110 1101 0110 1011 B 6BH.例 A=01B,表示隨機(jī)形狀,為1或0,執(zhí)行下述一組指令執(zhí)行后A的值如
19、何? XRL A,#0C0H;將累加器A的內(nèi)容D7、D6取反 0 1 ORL A,#03H;將累加器A的內(nèi)容D1、D0置1 1 1 0 1 0 0 0 0 ANL A,#0E7H;將累加器A的內(nèi)容D4、D3清0 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 解 :執(zhí)行上述指令后,A=100011B。習(xí)題1:如何將累加器A中的數(shù)據(jù)高4位清0,低位不變? 習(xí)題2:如何將存放器R2中的數(shù)據(jù)奇數(shù)位取反,偶數(shù)位不變?.四、控制轉(zhuǎn)移類指令1. 跳轉(zhuǎn)指令短跳指令 AJMP addr11 PCaddr11,跳轉(zhuǎn)范圍2k長跳指令 LJMP add
20、r16 PCaddr16,跳轉(zhuǎn)范圍64k間接跳轉(zhuǎn)指令 JMP A+DPTR PCADPTR).相對(duì)轉(zhuǎn)移指令 SJMP rel PC(PC)+2 PC(PC)+rel rel機(jī)器碼的相對(duì)偏移量,為8位補(bǔ)碼 轉(zhuǎn)移范圍:前128后127字節(jié) rel目的地址轉(zhuǎn)移指令地址轉(zhuǎn)移指令字節(jié)數(shù)補(bǔ) 目的地址PC當(dāng)前值補(bǔ)編程時(shí),可用標(biāo)號(hào)代替轉(zhuǎn)移目的地址, rel 交給編譯程序計(jì)算。 SJMP NEXT 或AJMP NEXT ,SJMP NEXTNEXT: 原地踏步指令的指令:HERE: SJMP HERE常寫成: SJMP $. 地址 機(jī)器碼 源程序 注釋 ORG 0000H ; 整個(gè)程序起始地址0000 20 0
21、0 30 LJMP MAIN ; 跳向主程序 ORG 0030H ; 主程序起始地址0030 C3 MAIN: CLR C ; MAIN為程序標(biāo)號(hào)0031 E6 LOOP: MOV A , R00032 37 ADDC A, R10033 08 INC R00034 DA FB DJNZ R1, LOOP ;相對(duì)轉(zhuǎn)移0036 80 03 SJMP NEXT0038 78 03 MOV R0, #03H003A 18 NEXT: DEC R0003B 80FE SJMP $ ;HERE: SJMP HERE END ; 終了標(biāo)志程序中標(biāo)號(hào)與地址之間的關(guān)系.2. 條件轉(zhuǎn)移指令JZ rel ;A0,轉(zhuǎn)移JNZ rel ;A0,轉(zhuǎn)移.3. 比較不相等轉(zhuǎn)移指令CJNE A,#data,rel; (A)=#data,繼續(xù) C0 (A)#data, 轉(zhuǎn) C0 (A)#data, 轉(zhuǎn) C1 特點(diǎn):只需時(shí), C1CJNE A,direct,relCJNE Rn,#data,relCJNE Ri,#data,r
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 別墅花園裝修合同范本
- 《錦瑟》教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版高中語文選擇性必修中冊(cè)
- 借貸合同范本u
- 勞動(dòng)合同范本陜西
- 傳銷性質(zhì)合同范本
- 產(chǎn)品銷售協(xié)議合同范本
- 企業(yè)授權(quán)合同范本
- 2024年重慶大學(xué)機(jī)器人研究所招聘筆試真題
- 上海貨物短途運(yùn)輸合同范本
- 2024年溫州蒼南農(nóng)商銀行招聘筆試真題
- 期末練習(xí)卷(模擬試題)-2024-2025學(xué)年 一年級(jí)上冊(cè)數(shù)學(xué)人教版
- 白血病合并感染
- GB/T 18601-2024天然花崗石建筑板材
- 致病菌引起的食品安全事件
- 有機(jī)肥配施氮肥對(duì)玉米根系生長、氮素利用及產(chǎn)量和品質(zhì)的影響
- 2024年山西省中考語文試卷
- 《大學(xué)美育教程》第二單元-心靈的熏陶:審美活動(dòng)
- 浙江省溫州市(2024年-2025年小學(xué)五年級(jí)語文)人教版期中考試(下學(xué)期)試卷及答案
- 數(shù)據(jù)要素白皮書(2024年)-中國通信標(biāo)準(zhǔn)化協(xié)會(huì)
- 2023年云南公務(wù)員錄用考試《行測》題
- 電子商務(wù)運(yùn)營(第二版) 課件 項(xiàng)目1 認(rèn)識(shí)電商運(yùn)營
評(píng)論
0/150
提交評(píng)論