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

下載本文檔

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

文檔簡介

一個機(jī)器周期等于是12個振蕩周期,當(dāng)晶振為12MHz時,那么一個機(jī)器周期是?1復(fù)位電路工作原理手動復(fù)位2P0口內(nèi)部電路P0口某一位的結(jié)構(gòu)圖如以下圖所示,它由一個輸出鎖存器、兩個三態(tài)輸入緩沖器、一個轉(zhuǎn)換開關(guān)MUX、一個輸出驅(qū)動電路(T1和T2)和一個與門及一個非門組成。3(1)P0口用作通用I/O口MUX與鎖存器的Q端接通,與門輸出為0,T1截止,輸出驅(qū)動級就工作在需外接上拉電阻的漏極開路方式。

①P0口用作輸出口CPU在執(zhí)行輸出指令時,內(nèi)部數(shù)據(jù)總線的數(shù)據(jù)在“寫鎖存器〞信號的作用下,由D端進(jìn)入鎖存器,取反后出現(xiàn)在Q端,再經(jīng)過T2反向,那么P0.X引腳上的數(shù)據(jù)就是內(nèi)部總線的數(shù)據(jù)。由于T2為漏極開路輸出,故此時必須外接上拉電阻。4②P0口用作輸入口數(shù)據(jù)可以讀自端口的鎖存器,也可以讀自端口的引腳,這要看輸入操作執(zhí)行的是“讀鎖存器〞指令還是“讀引腳〞指令。方式1:讀引腳。CPU在執(zhí)行“MOV〞類輸入指令時(如:MOVA,P0),內(nèi)部產(chǎn)生的操作信號是“讀引腳〞。P0.X引腳上的數(shù)據(jù)經(jīng)過緩沖器2讀入到內(nèi)部總線。注意,在讀引腳時,必須先向電路中的鎖存器寫入1,使T2截止,P0.X引腳處于懸浮狀態(tài),可作為高阻抗輸入。5方式2:讀鎖存器。CPU在執(zhí)行“讀-改-寫〞類輸入指令時(如:ANLP0,A),內(nèi)部產(chǎn)生的操作信號是“讀鎖存器〞,鎖存器中的數(shù)據(jù)經(jīng)過緩沖器1送到內(nèi)部總線,然后與A的內(nèi)容進(jìn)行邏輯“與〞,結(jié)果送回P0的端口鎖存器并出現(xiàn)在引腳。除了MOV類指令外,其他的讀口操作指令都屬于這種情況。6〔3〕P0口小結(jié)①P0口既可作地址/數(shù)據(jù)總線使用,也可作通用I/O口使用。當(dāng)P0口作地址/數(shù)據(jù)總線使用時,就不能再作通用I/O口使用了。②P0口作輸出口使用時,輸出級屬漏極開路,必須外接上拉電阻,才有高電平輸出。③P0口作輸入口讀引腳時,應(yīng)先向鎖存器寫1,使T2截止,不影響輸入電平。④漏極開路的8位準(zhǔn)雙向I/O口,每位能驅(qū)動8個LS型TTL負(fù)載。

7P1口的內(nèi)部電路P1口是唯一的單功能口,僅能作為通用I/O口使用。由于在其輸出端接有上拉電阻,故可以直接輸出而無需外接上拉電阻。同P0口一樣,當(dāng)作輸入口時,必須先向鎖存器寫“1〞,使場效應(yīng)管T截止。每位能驅(qū)動4個LS型TTL負(fù)載。8P2口內(nèi)部電路圖中的控制信號C決定轉(zhuǎn)換開關(guān)MUX的位置:當(dāng)C=0時,MUX撥向下方,P2口為通用I/O口;當(dāng)控制信號C=1時,MUX撥向上方,P2口作為地址總線使用。在實際應(yīng)用中,P2口通常作為高8位地址總線使用。

每位能驅(qū)動4個LS型TTL負(fù)載。9P3口內(nèi)部電路P3口用作通用I/O口時,第二輸出功能信號W=1,P3口的每一位都可定義為輸入或輸出,其工作原理同P1口類似。在真正的應(yīng)用電路中,P3口的第二功能顯得更為重要。每位能驅(qū)動4個LS型TTL負(fù)載。10

第三講第三章MCS-51單片機(jī)指令系統(tǒng)要點:MCS-單片機(jī)指令系統(tǒng)概述MCS-單片機(jī)尋址方式MCS-匯編語言指令系統(tǒng)難點:尋址方式指令應(yīng)用11

第三講3.1概述指令:是CPU根據(jù)人的意圖執(zhí)行某種操作的命令。程序設(shè)計語言:是實現(xiàn)人機(jī)交換信息的根本工具,分為機(jī)器語言、匯編語言和高級語言。機(jī)器語言:用二進(jìn)制編碼表示每條指令,是計算機(jī)能直接識別和執(zhí)行的語言。匯編語言:是用助記符、符號和數(shù)字等表示指令的程序設(shè)計語言。它與機(jī)器語言指令一一對應(yīng)。12指令系統(tǒng)一種單片機(jī)的全部指令集合稱為指令系統(tǒng)。指令系統(tǒng)——表達(dá)了單片機(jī)的性能是應(yīng)用單片機(jī)程序設(shè)計的根底13§3.1.1指令格式89C51匯編語言指令格式[標(biāo)號]:操作碼[目的操作數(shù)],[源操作數(shù)];[注釋]匯編語言指令對應(yīng)的二進(jìn)制代碼格式單字節(jié)指令——49條雙字節(jié)指令——46條三字節(jié)指令——19條114條14單字節(jié)指令——49條操作碼和操作數(shù)包含在一個字節(jié)中。1、無操作數(shù)的單字節(jié)指令incdptr;指令碼為A3H2、含有操作數(shù)存放器編碼的單字節(jié)指令MOVA,Rn;令碼為11101xxx;其中xxx為相應(yīng)的存放;器號的n值。15雙字節(jié)指令——46條用一個字節(jié)表示操作碼,另一個字節(jié)表示操作數(shù)或操作數(shù)所在的地址mova,#data把第二個字節(jié)取出來放入第一個字節(jié)的累加器a中。指令碼:“74Hdata〞16

三字節(jié)指令——16條一個字節(jié)操作碼,兩個字節(jié)操作數(shù)movdptr,#data16;16位數(shù)據(jù)movdirect,#data;8位地址和數(shù)據(jù)cjnea,#data,rel;8位數(shù)據(jù)和地址lcalladdr16;16位地址17助記符意義助記符意義助記符意義MOV數(shù)據(jù)傳輸MUL乘法MOVC程序存儲器傳ADIV除法MOVX外部數(shù)據(jù)傳輸DA十進(jìn)制調(diào)整PUSH壓入堆棧AJMP無條件轉(zhuǎn)移POP堆棧彈出LJMP長轉(zhuǎn)移XCH數(shù)據(jù)交換SJMP短轉(zhuǎn)移XCHD交換低4位JMP相對轉(zhuǎn)移SWAP高低半字節(jié)交換JZ判A為0轉(zhuǎn)移ANL與運(yùn)算JNZ判A為非0轉(zhuǎn)移ORL或運(yùn)算JC判Cy為1轉(zhuǎn)移XRL異或運(yùn)算JNC判Cy為0轉(zhuǎn)移18助記符意義助記符意義助記符意義SETB置位JB直接位為1轉(zhuǎn)移CLR清零JNB直接位為0轉(zhuǎn)移CPL取反JBC直位為1轉(zhuǎn)移,并清該位RL循環(huán)左移CJNE比較不相等轉(zhuǎn)移RLC帶進(jìn)位循環(huán)左移DJNZ減1不為0轉(zhuǎn)RR循環(huán)右移ACALL絕對調(diào)用子程序RRC帶進(jìn)位循環(huán)右移LCALL長調(diào)用子程序ADD加法RET子程序返回ADDC帶進(jìn)位加法RETI中斷子程序返回SUBB帶進(jìn)位減法NOP空操作INC加1DEC減119尋址方式中常用符號注釋Rn表示當(dāng)前選定寄存器組的工作寄存器R0~R7,n=0~7Ri表示作為間接尋址的地址指針R0~R,i=0,1#data表示8位立即數(shù),即00H~0FFH。#data16表示16位立即數(shù),即0000H~0FFFFH。Direct8位直接地址,可為片內(nèi)RAM區(qū)某單元或某專用功能寄存器的地址。Addr1111位地址,可表示大于2KB范圍內(nèi)尋址,用于ACALL和AJMP指令中。Addr1616位地址,表示大于64KB范圍內(nèi)尋址,用于LCALL和LJMP指令中。Rel帶符號8位地址偏移量(-128~+127),用于SJMP和條件轉(zhuǎn)移指令。Bit片內(nèi)RAM或SFR的直接尋址位地址。@間接尋址方式中,表示間接尋址的符號。/加在位地址之前,表示對該位先取反再參與操作。(X)X地址單元中的內(nèi)容,或X作為間接尋址寄存器時所指單元的內(nèi)容。((X))由X間接尋址的單元的內(nèi)容,即X指向的地址單元中的內(nèi)容。$當(dāng)前指令所在地址←指令中數(shù)據(jù)的傳送方向,將箭頭右邊的內(nèi)容送入箭頭左邊的單元。203.2尋址方式

根本概念尋址——就是尋找指令中操作數(shù)或操作數(shù)所在地址。尋址方式——就是找到存放操作數(shù)的地址,并把操作數(shù)提取出來的方法,即尋找操作數(shù)或者是操作數(shù)地址的方法。8051單片機(jī)尋址方式共有7種:存放器尋址、直接尋址、立即數(shù)尋址存放器間接尋址、變址尋址、相對尋址位尋址。21存放器尋址———MOVA,R1;A←R1直接尋址————MOVA,81H;A←〔81H〕MOVA,SP;A←SP立即數(shù)尋址———MOVDPTR,#1638H;DPH←16,DPL←38H存放器間接尋址—MOVRO,#30H;R0←(30H)MOVA,@R0;A←(R0)即A←(30H)變址尋址————MOVDPTR,#0500H;DPTR←500HMOVA,#03H;A←3MOVCA,@A+DPTR;A←(500H+3)相對尋址————SJMP20H;轉(zhuǎn)跳至:PC←PC+20H位尋址—————MOVC,7FH;Cy←(7FH)MOVC,ACC.7;Cy←ACC.7223.3數(shù)據(jù)傳輸與交換23查表指令MOVCA,@A+DPTRMOVCA,@A+PC2000H02001H12002H42003H92004H162005H252006H362007H492008H642009H81

MOVA,#6 ;待查項

MOVDPTR,#2000H;DPTR為表頭

MOVCA,@A+DPTR;A←結(jié)果24交換指令低4位助記符格式相應(yīng)操作XCHA,RnA←→RnXCHA,directA←→(direct)XCHA,@RiA←→(Ri)XCHDA,@Ri

A

3-0

←→

(Ri)3-0SWAPA

A

3-0

←→A7-4

25堆棧指令〔2條〕助記符格式相應(yīng)操作PUSHdirectSP←SP+1,(SP)←(direct)POPdirectdirect←(SP),SP←SP-1注意:進(jìn)?!褩V羔楽P先加1,并指向棧頂?shù)纳弦粋€空單元,然后再將直接地址(direct)尋址的單元內(nèi)容壓入當(dāng)前SP所指示的堆棧單元中。該操作不影響標(biāo)志位P。出?!葘⒍褩V羔?SP)所指示的內(nèi)部RAM(棧頂)單元中內(nèi)容送入由直接地址尋址的單元中,然后再將棧指針(SP)減1并回送SP。該操作不影響標(biāo)志位P。26單片機(jī)堆棧的特點需設(shè)堆棧指針,如不重置SP,復(fù)位后為70H;堆棧操作遵循“先進(jìn)后出〞或“后進(jìn)先出〞的原那么;堆棧操作必須是字節(jié)型,且只能直接尋址;堆棧通常用于臨時保護(hù)數(shù)據(jù)及子程序調(diào)用時保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場。如果系統(tǒng)中設(shè)有中斷,那么必須設(shè)定堆棧指針,因為中斷效勞程序是自動將中斷效勞程序地址送入堆棧的。27算術(shù)運(yùn)算指令28算術(shù)運(yùn)算指令29邏輯運(yùn)算及移位指令30邏輯運(yùn)算及移位指令31邏輯運(yùn)算及移位指令注意:移位指令只與累加器A有關(guān)32NOP;(PC)←(PC)+1

空操作指令是一條單字節(jié)單周期指令。它控制CPU不做任何操作,僅僅是消耗這條指令執(zhí)行所需要的一個機(jī)器周期的時間,不影響任何標(biāo)志位,故稱為空操作指令。NOP指令在設(shè)計延時程序、拼湊精確延時時間及在程序等待或修改程序等場合是很有用的。關(guān)于空操作指令33【例25】利用DJNZ指令和NOP指令編寫一循環(huán)程序,實現(xiàn)延時1ms(晶振頻率為12MHz)。解:程序如下:DELAY:MOV A,#0AH ;1μsLOOP:MOV R2,#30H ;1μsDJNZ R2,$ ;2×48μsDJNZ R1,LOOP;1μs×(1+2×48+1)×10NOP ;1μsNOP ;1μsNOP ;1μsNOP ;1μsNOP ;1μsRET ;2μs總的延時時間為:1+(1+2×48+1)×10+7=998μs,假設(shè)再加上調(diào)用本子程序的調(diào)用指令所用的時間2μs共1000μs,即1ms。34返回指令——返回指令共兩條:一條是對應(yīng)兩條調(diào)用指令的子程序返回指令RET,另一條是對應(yīng)從中斷效勞程序的返回指令RETI。35位操作指令1、位傳輸:MOVC,bit

MOVbit,C2、位邏輯運(yùn)算:ANLC,bit

ORLC,bit

3、位清0指令:CLRbit

4、位置1指令:SETBbit

5、位取反指令:CPLbit

6、位條件轉(zhuǎn)移:JBbit,rel

JNCrel36作用:偽指令不要求計算機(jī)做任何操作;也沒有對應(yīng)的機(jī)器碼,不產(chǎn)生目標(biāo)程序;不影響程序的執(zhí)行;功能:幫助進(jìn)行匯編的一些指令,它主要用來指定程序或數(shù)據(jù)的起始位置,給出一些連續(xù)存放數(shù)據(jù)的地址或為中間運(yùn)算結(jié)果保存一局部存儲空間以及表示源程序結(jié)束等等。不同版本的匯編語言,偽指令的符號和含義可能有所不同。偽指令371、啟始指令格式:[符號:]ORG地址(十六進(jìn)制表示)例:ORG2000HSTART:MOVA,#7FH……382、字節(jié)定義格式:[標(biāo)號:]DB項或項表例:ORG2000HTAB1:DB30H,8AH,7FH,73DB'5','A','BCD'393、字定義格式:[標(biāo)號:]DW項或項表例:ORG1500HTAB2:DW1234H,80H……匯編以后:(1500H)=12H,(1501H)=34H,(1502H)=00H, (1503H)=80H404、等值指令格式:標(biāo)號:EQU項例: TAB1:EQU1000H TAB2:EQU

溫馨提示

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

最新文檔

評論

0/150

提交評論