




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、MCS單片機綜合應用0000H0000H0FFFH0FFFFH64KB80C5180C52SFR擴展擴展RAM00H7FH80H0FFH0000H0FFFFH片內片內ROM片內片內RAMa、程序存儲器、程序存儲器b、數據存儲器、數據存儲器擴展擴展ROM0FFFFH1000H擴展擴展ROMEA=1EA=04KB60KB3.1.1 指令系統概指令系統概述述3.1.2 MCS-51指令格式指令格式 指令的表示方法稱為指令格式。 一條指令由兩部分組成,即操作碼和操作數。 操作碼用來規定指令進行什么操作。 操作數是指令操作的對象,操作數可能是一個具體的數據,也可能是指出到哪里取得數據的地址或符號。 指令
2、是供用戶使用的單片機的軟件資源。 指令系統是指一臺計算機所能執行的指令集合。 一字節指令一字節指令(49條條) 只有一個字節,操作碼和操作數信息同在其中。例:INC DPTR 其功能為數據指針加1,指令碼為:1010001111101rrr例:MOV A,Rn 其功能為寄存器向累加器傳送數據,指令碼為:w 二字節指令二字節指令(45條條) 操作碼操作數例:立即數傳送指令 MOV A,data ,指令碼為:0111 0100立 即 數w 三字節指令三字節指令(17條條) 操作碼(1字節)操作數(2字節)例:邏輯與操作指令 ANL direct,data ,指令碼為:0101 0011直 接 地
3、址立 即 數3.1.3 MCS-51單片機尋址單片機尋址方式方式寄存器尋址方式直接尋址方式寄存器間接尋址方式立即尋址方式變址尋址方式位尋址方式相對尋址方式1)寄存器尋址方式寄存器尋址方式 以通用寄存器的內容為操作數的尋址方式。 例如: MOV A,R013HAR013H寄存器尋址方式的尋址范圍包括: 寄存器尋址的主要對象是通用寄存器,共有4組共32個通用寄存器,即R0R7,此時使用的是當前寄存器組,通過對PSW中的RS1、RS0位的狀態設置。 部分專用寄存器,如:A、B、DPTR等。 指令中直接給出操作數地址的尋址方式。直接尋址方式使用的是8位二進制數表示的地址,尋址范圍只限于內部RAM。 直
4、接尋址方式的尋址范圍包括:低低128單元單元 例如: MOV A,3AH2)直接尋址方式直接尋址方式13HA3AH13H專用寄存器專用寄存器SFR 直接尋址是訪問專用寄存器的唯一方法。例如: MOV PSW,#20H;或MOV 0D0H,#20H 3)寄存器間接尋址方式寄存器間接尋址方式寄存器中存放的內容為地址,以該地址中的內容作為操作數的尋址方式。在寄存器間接尋址方式中,應在寄存器的名稱前面加前綴標志“”。間接尋址方式的尋址范圍包括:內部內部RAM低低128B,使用R0或R1作間址寄存器,其通用形式為Ri(i=0或1); 例如: MOV A,R0片內RAM3AHR076HA3AH76H外部外
5、部RAM64KB,使用DPTR作間接寄存器,其形式為DPTR;外部外部RAM低低256B,可以使用R0或R1作間接寄存器尋址,其形式為 Ri(i=0或1); 例如:MOVX A,DPTR MOVX A,R0片外RAMA3410H30H3410HDPTR片外RAM20HR0A0020H30H30H30H堆棧操作指令堆棧操作指令(PUSH和POP),以堆棧指針SP作間接寄存器。4)立即尋址方式立即尋址方式 指令中直接給出操作數的尋址方式。 為了與直接尋址指令中的直接地址相區別,立即數用前面加有#號的8位或16位數來表示。例如:MOVA,# 60H;A#60H MOVDPTR,# 3400H;DPT
6、R#3400H MOV30H,# 40H;30H單元#40H 上述三條指令執行完后,累加器A中數據為立即數據60H, DPTR寄存器中數據為3400H,30H單元中數據為立即數40H。5)變址尋址方式變址尋址方式 變址尋址只能對程序存儲器中數據進行操作,所以尋址范圍可達64KB。由于程序存儲器是只讀的,因此變址尋址只有讀操作而無寫操作,在指令符號上采用MOVC的形式。 變址尋址是以DPTR或PC作基址寄存器,以累加器A作變址寄存器,并以兩者內容相加形成的16位地址作為操作數地址。 變址尋址的指令只有3條: MOVC A,A+DPTR MOVC A,A+PC JMP A+DPTR 變址尋址的指令
7、都是一字節指令。程序存儲器3F21HD PTR54HA例如: MOVC A,A+DPTR3F75H7FH7FH6)位尋址方式位尋址方式 位尋址指令中直接使用位地址,常用的位寄存器有C。 位尋址只能對有位地址的單元作位尋址操作。 尋址范圍包括: 1)內部RAM中的位尋址區 單元地址為20H27H,共16個單元128位,位地址是00H7FH 例如: SETB 10H;將10H位置1 若22H單元中存放著數據40H,22H單元的D0位的位地址為 10H,執行上述指令后(22H)=41H。 2)專用寄存器的可尋址位 可供位尋址的專用寄存器共有11個。 例如:CLR PSW.5;7)相對尋址方式)相對尋
8、址方式 相對尋址用于修改PC值,主要用于實現程序的分支轉移。 以當前程序計數器PC的內容為基礎,加上指令給出的一字節補碼數(偏移量rel)形成新的PC值的尋址方式。 目的地址轉移指令地址轉移指令字節數rel例如: SJMP 08H ;PCPC+2+08H程序存儲器2000HPCSJMP08HPC2002H200AHPC 通用寄存器區通用寄存器區位尋址區位尋址區00H20H1FH2FH30H7FHFFH80H用戶用戶RAM區區專用寄存器區專用寄存器區3.1.4 MCS-51單片機尋址方式單片機尋址方式小結小結(a) 內部數據存儲器尋址寄存器寄存器尋址尋址位尋址位尋址直接直接或或間接間接尋址尋址直
9、接直接尋址尋址(b) 外部數據存儲器尋址(c) 程序存儲器尋址0000H0100H0FFFFH0000H0FFFFH以DPTR作間址寄存器以R0或或R1作間址寄存器程序存儲器程序存儲器ROM間接間接尋址尋址變址變址尋址尋址3.2 MCS-51單片機指令分類介紹單片機指令分類介紹w 3.2.1 指令格式中符號意義w 3.2.2 數據傳送類指令w 3.2.3 算術運算類指令w 3.2.4 邏輯運算及移位類指令w 3.2.5 控制轉移類指令w 3.2.6 位操作類指令3.2.1 指令格式中符號意指令格式中符號意義義Rn當前選中的寄存器區中的當前選中的寄存器區中的8個工作寄存器個工作寄存器R0R7 (
10、n=07)。)。Ri當前選中的寄存器區中的當前選中的寄存器區中的2個工作寄存器個工作寄存器R0、R1 (i=0,1)。)。direct8位的內部數據存儲器單元中的地址。位的內部數據存儲器單元中的地址。#data包含在指令中的包含在指令中的8位常數。位常數。#data16包含在指令中的包含在指令中的16位常數。位常數。addr1616位目的地址。位目的地址。addr1111位目的地址。位目的地址。rel8位帶符號的偏移字節,簡稱偏移量。位帶符號的偏移字節,簡稱偏移量。DPTR數據指針,可用作數據指針,可用作16位地址寄存器。位地址寄存器。bit內部內部RAM或專用寄存器中的直接尋址位。或專用寄存
11、器中的直接尋址位。A累加器。累加器。B專用寄存器,用于乘法和除法指令中。專用寄存器,用于乘法和除法指令中。C進位標志或進位位,或布爾處理機中的累加器。進位標志或進位位,或布爾處理機中的累加器。 間址寄存器的前綴標志。間址寄存器的前綴標志。/ 加在位地址前面,表示對該位狀態取反加在位地址前面,表示對該位狀態取反(X) 某寄存器或單元的內容。某寄存器或單元的內容。(X) 由由X間接尋址的單元中的內容。間接尋址的單元中的內容。 箭頭左邊的內容被箭頭右邊的內容所取代。箭頭左邊的內容被箭頭右邊的內容所取代。3.2.2 數據傳送類指數據傳送類指令令u數據傳送類指令共29條,是將源操作數送到目的操 作數。指
12、令執行后,源操作數不變,目的操作數被源操作數取代。u 數據傳送類指令用到的助記符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP8種。 例如:MOV,直接地址direct累加器A直接地址direct間接地址Ri寄存器Rn立即數#data寄存器DPTRu源操作數可采用寄存器、寄存器間接、直接、立即、變址5種尋址方式尋址,目的操作數可以采用寄存器、寄存器間接、直接尋址3種尋址方式。MCS-51單片機片內數據傳送途徑下圖所示。3.2.2.1 內部內部RAM數據傳送指數據傳送指令令 以以A為目的操作數(為目的操作數(4條)條) MOV A,Rn;A (Rn) MOV A,di
13、rect;A(direct) MOV A,Ri;A(Ri) MOV A,#data;A #data 以以Rn為目的操作數(為目的操作數(3條)條) MOV Rn,A;Rn (A) MOV Rn,direct;Rn (direct) MOV Rn,#data;Rn #data 以直接地址為目的操作數(以直接地址為目的操作數(5條)條) MOV direct,#data ;direct #data MOV direct,A ;direct (A) MOV direct,direct ;direct (direct) MOV direct,Rn ;direct (Rn) MOV direct,Ri
14、;direct ( Ri) 以間接地址為目的操作數(以間接地址為目的操作數(3條)條) MOV Ri,A;(Ri) (A) MOV Ri,#data ;(Ri) #data MOV Ri,direct ;(Ri) (direct)例如:設(30H)=6FH,R1=40H,執行MOV R1,30H后, 30H單元中數據取出送入R1間接尋址的40H單元, (40H)=6FH。 以以DPTR為目的操作數(為目的操作數(1條)條) MOV DPTR,#data16 ;DPTR #data163.2.2.2 外部外部RAM數據傳送指令數據傳送指令 對外部RAM單元只能使用間接尋址方法,指令助記符為MOV
15、X,必須通過累加器A進行。 MOVX A,DPTR;A (DPTR) MOVX DPTR,A;(DPTR) (A) MOVX A,Ri ;A (Ri) MOVX Ri,A ;(Ri)( A)3.2.2.3 程序存儲器數據傳送指令程序存儲器數據傳送指令w 對程序存儲器ROM只能讀不能寫,即只能從程序存儲器讀出數據,指令助記符為MOVC,只能向累加器A傳送。 MOVC A,A+DPTR; A (A)+(DPTR) MOVC A,A+PC ; A (A)+(PC) 字節交換字節交換XCH A,Rn;(A) (Rn)XCH A ,direct;(A)(direct)XCH A,Ri;(A)(Ri) 半
16、字節交換半字節交換XCHD A,Ri ;(A)03(Ri)03SWAP A;(A)03(A)473.2.2.4 數據交換指令數據交換指令3.2.2.5 堆棧操作指令堆棧操作指令w 進棧進棧PUSH direct ;SP(SP)+1,(SP)(direct)w 出棧出棧POPdirect;direct(SP),SP (SP)-11加法指令加法指令ADD A,Rn;A (A) + (Rn)ADD A,direct;A (A) +(direct)ADD A,Ri;A (A) +(Ri)ADD A,#data;A (A )+ #data2帶進位加法指令帶進位加法指令ADDC A,Rn ;A (A) +
17、 (Rn) + (C)ADDC A,direct;A (A) +(direct)+(C)ADDC A,Ri ;A (A )+(Ri)+ (C)ADDC A,#data;A (A )+ #data +( C)C為來自PSW狀態寄存器中的進位標志位C。例如,設A=20H,R0=21H,C=1,執行指令 ADDC,R0后, A=42H。3.2.3 算術運算類指算術運算類指令令3帶借位減法指令帶借位減法指令SUBB A,Rn;A (A) - (Rn) - (C)SUBB A,direct;A (A) -(direct)- (C)SUBB A,Ri ;A (A) -(Ri)- (C)SUBB A,#da
18、ta;A (A) - #data (C)例如,設A=39H,R0=20H,(20H)=32H,C=1, 執行指令 SUBB ,R0后,A=06H。4加加1指令指令INC A ;A (A) + 1INC Rn ;Rn (Rn) + 1INC direct;direct (direct)+ 1INC Ri;(Ri)(Ri)+ 1INC DPTR;DPTR (DPTR) + 1例如,(30H)=22H,執行 INC 30H 后,(30H)=23H。5減減1指令指令DEC A ;A (A) - 1DEC Rn;Rn (Rn) - 1DEC direct;direct (direct)- 1DEC Ri
19、;(Ri)(Ri)- 1例如,R0=30H,(30H)=22H,執行 DEC R0 后, (30H)=21H。6乘法指令乘法指令MUL AB;BA ABA和B中各存放一個8位無符號數,指令執行后,16位乘積的高8位在B中,低8位存A中。例如,A=30H,B=60H,執行 MUL AB 后,A=00H,B=12H。7除法指令除法指令 DIV AB;AB商在A中,余數在B中 A和B中各存放一個8位無符號數,A放被除數,B放除數。 指令執行后,A中存放商,B中存入余數。8十進制調整指令十進制調整指令 BCD調整方法: 累加器低4位大于9或輔助進位位(AC)1,則進行低4位加6修正: A (A)06H
20、 累加器高4位大于9或進位標志位(CY)1,則進行高4位加6修正: A (A)60H 累加器高4位為9、低4位大于9,則進行高4位和低4位分別加6修正: A (A)66H DA A ;把A中按二進制相加的結果調整成按BCD碼相加的結果 例如,A=65BCD,B=78BCD,C=0,執行下列語句 ADD A,B DA A 執行后,A=43 BCD,C=1。1 1“與與”操作指令(操作指令(6 6條條,ANL,ANL) 2 2“或或”操作指令(操作指令(6 6條條,ORL,ORL) 3 3“異或異或”操作指令(操作指令(6 6條條,XRL,XRL) 4 4清除與求反指令(清除與求反指令(2 2條條
21、,CLR/CPL,CLR/CPL) 5 5循環指令循環指令(4(4條,條,RL/RR/RLC/RRCRL/RR/RLC/RRC)3.2.4 邏輯運算及移位類邏輯運算及移位類指令指令1無條件轉移指令無條件轉移指令l絕對(短)轉移指令AJMP addr11;PC100 addr11 l長轉移指令LJMP addr16;PC addr16l短(相對)轉移指令SJMP rel;PC (PC) + 2 + relSJMP HERE ;SJMP $ ;l 變址尋址轉移指令JMPA+DPTR;PC (A)+(DPTR)3.2.5 控制轉移類指令控制轉移類指令2條件轉移指令條件轉移指令l累加器為零(非零)轉移
22、指令 JZ rel;若(A)= 0,則PC (PC) + 2 + rel JNZ rel;若(A)0,則PC (PC) + 2 + rell兩數不等轉移指令 CJNE A,data,rel ;累加器內容與立即數不等轉移 CJNE A,direct,rel ;累加器與內部RAM單元內容不等轉移 CJNE Rn,#data,rel ;寄存器內容與立即數不等轉移 CJNE Ri,#data,rel ;內部RAM前128單元內容與立即數不等轉移l減1非零轉移指令 DJNZ Rn,rel ;Rn Rn1, 若(Rn) 0,則PC (PC) + 2 + rel DJNZ direct,rel ;direc
23、t direct1, 若(direct) 0,則PC (PC) + 3+ rel3子程序調用與返回指令子程序調用與返回指令l絕對調用指令 ACALL addr11;PC (PC)+2,SP(SP)+1,(SP)(PC)70 SP (SP)+1,(SP) (PC)158,PC100addr11l長調用指令 LCALL addr16 ;PC(PC)+3,SP(SP)+1,(SP)(PC)710 S P ( S P ) + 1 , ( S P ) ( P C )1 5 8,PCaddr16l返回指令 RET ;PC158(SP),SP(SP)-1 PC70 (SP),SP(SP)-1 RETI ;PC158(SP),SP(SP)-1 PC70 (SP),SP(SP)-14空操作指令空操作指令
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 稅務師網絡課件
- 2025年 廣州花都城投廣電城市服務有限公司招聘考試筆試試題附答案
- 2025年 北京市昌平區司法局人民陪審員選任考試試題附答案
- 2020-2025年中國水蘇糖行業投資潛力分析及行業發展趨勢報告
- 2025年中國硅芯管行業發展監測及投資前景展望報告
- 2025年中國訓練用羽毛球行業市場發展前景及發展趨勢與投資戰略研究報告
- 2025年中國廚房食物垃圾處理器行業發展前景預測及投資戰略研究報告
- 2025年環保節能型冷卻塔項目投資分析及可行性報告
- 中國典當O2O行業市場調查研究及投資前景預測報告
- 2025年中國無手柄扁噴筒行業市場發展前景及發展趨勢與投資戰略研究報告
- 餐飲運營餐飲管理流程考核試題及答案在2025年
- 2025龍巖市上杭縣藍溪鎮社區工作者考試真題
- 少隊工作計劃的風險控制措施
- 2025-2031年中國天然氣勘探行業市場運行態勢及投資潛力研判報告
- 2025年新媒體運營專員面試題及答案
- 四川綿陽公開招聘社區工作者考試高頻題庫帶答案2025年
- 《水利工程造價與招投標》課件-模塊六 招投標程序
- 關于水表考試題及答案
- 短文選詞填空12篇(新疆中考真題+中考模擬)(解析版)
- 植物化學保護學知到課后答案智慧樹章節測試答案2025年春華南農業大學
- 新能源發展與環境保護試題及答案
評論
0/150
提交評論