單片機(jī)多媒體教程C3-指令系統(tǒng)_第1頁
單片機(jī)多媒體教程C3-指令系統(tǒng)_第2頁
單片機(jī)多媒體教程C3-指令系統(tǒng)_第3頁
單片機(jī)多媒體教程C3-指令系統(tǒng)_第4頁
單片機(jī)多媒體教程C3-指令系統(tǒng)_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、尋址方式數(shù)據(jù)傳送類指令算術(shù)運(yùn)算類指令邏輯操作類指令控制轉(zhuǎn)移類指令位操作指令常用偽指令第章MCS51指令系統(tǒng) 本章內(nèi)容Single Chip Microcomputer1指令概述操作碼7 0數(shù)據(jù)或?qū)ぶ贩绞? 0雙字節(jié)指令:標(biāo)號:操作碼操作數(shù)或操作數(shù)地址;注釋單字節(jié)指令:操作碼7 0三字節(jié)指令:操作碼7 0數(shù)據(jù)或?qū)ぶ贩绞? 0數(shù)據(jù)或?qū)ぶ贩绞? 0指令按字節(jié)長度可以分為三種:指令格式指令的格式:例如: MOV A,R0例如:MOV A,30H例如:MOV DPTR,#2010H2一、尋址方式(找信方式)我的信在他那!找信去!注:找信是尋找信的“地址”!你能說出第二封信的“地址”嗎?3目的地#XXH操

2、作數(shù)MOV P1, #55HMOV A, #01H#55H目的地信寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對尋址位尋址4目的地寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對尋址位尋址內(nèi)部RAM或SFR區(qū)操作數(shù)XXHMOV P1, 20H20H目的地20H注:尋址是尋操作數(shù)的“地址”!直接給出地址20H直接尋址5目的地寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對尋址位尋址寄存器目的地操作數(shù)XXHMOV P1, A寄存器R0-R7ABDPTR你能說出為什么叫寄存器尋址嗎?6寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對尋址位尋址MOV P1, R0目的地寄存器

3、操作數(shù)3AH內(nèi)部RAM3AH65H3AHR0R1DPTR寄存器間接尋址寄存器目的地2號信在2號箱子里1號你能說出1號箱子和2號箱子分別對應(yīng)內(nèi)存中哪一部分嗎?7尋址比較MOV P1,R0 地址是寄存器R0MOV P1,R0 地址在寄存器R0里MOV P1,20H 地址是內(nèi)存20HMOV P1,#20H 直接將20H這個(gè)數(shù)送P1口錯(cuò)!錯(cuò)!錯(cuò)!MOV P1,R0對!8尋址比較MOV P1,R0 地址是寄存器R0MOV P1,R0 地址在寄存器R0里面MOV P1,20H 地址是內(nèi)存20HMOV P1,#20H 直接將20H這個(gè)數(shù)送P1口錯(cuò)!錯(cuò)!錯(cuò)!MOV P1,R0對!9尋址比較MOV P1,R0

4、地址是寄存器R0MOV P1,R0 地址在寄存器R0里面MOV P1,20HMOV P1,#20H 直接將20H這個(gè)數(shù)送P1口錯(cuò)!錯(cuò)!錯(cuò)!MOV P1,20H對! 地址是內(nèi)存20H10尋址比較MOV P1,R0 地址是寄存器R0MOV P1,R0 地址在寄存器R0里MOV P1,20H 地址是內(nèi)存20HMOV P1,#20H 直接將20H這個(gè)數(shù)送P1口錯(cuò)!錯(cuò)!錯(cuò)!MOV P1,#20H對!11寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對尋址位尋址MOVC A, A+DPTR目的地寄存器操作數(shù)內(nèi)部RAM3AH65H3AH基址寄存器12H變址寄存器34H內(nèi)部RAM46H65HADPTRP

5、C46H12目的地寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對尋址XXH位尋址操作數(shù)SJMP 54HPC+54HPC2002H2002H =2056HPC2056H13寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對尋址位尋址20H27H21H28H21H20H10 0 0 0 0 0 0 0想一想:如果想使27H單元的第3位置1,該怎么辦呢?14單元地址2FH2EH2DH2CH2BH2AH29H28H 26H25H24H23H22H21H20H7F776F675F574F47372F271F170F07 MSB 位地址 LSB7E766E665E564E46 362E261E

6、160E067D756D655D554D45352D251D150D057C746C645C544C44 342C241C140C047B736B635B534B43 332B231B130B037A726A625A524A42 322A221A120A027971696159514941 312921191109017870686058504840 30282018100800位尋址地址表 例:SETB 3DH 3D 3C 3B3F 3E3A 393827H15寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對尋址位尋址SETB 3DH20H27H21H28H21H20H0 0 0 0

7、0 0 01016二、指令系統(tǒng)1、指令描述約定符 號含 義Rn表示當(dāng)前選定寄存器組的工作寄存器R0R7Ri表示作為間接尋址的地址指針R0R1#data表示8位立即數(shù),即00HFFH#data16表示16位立即數(shù),即0000HFFFFHaddr16表示16位地址,用于64K范圍內(nèi)尋址addr11表示11位地址,用于2K范圍內(nèi)尋址direct8位直接地址,可以是內(nèi)部RAM區(qū)的某一單元或某一專用功能寄存器的地址Rel帶符號的8位偏移量(-128+127)Bit位尋址區(qū)的直接尋址位(X)X地址單元中的內(nèi)容,或X作為間接尋址寄存器時(shí)所指單元的內(nèi)容將 后面的內(nèi)容傳送到前面去172、MCS-51的指令2.1

8、 數(shù)據(jù)傳送指令(29條)2.2 算術(shù)運(yùn)算指令(24條)2.3 邏輯運(yùn)算指令(24條)2.4 控制轉(zhuǎn)移指令(17條)2.5 位操作指令(17條)2.6 常用偽指令(17條)18目的地址 源地址數(shù) 據(jù)MOV ,MOV A,#20H,ARndirect1RiARndirect2Ri#dataARndirect2Ri#dataMOVRnA#datadirect2direct1ARndirect2Ri#dataRiAdirect2#data20HA2.1 數(shù)據(jù)傳送指令(29條) 8位數(shù)據(jù)傳送指令(15條) 192.1 數(shù)據(jù)傳送指令(29條) 16位數(shù)據(jù)傳送指令(1條) MOV DPTR,#data16

9、外部數(shù)據(jù)傳送指令(4條) MOVX ,,ADPTRRiMOVXADPTRRiDPTRARiDPTRARiA20交換和查表類指令(9條) ,AXCHdirectDPTRRidirectADPTRRi1)字節(jié)交換指令(3條) 2)低半字節(jié)交換指令(1條) XCHD A , Ri3)累加器A中高4位和低4位交換(1條) SWAP A 4)查表指令(2條) MOVC A , A+PCMOVC A , A+DPTR5)堆棧操作指令(2條) PUSH directPOP direct21directdirect2.2算術(shù)運(yùn)算類指令(24條) 加法指令(8條) A ,RnRi#dataADDRnRi#dat

10、adirectdirectA ,RnRi#dataADDCRnRi#data減法指令(4條) directdirectA ,RnRi#dataSUBBRnRi#dataBCD碼調(diào)整指令(1條) DA A 注意:DA A指令只能跟在ADD或ADDC加法指令后,不適用于減法指令。22助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期INC A00000100AA+1影響PSW的P標(biāo)志1INC Rn00001rrrRnRn+1n=07, rrr=0001111INC direct0101 direct(direct)(direct)+11INC Ri0000011i(Ri)(Ri)+1i=0,11INC

11、 DPTR10100011DPTRDPTR+12DEC A00010100AA-1影響PSW的P標(biāo)志1DEC Rn00011rrrRnRn-1n=07, rrr=0001111DEC direct00010101 direct(direct)(direct)+11DEC Ri0001011i(Ri)(Ri)-1i=0,11加1減1指令23乘法指令(1條) MUL A B除法指令(1條) DIV A B2.3邏輯及移位類指令邏輯與指令(6條) 助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期ANL A,direct01010101 directAAdirect按位相與1ANL A,Rn01011r

12、rrAARnn=07, rrr=0001111ANL A,Ri0101011iAA(Ri)i=0,11ANL A,#data01010100 dataAA#data1ANL direct,A01010010direct(direct)(direct)A不影響PSW的P標(biāo)志1ANL direct,#data01010011 direct data(direct)(direct)#data不影響PSW的P標(biāo)志224邏輯或指令(6條) 01000011 direct data助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期ORL A,direct01000101 directAAdirect按位相或1

13、ORL A,Rn01001rrrAARnn=07, rrr=0001111ORL A,Ri0100011iAA(Ri)i=0,11ORL A,#data01000100dataAA#data1ORL direct,A01000010 direct(direct)(direct)A不影響PSW的P標(biāo)志1ORL direct,#data(direct)(direct)#data不影響PSW的P標(biāo)志225邏輯異或指令(6條) 助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期XRL A,direct01100101 directAA(direct)按位相異或1XRL A,Rn01101rrrAARnn=

14、07, rrr=0001111XRL A,Ri0110011iAA (Ri)i=0,11XRL A,#data01100100 dataAA#data1XRL direct,A01100010 direct(direct)(direct)A不影響PSW的P標(biāo)志1XRL direct,#data01100011 direct data(direct)(direct)#data不影響PSW的P標(biāo)志226累加器A清0和取反指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期CLR A11100100A00HA中內(nèi)容清0,影響P標(biāo)志1CPL A11110100A中內(nèi)容按位取反,影響P標(biāo)志1AA27A.0

15、A.7A.0A.7A.0A.7A.0A.7CYCY RL A RR A RLC A RRC A注意:執(zhí)行帶進(jìn)位的循環(huán)移位指令之前,必須給CY置位或清零。循環(huán)移位指令282.4 控制轉(zhuǎn)移類指令 無條件轉(zhuǎn)移指令(4條)1) 長轉(zhuǎn)移指令:LJMP AAAAH ; AAAAHPCPC=0000HPC=AAAAH0000H0001HAAA9HAAAAH0002H假設(shè)執(zhí)行該指令前,PC的值為0000H。注意:該指令可以轉(zhuǎn)移到64 KB程序存儲(chǔ)器中的任意位置。29 PC高5位(保持不變) PC低11位A10A9A800 001A7A6A5A4A3A2A1A0操作碼(第一字節(jié))操作數(shù)(第二字節(jié))11位轉(zhuǎn)移地址

16、的形成示意圖程序計(jì)數(shù)器PC2)絕對轉(zhuǎn)移指令A(yù)JMP addr11 ; PC+2PC, addr11 PC.10PC.030PC2002H2003H0000H0001H2004H2005H2006HPCPCPC2006H2003HPC0002HPC3)相對轉(zhuǎn)移指令 例: SJMP 03H 03H03H就是當(dāng)前PC值與目的PC值相對差PC31條件轉(zhuǎn)移指令(8條)1)累加器A判0指令(2條)助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期JZ rel0110000若A=0, 則PCPC+rel, 否則程序順序執(zhí)行 2JNZ rel01110000若A0, 則PCPC+rel, 否則程序順序執(zhí)行22)減1非零轉(zhuǎn)

17、移指令(2條)助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期DJNZ Rn,rel11011rrr relRnRn-1,若Rn0,則PCPC+rel, 否則順序執(zhí)行2DJNZ direct,rel11010101 direct rel(direct)(direct)-1,若(direct)0,則PCPC+rel,否則順序執(zhí)行2323)比較轉(zhuǎn)移指令(4條)助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期CJNE A,#data,rel10110100 data rel若A#data, 則PCPC+rel,否則順序執(zhí)行;若 A#data,則CY=1,否則CY=02CJNE Rn,#data,rel10111rrrd

18、ata rel若 Rn#data,則PCPC+rel,否則順序執(zhí)行;若Rn#data,則CY=1,否則CY=02CJNE Ri,#data,rel1011011idata rel若(Ri)#data,則PCPC+rel,否則順序執(zhí)行;若(Ri)#data,則CY=1,否則CY=02CJNE A,direct,rel10110101direct rel若A(direct),則PCPC+rel,否則順序執(zhí)行;若A(direct),則CY=1,否則CY=0233條件轉(zhuǎn)移類指令范例方案一還有什么方法實(shí)現(xiàn)循環(huán)的終止?將00H0FH這16個(gè)數(shù)順序地置入片內(nèi)RAM20H2FH單元中。 MOV R0,#20H

19、 MOV R7,#0FH CLR ALOOP:MOV R0,A INC A INC R0 DJNZ R7,LOOP SJMP $34條件轉(zhuǎn)移類指令范例方案二MOV R0,#20H MOV R7,#0FH CLR ALOOP:MOV R0,A INC A INC R0 CJNE A,#0FH,LOOP SJMP $35條件轉(zhuǎn)移類指令范例方案三 MOV R0,#20H MOV A,#0FH MOV 30H,#00HLOOP:MOV R0,30H INC 30H INC R0 DEC A JNZ LOOP SJMP $36條件轉(zhuǎn)移類指令范例方案四 MOV R0,#20H MOV A,#0FH MOV

20、 30H,#00HLOOP:MOV R0,30H INC 30H INC R0 SUBB A,#01H JNC LOOP SJMP $37調(diào)用和返回指令(8條)1)絕對調(diào)用指令(1條)助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期ACALL addr11a10a9a810001addr70PC PC+2SP SP+1,(SP)PC07SP SP+1,(SP)PC815PC010 addr1122)長調(diào)用指令(1條)助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期LCALL addr1600010010addr158addr70PCPC+3SP SP+1,SPPC07SP SP+1,SPPC815PC addr1

21、62383)返回指令助記符格式機(jī)器碼(B)相應(yīng)操作機(jī)器周期RET00100010PC815 (SP), SP SP-1PC07 (SP), SP SP-1子程序返回指令2RETI00110010PC815 SP, SP SP-1PC07 SP, SP SP-1中斷返回指令2助記符格式機(jī)器碼(B)相應(yīng)操作指令說明NOP00000000空操作消耗1個(gè)機(jī)器周期4)空操作392.5 位操作類指令單元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07 MSB 位地址 LSB7E766E665

22、E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM 位尋址區(qū)位地址表40助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期MOV C,bit10100010CY bit位傳送指令,結(jié)果影響CY標(biāo)志2MOV bit,C1

23、0010010bit CY位傳送指令,結(jié)果不影響PSW22.位置位和位清零指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期CLR C11000011CY 0位清0指令,結(jié)果影響CY標(biāo)志1CLR bit11000010 bitbit 0位清0指令,結(jié)果不影響PSW1SETB C11010011CY1位置1指令,結(jié)果影響CY標(biāo)志1SETB bitbit 1位置1指令,結(jié)果不影響PSW111010010 bit1.位傳送指令413.位運(yùn)算指令助記符格式機(jī)器碼(B)相應(yīng)操作指令說明機(jī)器周期ANL C,bit10000010 bitCY CYbit位與指令2ANL C/bit10110010 bit位與指令2ORL ,bit01110010 bitCY CYbit位或指令2ORL C/bit10100010 bit位或指令2CPL C10110011位取反指令2CPL bit10110010位取反指令,結(jié)果不影響CY2CY CYbitCY CYbitCYCYbitb

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論