• /  47
  • 下載費用: 19.9積分  

單片微型計算機原理及其應用電子教案12.ppt

'單片微型計算機原理及其應用電子教案12.ppt'
1.2 MCS-51單片機指令系統MCS-51單片機指令系統特點(1)指令執行時間快。(2)指令短,約有一半的指令為單字節指令。(3)用一條指令即可實現2個一字節的相乘或相除。(4)具有豐富的位操作指令。 (5)可直接用傳送指令實現端口的輸入輸出操作。1.2.1 MCS-51指令系統的分類、格式及一般說明1.2.1.1 指令分類 數據傳遞與交換算術運算邏輯運算程序轉移布爾處理操作(位操作指令)1.2.1.2 指令格式在MCS-51指令中,一般指令主要由操作碼、操作數組成。(1)操作碼指明執行什么性質和類型的操作。例如,數的傳送、加法、減法等。(2)操作數指明操作的數本身或者是操作數所在的地址。(3)指定操作結果存放的地址。1.2.1.3 指令描述符號介紹 Rn——當前選中的寄存器區中的8個工作寄存器R0~R7(n=0~7)。Ri——當前選中的寄存器區中的2個工作寄存器R0、R1(i=0,1)。direct—8位的內部數據存儲器單元中的地址。#data——包含在指令中的8位常數。#data16——包含在指令中的16位常數。addr16——16位目的地址。addr11——11位目的地址。rel——8位帶符號的偏移字節,簡稱偏移量。DPTR——數據指針,可用作16位地址寄存器指令描述符號介紹bit——內部RAM或專用寄存器中的直接尋址位。A——累加器。B——專用寄存器,用于乘法和除法指令中。C——進位標志或進位位,或布爾處理機中的累加器。@——間址寄存器或基址寄存器的前綴,如@Ri,@DPTR。/ ——位操作數的前綴,表示對該位操作數取反,如/bit?!痢瑑萊AM的直接地址或寄存器。(×)——由×尋址的單元中的內容。 ——箭頭左邊的內容被箭頭右邊的內容所代替1.2.2 分類指令1.2.2.1 數據傳送類指令數據傳送類指令共28條,是將源操作數送到目的操作數。指令執行后,源操作數不變,目的操作數被源操作數取代。數據傳送類指令用到的助記符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP8種。源操作數可采用寄存器、寄存器間接、直接、立即、變址5種尋址方式尋址,目的操作數可以采用寄存器、寄存器間接、直接尋址3種尋址方式。1.以A為目的操作數(機器碼)MOV A,Rn ;A← Rn,(A)=(Rn)MOV A,direct ;A←(direct), (A)=(direct)MOV A,#data ;A← #data, (A)= #dataMOV A,@Ri (重點);A←(Ri), (A)=((Ri))以Ri中的內容為地址,取該地址的內容送給A。注意:是from、copy操作,2.以Rn為目的操作數 MOV Rn,A ;Rn ← ( A)MOV Rn,direct ;Rn ←(direct)MOV Rn,#data ;Rn ← #data如 MOV R6,#45H 注意: Rn為R0—R73.以直接地址為目的操作數MOV direct ,A ; direct ← ( A)MOV direct , @Ri ; direct ← ((Ri)) MOV direct ,#data; direct ← #dataMOV direct , Rn ; direct ←( Rn )MOV direct1 , direct2 ; direct 1 ←(direct2)如:MOV 30H,56H4.以間接地址為目的操作數MOV @Ri,A ;(Ri) ← (A)MOV @Ri,direct ;(Ri) ←(direct)MOV @Ri,#data ;(Ri) ← #data以Ri的內容為地址,把#data的送入該單元中。例如:設(30H)=6FH,R1=40H,(40H)=26H執行MOV @R1,30H后,30H單元中數據取出送入R1間接尋址的40H單元,(40H)=6FH,而不是26H=6FH.5.以DPTR為目的操作數MOV DPTR,#data16 ;DPTR ← #data16例如執行 MOV DPTR,#2000H 后,(DPTR)= 2000H。注意:其他 MOV 指令均為1字節數。直接地址direct累加器A直接地址direct間接地址@Ri寄存器Rn立即數#data寄存器DPTR6.訪問外部數據RAMMOVX A,@DPTR ;A ← (DPTR)MOVX @DPTR,A ;( DPTR ) ← AMOVX A,@Ri ;A ← (P2Ri)MOVX @Ri,A ;(P2Ri)← A特點:雙向傳送,必須由A傳送,外地址由DPTR及P2Ri確定把外部ram單元3000h的內容寫入A中(1) MOV DPTR,#3000H MOVX A, @DPTR(2) MOV P2,#30H MOV R1,#00H MOVX A,@R1(3) MOVX A,@3000H (錯)7.讀程序存儲器 MOVC A,@A+DPTR ;A ← ((A)+(DPTR))MOVC A,@A+PC ;A ← ((A)+(PC))注意:只有對ROM的讀(無寫)指令, PC為當前指令所在ROM空間的地址+1例如已知A=30H,DPTR=3000H, 程序存儲器單元(3030H)=50H,執行MOVC A,@ A+DPTR后例如 MOVC A,@A+PC 存在ROM空間1203H, (A)=30H, (A)+(PC)= 1233H, (A)=8.數據交換 字節交換XCH A,Rn ;A RnXCH A ,direct ;A(direct)XCH A,@Ri ;A(Ri)如:XCH A ,30H ;設(A)=98H,(30H)=07H 結果 (A)=,(30H)=半字節交換(低4位互換)XCHD A,@Ri ;A0~3(Ri)0~3SWAP A ;A0~3A4~7如:設(A)=98H;SWAP A ;(A)=89H9.堆棧操作(難點)所謂堆棧是在片內RAM中按“先進后出,后進先出”原則設置的專用存儲區。數據的進棧出棧由指針SP統一管理。隊列:先進先出的存儲結構管理。堆棧的操作有如下兩條專用指令: PUSH direct;SP←(SP)+1,(SP)←(direct) POP direct ;direct←((SP)),SP ← (SP)-1堆棧指令主要用于子程序和數據保護,保證程序的正常執行。PUSH進棧指令執行過程片內RAM30H11H10HSP××片內RAM50H40H11H10HSP××40H30H片內RAM50H40H11H10H50H××SP30H片內RAM40H11H10H34H××SP30H34H34H××××執行前執行前執行前PUSH指令后執行POP指令后【例1】 將片內RAM 30H單元與40H單元中的內容。省略部分。EC direct ;direct← (direct)- 1DEC @Ri ;(Ri)←((Ri))- 1例如,R0=30H,(30H)=22H,執行 DEC @R0 后,(30H)=21H。注意:沒有 DEC DPTR的指令??捎?DEC DPL指令8.十進制調整指令DA A ;把A中按二進制相加的結果調整成按BCD碼相加的結果例如,A=65BCD,B=78BCD,C=0,執行下列語句ADD A,B; ADD 后,DA A前不能使用對C或AC有影響的指令。DA A;A=43 BCD,C=1。DA操作核心:(1)對低半字節>09H OR AC=1的數進行+06H的操作。 (2)對高字節>90H OR C=1的數進行+60H的操作?!纠?】 試把存放在R1R2和R3R4中的兩個16位數相加,結果存于R5R6中。解:參考程序如下: MOV A,R2 ;取第一個數的低8位 ADD A,R4 ;兩數的低8位相加 MOV R6,A ;保存和的低8位 MOV A,R1 ;取第一個數的高8位 ADDC A,R3 ;兩數的高8位相加,并把低8位相加時的進位位加進來 MOV R5,A ;把相加的高8位存入R5寄存器中 SJMP $ 1.2.2.3 邏輯運算與循環類指令1.“與”操作指令ANL A,#data ;(A)=(A) ∧ #dataANL A, direct ;(A)=(A) ∧ ( direct)ANL A,Rn ;(A)=(A) ∧ (Rn)ANL A, @Ri ;(A)=(A) ∧ ((Ri))ANL direct , #data ;(direct )=(direct ) ∧ #dataANL direct 1, direct2;(direct 1 )=(direct 1 ) ∧ (direct 2 )2.“或”操作指令 ORL A,#data ;(A)=(A) ∨ #dataORL A, direct ;(A)=(A) ∨ ( direct)ORL A,Rn ;(A)=(A) ∨ (Rn)ORL A, @Ri ;(A)=(A) ∨ ((Ri))ORL direct , #data ;(direct )=(direct ) ∨ #dataORL direct 1, direct2;(direct 1 )=(direct 1 ) ∨ (direct 2 )3.“異或”操作指令 XRL A,#data ;(A)=(A) ∨ #dataXRL A, direct ;(A)=(A) ∨ ( direct)XRL A,Rn ;(A)=(A) ∨ (Rn)XRL A, @Ri ;(A)=(A) ∨ ((Ri))XRL direct , #data ;(direct )=(direct ) ∨ #dataXRL direct 1, direct2;(direct 1 )=(direct 1 ) ∨ (direct 2 )4.求反與清除指令 CLR A ; (A)=0CPL A; (A)=(/A)5.循環指令RR A ;右移操作RL A ;左移操作RRC A;帶進位的右移操作RLC A;帶進位的左移操作注意:該指令常用于乘、除2的n次冪的操作。并且只能在A中進行。例:將30H的內容*4放入31H和32H中, 31H為高位。1.2.2.4 位操作指令 1.位數據傳送指令MOV C,bit ;C←(bit)MOV bit,C ;bit←(C)2.位狀態修改指令CLR C ;C←0CLR bit ;bit←0CPL C ;C←CPL bit ;bit←(bit)SETB C ;C←1SETB bit ;bit←13.位邏輯運算指令ANL C,bit ;C←(C)∧(bit)ANL C,/bit ;C←(C)∧(bit)ORL C,bit ;C←(C)∨(bit)ORL C,/bit ;C←(C)∨(bit) 1.2.2.5 程序轉移類指令1.無條件轉移指令絕對(短)轉移指令AJMP addr11 ;PC10~0 ← addr11 長轉移指令LJMP addr16 ;PC ← addr16短(相對)轉移指令SJMP rel ;PC ← PC + 2 + rel 間接轉移指令JMP @A+DPTR ;PC ← A + DPTR無條件轉移指令區別地址范圍地址空間地址計算相對偏移量rel的求法2.條件轉移指令累加器為零(非零)轉移指令JZ rel ; 若(A)=0,則轉移;PC←(PC)+2+rel;否則程序順序執行JNZ rel ; 若(A)?0,則轉移;PC←(PC)+2+rel;否則程序順序執減1非零轉移指令DJNZ Rn, rel; DJNZ direct,rel;(Rn)=(Rn)-1;if (Rn)〉0 轉移;否則 順序執行。兩數不等轉移指令 CJNE A,#data,relCJNE A,direct,relCJNE Rn,#data,relCJNE @Ri,#data,rel三分支指令 if A>=data c=0;否則c=1; if A=data ,則順序執行,反之則轉移。 3.位轉移指令JC rel ; 若C=1,則轉移(PC←(PC)+2+rel);否則程序順序執行JNC rel ; 若C=0,則轉移(PC←(PC)+2+rel);否則程序順序執JB bit,rel ; 若(bit)=1,則轉移(PC←(PC)+3+rel);否則程序順序執行JNB bit,rel ; 若(bit)=0,則轉移(PC←(PC)+3+rel);否則程序順序執行JBC bit,rel ; 若(bit)=1,則PC←(PC)+3+rel,(bit)←0;否則程序順序執行.功能:分別檢測指定位是1還是0,若條件符合,則CPU轉向指定的目標地址去執行程序;否則,順序執行下條指令。4、空操作指令NOP ;PC ←( PC)+1這是一條單字節指令。執行時,不作任何操作(即空操作),僅將程序計數器PC的內容加1,使CPU指向下一條指令繼續執行程序。這條指令常用來產生一個機器周期的時間延遲。5 調用子程序及返回指令 1.調用子程序指令LCALL addr16 ;PC←(PC)+3,SP←(SP)+1,(SP)←PC7~0;SP←(SP)+1,(SP)←PC15~8, PC←addr16ACALL addr11;PC ←(PC)+2,SP←(SP)+1,(SP)←PC7~0;SP ← (SP)+1,(SP)← PC15~8,PC10~0←addr11返回指令 RET ;PC15~8← ((SP)),SP←(SP)-1 ;PC7~0← ((SP)),SP←(SP)-1RETI ;PC15~8←((SP)),SP←(SP)-1 ;PC7~0 ←((SP)),SP←(SP)-1
關 鍵 詞:
電子 及其 原理 應用 微型計算機 教案 12 單片
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:單片微型計算機原理及其應用電子教案12.ppt
鏈接地址: http://www.476824.live/p-51497015.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.476824.live 網站版權所有

粵ICP備19057495號 

收起
展開
球探网即时蓝球比分 股票配资杭州雷曼期货 pk10四码二期必中方法 黑龙江36选7走势图表 云南快乐十分前三规律 南昌股票配资 股票配资利息 北京快3玩法 乐天赢配资 体彩31选7高手预测号 体彩环岛赛技术打法