工學09單片機-第3章-指令系統(tǒng)課件_第1頁
工學09單片機-第3章-指令系統(tǒng)課件_第2頁
工學09單片機-第3章-指令系統(tǒng)課件_第3頁
工學09單片機-第3章-指令系統(tǒng)課件_第4頁
工學09單片機-第3章-指令系統(tǒng)課件_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一個機器周期等于是12個振蕩周期,當晶振為12MHz時,則一個機器周期是?第1頁,共46頁。1復位電路工作原理手動復位第2頁,共46頁。2P0口內部電路P0口某一位的結構圖如下圖所示,它由一個輸出鎖存器、兩個三態(tài)輸入緩沖器、一個轉換開關MUX、一個輸出驅動電路(T1和T2)和一個與門及一個非門組成。 第3頁,共46頁。3(1) P0口用作通用I/O口 MUX與鎖存器的Q端接通,與門輸出為0,T1截止,輸出驅動級就工作在需外接上拉電阻的漏極開路方式。 P0口用作輸出口 CPU在執(zhí)行輸出指令時,內部數據總線的數據在“寫鎖存器”信號的作用下,由D端進入鎖存器,取反后出現在Q端,再經過T2反向,則P0

2、.X引腳上的數據就是內部總線的數據。由于T2為漏極開路輸出,故此時必須外接上拉電阻。第4頁,共46頁。4 P0口用作輸入口 數據可以讀自端口的鎖存器,也可以讀自端口的引腳,這要看輸入操作執(zhí)行的是“讀鎖存器”指令還是“讀引腳”指令。方式1:讀引腳。CPU在執(zhí)行“MOV”類輸入指令時(如:MOV A , P0),內部產生的操作信號是“讀引腳”。P0.X引腳上的數據經過緩沖器2讀入到內部總線。注意,在讀引腳時,必須先向電路中的鎖存器寫入1,使T2截止,P0.X引腳處于懸浮狀態(tài),可作為高阻抗輸入。第5頁,共46頁。5方式2:讀鎖存器。CPU在執(zhí)行“讀-改-寫”類輸入指令時(如:ANL P0, A ),

3、內部產生的操作信號是“讀鎖存器”,鎖存器中的數據經過緩沖器1送到內部總線,然后與A的內容進行邏輯“與”,結果送回P0的端口鎖存器并出現在引腳。除了MOV類指令外,其他的讀口操作指令都屬于這種情況。第6頁,共46頁。6(3)P0口小結 P0口既可作地址/數據總線使用,也可作通用I/O口使用。當P0口作地址/數據總線使用時,就不能再作通用I/O口使用了。 P0口作輸出口使用時,輸出級屬漏極開路,必須外接上拉電阻,才有高電平輸出。 P0口作輸入口讀引腳時,應先向鎖存器寫1,使T2截止,不影響輸入電平。漏極開路的8位準雙向I/O口,每位能驅動8個LS型TTL負載。 第7頁,共46頁。7P1口的內部電路

4、P1口是唯一的單功能口,僅能作為通用I/O口使用。由于在其輸出端接有上拉電阻,故可以直接輸出而無需外接上拉電阻。同P0口一樣,當作輸入口時,必須先向鎖存器寫“1”,使場效應管T截止。每位能驅動4個LS型TTL負載。 第8頁,共46頁。8P2口內部電路圖中的控制信號C決定轉換開關MUX的位置:當C=0時,MUX撥向下方,P2口為通用I/O口;當控制信號C=1時,MUX撥向上方,P2口作為地址總線使用。在實際應用中,P2口通常作為高8位地址總線使用。 每位能驅動4個LS型TTL負載。第9頁,共46頁。9P3口內部電路P3口用作通用I/O口時,第二輸出功能信號W=1,P3口的每一位都可定義為輸入或輸

5、出,其工作原理同P1口類似。在真正的應用電路中,P3口的第二功能顯得更為重要 。每位能驅動4個LS型TTL負載。第10頁,共46頁。10 第三講第三章 MCS-51單片機指令系統(tǒng)要點: MCS-單片機指令系統(tǒng)概述 MCS-單片機尋址方式 MCS-匯編語言指令系統(tǒng)難點: 尋址方式 指令應用第11頁,共46頁。11 第三講3.1 概述指令:是CPU根據人的意圖執(zhí)行某種操作的命令。程序設計語言:是實現人機交換信息的基本工具, 分為機器語言、匯編語言和高級語言。機器語言:用二進制編碼表示每條指令,是計算 機能直接識別和執(zhí)行的語言。匯編語言:是用助記符、符號和數字等表示指令的程序設計語言。它與機器語言指

6、令一一對應。第12頁,共46頁。12指令系統(tǒng)一種單片機的全部指令集合稱為指令系統(tǒng)。指令系統(tǒng)體現了單片機的性能 是應用單片機程序設計的基礎第13頁,共46頁。133.1.1 指令格式89C51匯編語言指令格式標號:操作碼 目的操作數,源操作數;注釋匯編語言指令對應的二進制代碼格式單字節(jié)指令 49條雙字節(jié)指令 46條三字節(jié)指令 19條114條第14頁,共46頁。14單字節(jié)指令 49條操作碼和操作數包含在一個字節(jié)中。1、無操作數的單字節(jié)指令 inc dptr ; 指令碼為A3H2、含有操作數寄存器編碼的單字節(jié)指令 MOV A , Rn ;令碼為11101xxx ; 其中xxx為相應的寄存 ;器號的n

7、值。第15頁,共46頁。15雙字節(jié)指令 46條用一個字節(jié)表示操作碼,另一個字節(jié)表示操作數或操作數所在的地址 mov a , #data把第二個字節(jié)取出來放入第一個字節(jié)的累加器a中。指令碼:“ 74H data ”第16頁,共46頁。16三字節(jié)指令 16條一個字節(jié)操作碼,兩個字節(jié)操作數 mov dptr,#data16 ; 16位數據 mov direct,#data ;8位地址和數據 cjne a,#data,rel ;8位數據和地址 lcall addr16 ;16位地址第17頁,共46頁。17助記符意義助記符意義助記符意義MOV數據傳輸MUL乘法MOVC程序存儲器傳ADIV除法MOVX外部

8、數據傳輸DA十進制調整PUSH壓入堆棧AJMP無條件轉移POP堆棧彈出LJMP長轉移XCH數據交換SJMP短轉移XCHD交換低4位JMP相對轉移SWAP高低半字節(jié)交換JZ判A為0轉移ANL與運算JNZ判A為非0轉移ORL或運算JC判Cy為1轉移XRL異或運算JNC判Cy為0轉移第18頁,共46頁。18助記符意義助記符意義助記符意義SETB置位JB直接位為1轉移CLR清零JNB直接位為0轉移CPL取反JBC直位為1轉移,并清該位RL循環(huán)左移CJNE比較不相等轉移RLC帶進位循環(huán)左移DJNZ減1不為0轉RR循環(huán)右移ACALL絕對調用子程序RRC帶進位循環(huán)右移LCALL長調用子程序ADD加法RET子

9、程序返回ADDC帶進位加法RETI中斷子程序返回SUBB帶進位減法NOP空操作INC加1DEC減1第19頁,共46頁。19尋址方式中常用符號注釋Rn表示當前選定寄存器組的工作寄存器R0R7,n=07Ri表示作為間接尋址的地址指針R0R,i=0,1#data表示8位立即數,即00H0FFH。#data16表示16位立即數,即0000H0FFFFH。Direct8位直接地址,可為片內RAM區(qū)某單元或某專用功能寄存器的地址。Addr1111位地址,可表示大于2KB范圍內尋址,用于ACALL和AJMP指令中。 Addr1616位地址,表示大于64KB范圍內尋址,用于LCALL和LJMP指令中。 Rel

10、帶符號8位地址偏移量(-128+127),用于SJMP和條件轉移指令。Bit片內RAM或SFR的直接尋址位地址。間接尋址方式中,表示間接尋址的符號。加在位地址之前,表示對該位先取反再參與操作。(X)X地址單元中的內容,或X作為間接尋址寄存器時所指單元的內容。(X)由X間接尋址的單元的內容,即X指向的地址單元中的內容。$當前指令所在地址指令中數據的傳送方向,將箭頭右邊的內容送入箭頭左邊的單元。 第20頁,共46頁。203.2 尋址方式 基本概念尋址就是尋找指令中操作數或操作數所在地址。 尋址方式就是找到存放操作數的地址,并把操作數提取出來的方法,即尋找操作數或者是操作數地址的方法。 8051單片

11、機尋址方式共有7種: 寄存器尋址、 直接尋址、 立即數尋址 寄存器間接尋址、 變址尋址、 相對尋址 位尋址。 第21頁,共46頁。21寄存器尋址 MOV A,R1 ;AR1直接尋址 MOV A,81H ;A(81H) MOV A,SP ;ASP立即數尋址 MOV DPTR,#1638H ;DPH16,DPL 38H寄存器間接尋址 MOV RO,#30H ; R0(30H) MOV A,R0 ; A(R0)即A(30H)變址尋址 MOV DPTR,#0500H ; DPTR 500H MOV A,#03H ; A3 MOVC A,A+DPTR ; A(500H+3)相對尋址 SJMP 20H ;

12、 轉跳至:PCPC+20H位尋址 MOV C,7FH ; Cy(7FH) MOV C,ACC.7 ; CyACC.7 第22頁,共46頁。223.3數據傳輸與交換第23頁,共46頁。23查表指令MOVC A , A + DPTRMOVC A , A + PC2000H02001H12002H42003H92004H162005H252006H362007H492008H642009H81 MOV A,#6 ;待查項 MOV DPTR,#2000H ; DPTR為表頭 MOVC A,A+DPTR ; A結果第24頁,共46頁。24交換指令低4位 助記符格式 相應操作 XCH A , Rn A R

13、n XCH A , direct A ( direct ) XCH A , Ri A ( Ri ) XCHD A , Ri A 3-0 ( Ri )3-0 SWAP A A 3-0 A 7-4 第25頁,共46頁。25堆棧指令(2條)助記符格式相應操作 PUSH directSP SP+1,(SP) (direct) POP directdirect (SP), SP SP-1注意:進棧堆棧指針SP先加1,并指向棧頂的上一個空單元,然后再將直接地址(direct)尋址的單元內容壓入當前SP所指示的堆棧單元中。該操作不影響標志位P。出棧先將堆棧指針(SP)所指示的內部RAM(棧頂)單元中內容送入

14、由直接地址尋址的單元中,然后再將棧指針(SP)減1并回送SP。該操作不影響標志位P。第26頁,共46頁。26單片機堆棧的特點需設堆棧指針,如不重置SP,復位后為70H;堆棧操作遵循“先進后出”或“后進先出”的原則;堆棧操作必須是字節(jié)型,且只能直接尋址;堆棧通常用于臨時保護數據及子程序調用時保護現場和恢復現場。如果系統(tǒng)中設有中斷,則必須設定堆棧指針,因為中斷服務程序是自動將中斷服務程序地址送入堆棧的。第27頁,共46頁。27算術運算指令第28頁,共46頁。28算術運算指令第29頁,共46頁。29邏輯運算及移位指令第30頁,共46頁。30邏輯運算及移位指令第31頁,共46頁。31邏輯運算及移位指令

15、注意:移位指令只與累加器A有關第32頁,共46頁。32 NOP ;(PC)(PC)+1 空操作指令是一條單字節(jié)單周期指令。它控制 CPU不做任何操作,僅僅是消耗這條指令執(zhí)行所需要的一個機器周期的時間,不影響任何標志位,故稱為空操作指令。NOP指令在設計延時程序、拼湊精確延時時間及在程序等待或修改程序等場合是很有用的。關于空操作指令第33頁,共46頁。33【例25】 利用DJNZ指令和NOP指令編寫一循環(huán)程序,實現延時1ms(晶振頻率為12MHz)。解:程序如下:DELAY:MOVA,#0AH;1s LOOP:MOVR2,#30H;1s DJNZR2,$;248s DJNZR1,LOOP ;1s

16、 (1+248+1)10 NOP ;1s NOP;1s NOP;1s NOP;1s NOP;1s RET;2s總的延時時間為:1+(1+248+1)10+7=998s,若再加上調用本子程序的調用指令所用的時間2s共1000s,即1ms。第34頁,共46頁。34返回指令返回指令共兩條:一條是對應兩條調用指令的子程序返回指令RET,另一條是對應從中斷服務程序的返回指令RETI。第35頁,共46頁。35位操作指令1、位傳輸: MOV C , bit MOV bit , C2、位邏輯運算:ANL C,bit ORL C,bit 3、位清0指令: CLR bit 4、位置1指令: SETB bit 5、

17、位取反指令:CPL bit 6、位條件轉移: JB bit,rel JNC rel第36頁,共46頁。36作用: 偽指令不要求計算機做任何操作; 也沒有對應的機器碼,不產生目標程序; 不影響程序的執(zhí)行;功能: 幫助進行匯編的一些指令,它主要用來指定程序或數據的起始位置,給出一些連續(xù)存放數據的地址或為中間運算結果保留一部分存儲空間以及表示源程序結束等等。 不同版本的匯編語言,偽指令的符號和含義可能有所不同。偽指令第37頁,共46頁。371、啟始指令格式:符號: ORG 地址(十六進制表示)例: ORG 2000HSTART:MOV A,#7FH 第38頁,共46頁。382、字節(jié)定義格式:標號:

18、DB 項或項表例: ORG 2000HTAB1: DB 30H,8AH,7FH,73 DB 5,A,BCD第39頁,共46頁。393、字定義 格式:標號: DW 項或項表例: ORG 1500HTAB2: DW 1234H,80H 匯編以后:(1500H)=12H, (1501H)=34H, (1502H)=00H, (1503H)=80H第40頁,共46頁。404、等值指令 格式:標號: EQU 項例: TAB1: EQU 1000HTAB2: EQU 2000H 用EQU偽指令對某標號賦值后,該標號的值在整個程序中不能再改變。第41頁,共46頁。415、位定義格式:標號: BIT 位地址例: close_0:BIT P0.0 open_0:BIT P1.0 經以上偽指令定義后,在程序中就可以把close_0和open_0作為位地址來使用。第42頁,共46頁。426、數據地址賦值格式:標號: DATA nn例: DPTL DATA #20H 作用:將位地址nn賦值給標號,使用方 法同EQU指令,但標號必須先定義 后使用。第43頁,共46頁。437、匯編結束格式:符號: END例: ENDEND是匯編語言源程序的結束標志,表示匯編結束。在END以后所寫的指令,匯編程序都不予處理。一個源程序只能有一個END命令,否則就有一部分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論