電機(jī)學(xué)課件-單片機(jī)復(fù)習(xí)_第1頁
電機(jī)學(xué)課件-單片機(jī)復(fù)習(xí)_第2頁
電機(jī)學(xué)課件-單片機(jī)復(fù)習(xí)_第3頁
電機(jī)學(xué)課件-單片機(jī)復(fù)習(xí)_第4頁
電機(jī)學(xué)課件-單片機(jī)復(fù)習(xí)_第5頁
已閱讀5頁,還剩142頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)復(fù)習(xí)一、微機(jī)硬件組成上頁下頁回目錄CPU微處理器RAMI/OROM外設(shè)輔助電路CBUSDBUSABUSCBUS:控制總線,不確定DBUS:數(shù)據(jù)總線,雙向三態(tài)ABUS:地址總線,單向三態(tài)時(shí)鐘電路§1.4

.3單片機(jī)內(nèi)部結(jié)構(gòu)CPUROMRAM串行I/O定時(shí)器并行I/O中斷系統(tǒng)GNDVcc圖1-13單片機(jī)的內(nèi)部結(jié)構(gòu)上頁下頁回目錄內(nèi)部總線§1.4

.4單片機(jī)應(yīng)用系統(tǒng)1、基本系統(tǒng)單片機(jī)復(fù)位電路電源輸入/輸出設(shè)備時(shí)鐘電路圖1-14單片機(jī)的基本系統(tǒng)結(jié)構(gòu)圖上頁下頁回目錄輔助電路控制對(duì)象最小系統(tǒng)§1.4

.4單片機(jī)應(yīng)用系統(tǒng)1、基本系統(tǒng)單片機(jī)復(fù)位電路電源輸入/輸出設(shè)備時(shí)鐘電路圖1-14單片機(jī)的基本系統(tǒng)結(jié)構(gòu)圖上頁下頁回目錄輔助電路控制對(duì)象最小系統(tǒng)40引腳,雙列直插式結(jié)構(gòu)上頁下頁回目錄RST/VPDP3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7P0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0RXDTXDINT0

INT1

T0

WRRDT1

XTAL1XTAL2VssVccEA/VPPALE/PROGPSEN80318051875140393837363534333231302928272625242322211234567891011121314151617181920§2.3MCS-51單片機(jī)的引腳功能用戶外特性一、51單片機(jī)的管腳功能1、按功能分類I/O口線P0、

P1、

P2、

P3共32條電源Vcc、Vss共2條時(shí)鐘XTAL1、XTAL2共2條上頁下頁回目錄控制口線PSEN、ALE、EA/VPP、RESET

共4條數(shù)據(jù)/地址復(fù)用口I/O口雙功能口2、管腳的功能(1)電源與時(shí)鐘Vcc:接+5V電源端

Vss:接地端XTAL1:片內(nèi)振蕩電路輸入端XTAL2:片內(nèi)振蕩電路輸出端內(nèi)時(shí)鐘方式:在XTAL1、XTAL2上外接定時(shí)元件,使其形成自激振蕩器。時(shí)鐘電路:內(nèi)時(shí)鐘方式外時(shí)鐘方式上頁下頁回目錄

定時(shí)元件采用由石英晶體和電容組成并聯(lián)諧振電路。晶體和電容盡可能靠近單片機(jī)芯片。單片機(jī)XTAL1XTAL21918C1C2電容通常選擇為30PF左右振蕩頻率1.2MHz~12MHz晶振內(nèi)時(shí)鐘方式電路圖上頁下頁回目錄單片機(jī)XTAL2XTAL1外時(shí)鐘方式:XTAL1接地,XTAL2接外部振蕩器外時(shí)鐘方式電路圖外部振蕩源+5V1819上拉電阻頻率低于12MHz上頁下頁回目錄OC門復(fù)位信號(hào):高電平復(fù)位CPU,低電平CPU工作EA/VPPALEPSEN名稱功能片外取指信號(hào)(片外程序存儲(chǔ)器讀)輸出端低電平有效。通過P0口讀回指令或常數(shù)。控制的是片外程序存儲(chǔ)器RESET⑵控制信號(hào)地址鎖存信號(hào)。ALE低電平時(shí),P0口出現(xiàn)數(shù)據(jù)信息;ALE高電平時(shí),P0口出現(xiàn)地址信息。程序存儲(chǔ)器選擇信號(hào)

上頁下頁回目錄EA=0時(shí),選外部ROM;1,地址小于4k時(shí),選內(nèi)部ROM地址大于4k時(shí),選外部ROMP0口是數(shù)據(jù)/地址復(fù)用口用下降沿鎖存P0口的低8位地址到外部鎖存器寄存器內(nèi)容寄存器內(nèi)容表2-2復(fù)位后內(nèi)部寄存器狀態(tài)PC0000HACC00HB00HPSW00HSP07HDPTR0000HP0~P30FFHIP×××00000BIE0××00000BTMOD00HTCON00HTH000HTL0

00HTH100HTL1

00HSCON00HSBUF不定PCON0××000B上頁下頁回目錄803180518751VSSVCCRST409200.47μFR151kR251k+5V復(fù)位電路手動(dòng)復(fù)位KR上電自動(dòng)復(fù)位KR高電平要保持10ms以上+5VRESET高電平有效上頁下頁回目錄作通用I/O口輸出時(shí):將“1”寫入鎖存器輸出高電平將“0”寫入鎖存器Q=1,T導(dǎo)通輸出低電平作通用I/O口輸入時(shí):口鎖存器必須寫“1”先將“1”寫入鎖存器,使T截止,口線上的數(shù)據(jù)取決于外部輸入Q=0,T截止

P1口的驅(qū)動(dòng)能力:驅(qū)動(dòng)4個(gè)TTL門上頁下頁回目錄內(nèi)部總線為引腳為“高電平”“低電平”“1”“0”“讀”準(zhǔn)雙向口P3口的第二功能狀態(tài)P3.0RXD串入(接收端)P3.1TXD串出(發(fā)送端)P3.6WR外部RAM寫信號(hào)P3.3INT1外部中斷1輸入P3.4T0計(jì)數(shù)器0輸入P3.5T1計(jì)數(shù)器1輸入第二功能作用口線P3.2INT0外部中斷0輸入P3.7RD外部RAM讀信號(hào)上頁下頁回目錄ALEP3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0EAPSENRST803180518751VccVssP1口P2口P0口373GE+5VA0~A7A8~A15D0~D7I/OXTAL1XTAL2RXDTXDINT0INT1T0T1WRRD控制總線CB二、51單片機(jī)的三總線結(jié)構(gòu)數(shù)據(jù)總線DB地址總線AB利用三條總線,可方便地進(jìn)行系統(tǒng)擴(kuò)展晶振1.2~12MHZ上頁下頁回目錄8031地址總線AB(A0~A15)寬16位片外尋址64KBP0.0~P0.7ALE鎖存到鎖存器373A0~A7P2.0~P2.7A8~A15數(shù)據(jù)總線DB(D0~D7)寬8位雙向、三態(tài)P0.0~P0.7D0~D7控制總線CB寬12位P3口的第二功能狀態(tài)加上控制線PSENEAALERESET上頁下頁回目錄SFR特殊功能寄存器FFH80H上頁下頁回目錄內(nèi)部RAMSFR特殊功能寄存器7FH00HFFH80H7FH00HFFH80HMCS-51內(nèi)部RAM配置52系列內(nèi)部RAM配置直接尋址內(nèi)部數(shù)據(jù)存儲(chǔ)器配置圖地址重疊256B384B內(nèi)部RAM內(nèi)部RAM間接尋址僅52系列有1、內(nèi)部RAM區(qū)(MCS-51)MCS-51內(nèi)部RAM只有128B內(nèi)部RAM區(qū)分為三部分地址:00H~7FH上頁下頁回目錄內(nèi)部RAM7FH00HSFR特殊功能寄存器FFH80H7FH00H位尋址區(qū)2FH20H工作寄存器區(qū)1FH00H7FH30H數(shù)據(jù)緩沖區(qū)80個(gè)字節(jié)為真正的RAM16個(gè)字節(jié)分為128個(gè)RAM位32個(gè)字節(jié)分為四個(gè)工作寄存器區(qū)每個(gè)區(qū)8個(gè)工作寄存器0FH08H17H10H2FH20H7FH30H0區(qū)(8字節(jié))1區(qū)(8字節(jié))2區(qū)(8字節(jié))3區(qū)(8字節(jié))位尋址區(qū)數(shù)據(jù)緩沖區(qū)80個(gè)字節(jié)RAM只能按字節(jié)尋址16個(gè)字節(jié)分為128個(gè)RAM位可按位亦可按字節(jié)尋址四個(gè)工作寄存器區(qū)內(nèi)部RAM區(qū)功能配置圖R7R0~R7R0~R7R0~R7R0~00H1FH07H00H1FH18H布爾處理器上頁下頁回目錄每個(gè)區(qū),8個(gè)工作寄存器R0~R7亦可作普通RAM使用⑴通用寄存器組32個(gè)RAM單元

共4個(gè)區(qū),每個(gè)區(qū)8個(gè)通用工作寄存器R0~R7“區(qū)”的選擇由程序狀態(tài)字PSW中的RS1和RS0確定工作寄存器區(qū)地址RS1RS0

2區(qū)10H~17H10

3區(qū)18H~1FH11上頁下頁回目錄

0區(qū)00H~0007H

1區(qū)08H~010FH⑵位尋址區(qū)(16個(gè)RAM單元VS12個(gè)SFR)·字節(jié)地址:20H~2FH·16個(gè)RAM字節(jié)共128個(gè)RAM位·位地址:00H~7FH·12個(gè)SFR中的93位具有位尋址功能位尋址區(qū)128個(gè)RAM位93個(gè)SFR位·布爾處理機(jī)數(shù)據(jù)存儲(chǔ)器的主要組成部分上頁下頁回目錄布爾處理機(jī)共221位位地址請(qǐng)參看書的P43:圖2-15

圖2-16直接地址能被8所整除的構(gòu)成其中3位無定義⑵用戶RAM區(qū)(數(shù)據(jù)緩沖區(qū))共80個(gè)單元字節(jié)地址:30H~7FH8051單片機(jī)復(fù)位時(shí),堆棧指針SP指向07H單元片內(nèi)RAM的部分單元可用作堆棧51的棧區(qū)不是固定的,為避開工作寄存器區(qū)、位尋址區(qū),用戶堆棧一般設(shè)置在30H~7FH之間上頁下頁回目錄真正的RAM單元SP指針是可編程的寄存器⑴程序計(jì)數(shù)器PC16位專用寄存器,尋址范圍64KB

此時(shí)的程序是順序執(zhí)行的2.專用寄存器區(qū)

通電時(shí)自動(dòng)復(fù)位,運(yùn)行時(shí)可手動(dòng)復(fù)位,復(fù)位后,PC的內(nèi)容自動(dòng)清零用來存放下一條指令地址。CPU取指令時(shí),將PC內(nèi)容經(jīng)地址總線送到程序存儲(chǔ)器,從該地址單元取回指令,譯碼并執(zhí)行;同時(shí),PC自動(dòng)加1如果程序需要轉(zhuǎn)移,可在程序中安排轉(zhuǎn)移或條件轉(zhuǎn)移指令(JMP或JNC)、調(diào)用子程序指令CALL等上頁下頁回目錄PC0000H系統(tǒng)的啟動(dòng)地址

23個(gè)專用(3個(gè)屬于52)其中5個(gè)是雙字節(jié)寄存器,PC物理上是獨(dú)立的,其余22個(gè)屬于SFR,共占用26個(gè)字節(jié)⑷程序狀態(tài)字PSW地址:0D0H·8位寄存器,存放程序的狀態(tài)信息CY

D7D6D5D4D3D2D1D0ACF0RS1RS0OVP格式如下:進(jìn)/借位標(biāo)志CY(PSW.7)加法運(yùn)算時(shí),如果D7有進(jìn)位,則CY=1,否則CY=0減法運(yùn)算時(shí),如果D7有借位,則CY=1,否則CY=0布爾運(yùn)算中被定義為位累加器上頁下頁回目錄PSWD7??????D0CY輔助進(jìn)位標(biāo)志AC(PSW.6)8位加法運(yùn)算時(shí),如果低半字節(jié)的D3向D4有進(jìn)位,則

AC=1,否則AC=08位減法運(yùn)算時(shí),如果低半字節(jié)的D3向D4有借位,則AC=1,否則AC=0標(biāo)志F0(PSW.5)·由用戶定義·可用軟件來使它置“1”、或清“0”·可由軟件測(cè)試F0來控制程序流向上頁下頁回目錄D7~D4D3~D0AC工作寄存器區(qū)選擇位RS1

、RS0(PSW.4、PSW.3)通過軟件來改變RS1、RS0的組合,以確定當(dāng)前工作寄存器區(qū)。上頁下頁回目錄工作寄存器區(qū)地址RS1RS0

2區(qū)10H~17H10

3區(qū)18H~1FH11

0區(qū)00H~0007H

1區(qū)08H~010FHPSW.4PSW.3用布爾操作來改變OV=C6′C7′+溢出標(biāo)志OV(PSW.2)·作為有符號(hào)數(shù)加、減法時(shí)由硬件置位或清除,以指示運(yùn)算結(jié)果是否溢出·執(zhí)行加/減法指令時(shí),用Ci′

表示i位向i+1有進(jìn)/借位a)第6位向第7位有進(jìn)/借位,而第7位不向CY進(jìn)/借位時(shí)b)第6位不向第7位進(jìn)/借位,而第7位向CY有進(jìn)/借位時(shí)OV=1,否則OV=0·若OV=1,意味著加/減法的結(jié)果已超出了一個(gè)字節(jié)

有符號(hào)補(bǔ)碼數(shù)

所表示的范圍(-128~+127)上頁下頁回目錄a)OV=10b)OV=01D7D6D5D4D3D2D1D0例:01010110(+86)(正)00110010(+50)(正)00010001此時(shí)C6′=1、

C7′=0則D7D6D5D4D3D2D1D010010110(-106)(負(fù))110111001(+136)(正)(-197)(負(fù))OV=C6′C7′=1

++此時(shí)C6′=0、

C7′=1則OV=C6′C7′=1

++上頁下頁回目錄符號(hào)位110100101(-91)(負(fù))Cy奇偶標(biāo)志P(PSW.0)·每個(gè)指令周期都由硬件置位或清零,以表示累加器A中值為“1”的位數(shù)的奇偶性·該標(biāo)志可用于串行數(shù)據(jù)通訊,驗(yàn)證數(shù)據(jù)傳輸?shù)目煽啃陨享撓马摶啬夸汸=1A中1的個(gè)數(shù)為奇數(shù)0A中1的個(gè)數(shù)為偶數(shù)⑸堆棧指針SP8位寄存器,存放棧頂?shù)刂繁Wo(hù)CPU現(xiàn)場(chǎng)和斷點(diǎn)地址作用:工作方式:“先進(jìn)后出”或“后進(jìn)先出”數(shù)據(jù)壓入堆棧時(shí),SP自動(dòng)加1數(shù)據(jù)彈出堆棧時(shí),SP自動(dòng)減1SP始終指向棧頂?shù)刂飞享撓马摶啬夸浿袛鄷r(shí)轉(zhuǎn)子時(shí)棧區(qū)“向上生成”按“先進(jìn)后出”工作原則,由SP組織的內(nèi)部RAM區(qū)域,被稱為堆棧。主程序⑹數(shù)據(jù)指針DPTR·16位寄存器,高字節(jié)用DPH表示,低字節(jié)用DPL表示·對(duì)外部RAM

或I/O

口尋址,范圍64KB例:MOVXA,@DPTRMOVX@DPTR,A;將外部RAM中地址為@DPTR的單元內(nèi)容讀到A中;將A中的內(nèi)容寫到外部RAM中地址為@DPTR的單元MOVCA,A+@DPTR;采用基址+變址的方法讀程序存儲(chǔ)器內(nèi)的表格常數(shù);DPTR為基址寄存器,A為變址寄存器上頁下頁回目錄(DPTR)AP3.7RDP3.6WR(A)DPTR((A)+(DPTR))APSEN⑺I/O端口P0~P3地址:80H90H0A0H0B0H專用寄存器P0~P3分別是端口P0~P3的鎖存器⑻串行數(shù)據(jù)緩沖器SBUF地址:99H存放欲發(fā)送的數(shù)據(jù)存放已接收的數(shù)據(jù)一個(gè)地址:99H⑼定時(shí)/計(jì)數(shù)器T0T1MCS-51系列有2個(gè)16位定時(shí)/計(jì)數(shù)器T0、T1MCS-52系列增加了1個(gè)16位定時(shí)/計(jì)數(shù)器T2上頁下頁回目錄SBUF兩個(gè)緩沖器共用“寫”發(fā)送緩沖器“讀”接受緩沖器MOVSBUF,AMOVA,SBUF⑽其他控制寄存器IP0B8H中斷優(yōu)先控制寄存器IE0A8H中斷允許控制寄存器TMOD89H定時(shí)/計(jì)數(shù)器方式控制寄存器TCON88H

定時(shí)/計(jì)數(shù)器控制寄存器SCON99H串行口控制寄存器PCON97H電源及波特率選擇控制上頁下頁回目錄地址名稱作用§2.5MCS-51CPU時(shí)序一、機(jī)器周期、狀態(tài)、相位·一個(gè)機(jī)器周期包括6個(gè)S

狀態(tài)S1~S6,每個(gè)S狀態(tài)分為2(拍)個(gè)振蕩周期(相位P1,相位P2)?!?個(gè)機(jī)器周期=6個(gè)S狀態(tài)=12(拍)個(gè)振蕩周期·采用主頻為12MHz振蕩源,每個(gè)機(jī)器周期為1μS上頁下頁回目錄又稱為CPU周期二、匯編語言的格式[

標(biāo)號(hào):]

操作碼[操作數(shù)]

[;注釋]其中除操作碼部分是必須的,括號(hào)內(nèi)的區(qū)段是任選項(xiàng)。1、標(biāo)號(hào)標(biāo)號(hào)是該指令的符號(hào)地址,可根據(jù)需要設(shè)定必須以字母開始,以“

:”結(jié)束,長(zhǎng)度不超過8個(gè)字符系統(tǒng)中的保留字符不能作標(biāo)號(hào),如:SFR名、ADD等標(biāo)號(hào)可被其他語句的操作數(shù)直接引用源程序中,一個(gè)標(biāo)號(hào)只能定義一個(gè)語句,不能相重名字保持一義性上頁下頁回目錄一個(gè)匯編語句分為四個(gè)區(qū)段操作碼操作碼操作碼2、操作碼由指令系統(tǒng)的助記符、偽指令助記符組成。操作碼是每一句匯編語言所必須的操作碼和操作數(shù)之間用空格分開3、操作數(shù)可為二進(jìn)制數(shù)(B),十進(jìn)制數(shù)(D),十六進(jìn)制數(shù)(H)數(shù)字大于9,則數(shù)字應(yīng)以“0”開頭可以是操作數(shù)地址、立即數(shù)、標(biāo)號(hào)、表達(dá)式如M+3目的操作數(shù)和源操作數(shù)之間用“,”分開可以是寄存器名如A、B、R、DPTRM標(biāo)號(hào)被定義過的上頁下頁回目錄BinaryDecimalHexadecimal指出該語句的操作性質(zhì)4、注釋以“

;”開頭,是程序員對(duì)指令操作的解釋,以幫助閱讀、理解程序的意義可有可無匯編時(shí)對(duì)這部分不予處理,不譯成任何機(jī)器代碼可用英語或某種簡(jiǎn)潔的方式解釋指令,或打印程序清單上頁下頁回目錄三、偽指令偽指令僅在匯編過程中起控制作用不產(chǎn)生可執(zhí)行目標(biāo)代碼,又稱為軟指令1、起點(diǎn)指令ORG格式:ORG××××H功能:給程序起始地址或數(shù)據(jù)塊的起始地址賦值例:用法:一般出現(xiàn)在每段源程序或數(shù)據(jù)塊的開始一個(gè)源程序可多次出現(xiàn)ORG指令ORG

8000HSTART:MOVA,#74H

┇;源程序的起始地址為8000H上頁下頁回目錄首地址首地址2、結(jié)束命令END格式:END功能:匯編程序結(jié)束標(biāo)志附在一個(gè)源程序的結(jié)尾一個(gè)源程序只能出現(xiàn)一次END指令3、定義字節(jié)命令DB格式:功能:標(biāo)號(hào):DB

字節(jié)常數(shù)或字符串(8位)定義字節(jié)的內(nèi)容,匯編程序把DB定義的字節(jié)依次存入標(biāo)號(hào)開始的存儲(chǔ)單元用法:有定義的內(nèi)存單元地址項(xiàng)或項(xiàng)表上頁下頁回目錄例:ORG8000HTAB:

DB45H,73,‘5’,‘A’TAB1:DB101B偽指令ORG定義了TAB的起始地址為8000H,偽指令DB定義了8000H~8003單元的內(nèi)容依次為:(8000H)=45H(8001H)=49H(8002H)=35H(8003H)=41H(8004H)=05HTABTAB1(1)由ORG定義(2)跟在其他源程序之后上頁下頁回目錄4、定義字命令DW格式:功能:標(biāo)號(hào):DW字或字表定義若干個(gè)字(雙字節(jié))例:ORG8000HTAB:DW7234H,8AH,10(8000H)=72H(8001H)=34H(8002H)=00H(8003H)=8AH(8005H)=0AH匯編后:(8004H)=00H上頁下頁回目錄5、定義空間命令DS格式:功能:標(biāo)號(hào):DS數(shù)據(jù)或字符及表達(dá)式例:(8008H)=30H(8009H)=8AH從指定單元地址開始,由數(shù)據(jù)或字符及表達(dá)式的值來定義應(yīng)保留的單元數(shù),備用ORG8000HDS08HDB30H,8AH即:8000H~8007H單元保留備用定義空間上頁下頁回目錄6、等值命令EQU格式:字符名稱EQU數(shù)據(jù)或匯編符號(hào)功能:將一個(gè)數(shù)據(jù)或匯編符號(hào)賦予標(biāo)號(hào)段規(guī)定的字符名稱例:ORG8000HAAEQUR6MOV

A,AA;AA與R6等值;A(R6)上頁下頁回目錄例:A10EQU10DELYEQU07EBHMOVA,A10LCALLDELY;A10=10;DELY=07EBH;轉(zhuǎn)向入口地址07EBH使用EQU指令,須先賦值后使用,不能反之上頁下頁回目錄7、數(shù)據(jù)地址賦值等值命令DATA格式:字符名稱DATA數(shù)據(jù)或表達(dá)式功能:此命令把數(shù)據(jù)/代碼地址賦予標(biāo)號(hào)段所規(guī)定的字符名稱。定義的字符名稱可先使用后定義INDEXJDATA8389HORG8000HINDEXJDATA8096HLJMPINDEXJENDORG8000HLJMP8096HEND;INDEXJ這個(gè)字符名稱的地址為8389H例:上頁下頁回目錄等價(jià)于EQU與DATA的區(qū)別(1)DATA與EQU相似,但DATA定義的字符名稱,

可先使用后定義,EQU則不能(2)EQU指令可把匯編符號(hào)賦給字符名稱,

DATA則不能(3)DATA可把表達(dá)式的值賦給字符名稱,

EQU則不能DATA常在程序中定義數(shù)據(jù)地址EQU常在程序中定義字符數(shù)據(jù)上頁下頁回目錄8、位地址符號(hào)命令BIT格式:字符名稱BIT位地址功能:把位地址賦予標(biāo)號(hào)段的字符名稱A1BITP1.0A2BITP2.0例:;P1.0,P2.0賦予位地址字符名稱

A1、A2,在編程時(shí)可以直接把

A1、A2當(dāng)成位地址使用上頁下頁回目錄四、尋址方式(7種)⑴立即尋址⑵直接尋址⑶寄存器尋址⑷寄存器間接尋址⑸基址寄存器加變址寄存器間接尋址⑹相對(duì)尋址⑺位尋址上頁下頁回目錄五、MCS-51指令分類(5類)⑴數(shù)據(jù)傳送(29條)⑵算術(shù)運(yùn)算(24條)⑶邏輯運(yùn)算(24條)⑷控制轉(zhuǎn)移(17條)⑸布爾處理(17條)共111條指令上頁下頁回目錄§3.2MCS-51指令的尋址方式用何種方式尋找指令的操作數(shù)或指令的執(zhí)行地址1、立即尋址尋址空間:指令形式:操作碼立即數(shù)程序存儲(chǔ)器指令的操作數(shù)存放在程序存儲(chǔ)器中操作數(shù)緊跟操作碼后面立即尋址:在哪里?用何種方式尋找OP#dataImmediateAddressing上頁下頁回目錄指令的尋址方式:指令的尋址方式:2、直接尋址尋址空間:指令的三種形式:操作碼操作數(shù)地址在指令中直接給出操作數(shù)的真實(shí)地址操作碼后面緊跟一個(gè)實(shí)際操作數(shù)地址操作碼操作數(shù)地址立即數(shù)操作碼源操作數(shù)地址目的操作數(shù)地址內(nèi)RAM的低128字節(jié)特殊功能寄存器SFR區(qū)直接尋址直接尋址是訪問SFR的唯一方法DirectAddressing上頁下頁回目錄00H~7FH80H~FFHCPU內(nèi)部直接間接3、寄存器尋址尋址空間:指令的三種形式:操作碼當(dāng)前選定的寄存器內(nèi)容就是實(shí)際操作數(shù)操作碼立即數(shù)操作碼直接地址R0~R7,由RS0、RS1確定寄存器區(qū)/4A、B、CY(位),DPTR、ABMOVA,R3;A(R3)

例1:ADDA,R3;A(A)+(R3)例2:寄存器尋址:RegisterAddressing操作數(shù)隱含操作數(shù)顯然隱含尋址上頁下頁回目錄4、寄存器間接尋址尋址空間:指令的三種形式:操作碼操作碼立即數(shù)操作碼直接地址內(nèi)部RAM(@R0,@R1,SP)外部RAM(@R0,@R1,@DPTR)寄存器間接尋址:指令選定的寄存器內(nèi)容就是實(shí)際的操作數(shù)地址RegisterIndirectAddressing上頁下頁回目錄5、基址寄存器加變址寄存器間接尋址基址寄存器加變址寄存器間接尋址:

以DPTR或PC作基址寄存器,A作變址寄存器兩者相加形成操作數(shù)地址。尋址空間:程序存儲(chǔ)器(@A+DPTR、@A+PC)指令形式:操作碼上頁下頁回目錄6、相對(duì)尋址程序存儲(chǔ)器尋址空間:指令的三種形式:操作碼rel操作碼

直接地址rel操作碼

立即數(shù)rel相對(duì)尋址以當(dāng)前PC值為基準(zhǔn)地址,加上指令的偏移量“rel”,結(jié)果為目標(biāo)地址。rel為有符號(hào)補(bǔ)碼數(shù),范圍:-128~+127一般為雙字節(jié)或三字節(jié)指令RelativeAddressing上頁下頁回目錄尋址指令執(zhí)行地址目標(biāo)地址7、位尋址尋址空間:片內(nèi)RAM的20H~2FH字節(jié)地址位地址:00H~7FH

共128位SFR中12個(gè)能被8整除的字節(jié)地址位地址請(qǐng)參看P43

表2-16共93位BitAddressing

以訪問觸發(fā)器的方式,對(duì)內(nèi)部RAM、SFR的位地址空間進(jìn)行訪問,稱為位尋址。位地址用于布爾指令。共221位上頁下頁回目錄尋址方式與相應(yīng)的尋址空間小結(jié):寄存器R0~R7,A,BCY,DPTR片內(nèi)內(nèi)RAM的低128字節(jié)特殊功能寄存器SFR直接尋址direct寄存器間址@R0,@R1,SP

@R0,@R1,@DPTR片內(nèi)RAM、片外RAM與I/O口立即數(shù)#data

程序存儲(chǔ)器程序存儲(chǔ)器基址加變址@A+DPTR,@A+PC程序存儲(chǔ)器相對(duì)尋址PC+rel位尋址片內(nèi)RAM20H~2FH部分SFRbit利用的變量

使用的空間方式上頁下頁回目錄§3.3MCS-51指令系統(tǒng)介紹MCS-51系統(tǒng)指令系統(tǒng)共111條,按操作功能分類:⑴數(shù)據(jù)傳送類⑵算術(shù)運(yùn)算類⑶邏輯運(yùn)算類⑷控制轉(zhuǎn)移類⑸布爾處理類上頁下頁回目錄MOV類傳送指令小結(jié)MOVA,#data立即數(shù)送累加器MOVA,Rn寄存器內(nèi)容送累加器MOVA,direct直接地址內(nèi)容送累加器MOVA,@Ri內(nèi)RAM內(nèi)容送累加器MOVRn,#data立即數(shù)送寄存器MOVRn,A累加器內(nèi)容送寄存器RnMOVRn,direct直接地址內(nèi)容送寄存器Rn指令助記符說明字節(jié)2121212上頁下頁回目錄MOV片內(nèi)傳送指令

MOV類傳送指令小結(jié)MOVdirect1,direct2內(nèi)RAM或SFR之間直接傳送MOVdirect,@Ri內(nèi)RAM數(shù)據(jù)送內(nèi)RAM或SFRMOVdirect,#data立即數(shù)送內(nèi)RAM或SFRMOVdirect,A累加器內(nèi)容送內(nèi)RAM或SFRMOVdirect,Rn寄存器內(nèi)容送內(nèi)RAM或SFR指令助記符說明字節(jié)32232MOV@Ri,#data立即數(shù)送內(nèi)RAMMOV@Ri,A累加器內(nèi)容送內(nèi)RAMMOV@Ri,direct內(nèi)RAM數(shù)據(jù)送內(nèi)RAM或SFRMOVDPTR,#data1616位立即數(shù)傳送指令2123上頁下頁回目錄MOV片內(nèi)傳送指令MOVX類傳送指令小結(jié)

指令助記符說明字節(jié)1111MOVXA,@Ri外部RAM送累加器AMOVX@Ri,A累加器內(nèi)容送外RAMMOVXA,@DPTR外部RAM送累加器AMOVX@DPTR,A累加器內(nèi)容送外RAM上頁下頁回目錄MOVX片外傳送指令MOVC類傳送指令小結(jié)指令助記符說明字節(jié)11MOVCA,@A+DPTRMOVCA,@A+PC以DPTR作基址加變址尋址以PC作基址加變址尋址上頁下頁回目錄

交換類傳送指令小結(jié)指令助記符說明字節(jié)12111XCHA,RnXCHA,direct寄存器內(nèi)容與累加器內(nèi)容交換直接地址內(nèi)容與累加器內(nèi)容交換XCHA,@RiXCHDA,@Ri內(nèi)RAM內(nèi)容與累加器內(nèi)容交換內(nèi)RAM內(nèi)容低4位與累加器低4位交換SWAPA累加器A高4位與低4位交換上頁下頁回目錄ADD類指令小結(jié)指令助記符說明字節(jié)2112ADDA,#dataADDA,Rn立即數(shù)加到累加器寄存器內(nèi)容加到累加器ADDA,@RiADDA,direct內(nèi)RAM內(nèi)容加到累加器直接地址內(nèi)容加到累加器上頁下頁回目錄指令符助記說明字節(jié)2112ADDCA,#dataADDCA,Rn立即數(shù)和進(jìn)位加到累加器寄存器內(nèi)容和進(jìn)位加到累加器ADDCA,@RiADDCA,direct內(nèi)RAM內(nèi)容和進(jìn)位加到累加器直接地址內(nèi)容和進(jìn)位加到累加器ADDC類指令小結(jié)上頁下頁回目錄INC類指令小結(jié)指令助記符說明字節(jié)1121INCAINCRn累加器內(nèi)容加“1”寄存器內(nèi)容加“1INCdirect內(nèi)RAM或SFR內(nèi)容加“1INC@Ri內(nèi)RAM內(nèi)容加“1INCDPTR數(shù)據(jù)指針DPTR內(nèi)容加“11上頁下頁回目錄SUBB類指令小結(jié)指令助記符說明字節(jié)2112SUBBA,#dataSUBBA,RnSUBBA,@RiSUBBA,direct累加器減立即數(shù)和借位累加器減寄存器內(nèi)容和借位累加器減RAM內(nèi)容和借位累加器減直接地址內(nèi)容和借位上頁下頁回目錄DEC類指令小結(jié)指令助記符說明字節(jié)1121DECADECRn累加器內(nèi)容減“1”寄存器內(nèi)容減“1”DECdirect內(nèi)RAM或SFR內(nèi)容減“1”DEC@Ri內(nèi)RAM內(nèi)容減“1”上頁下頁回目錄ANL類傳送指令小結(jié)ANLA,#data立即數(shù)邏輯與累加器ANLA,Rn寄存器內(nèi)容邏輯與累加器ANLA,direct直接地址內(nèi)容邏輯與累加器ANLA,@Ri內(nèi)RAM內(nèi)容邏輯與累加器指令助記符說明字節(jié)2121ANLdirect,AANLdirect,#data累加器邏輯與內(nèi)RAM或SFR立即數(shù)邏輯與RAM或SFR23上頁下頁回目錄讀–修改–寫ORL類傳送指令小結(jié)ORLA,#data立即數(shù)邏輯或累加器ORLA,Rn寄存器內(nèi)容邏輯或累加器ORLA,direct直接地址內(nèi)容邏輯或累加器ORLA,@Ri內(nèi)RAM內(nèi)容邏輯或累加器指令符號(hào)說明字節(jié)2121ORLdirect,AORLdirect,#data累加器邏輯或內(nèi)RAM或SFR立即數(shù)邏輯或RAM或SFR23上頁下頁回目錄讀–修改–寫XRL類傳送指令小結(jié)XRLA,#data立即數(shù)邏輯異或累加器XRLA,Rn寄存器內(nèi)容邏輯異或累加器XRLA,direct直接地址內(nèi)容邏輯異或累加器XRLA,@Ri內(nèi)RAM內(nèi)容邏輯異或累加器指令助記符說明字節(jié)2121XRLdirect,AXRLdirect,#data累加器邏輯異或內(nèi)RAM或SFR立即數(shù)邏輯異或RAM或SFR23上頁下頁回目錄讀–修改–寫

移位指令小結(jié)指令助記符說明字節(jié)1111RLARLCARRARRCA累加器循環(huán)左移累加器連同進(jìn)位循環(huán)左移累加器循環(huán)右移累加器連同進(jìn)位循環(huán)右移11CLRACPLA累加器A清零累加器A按位取反

累加器清除與求反指令小結(jié)上頁下頁回目錄

無條件轉(zhuǎn)移指令小結(jié)指令助記符說明字節(jié)3221長(zhǎng)轉(zhuǎn)移LJMPaddr16絕對(duì)轉(zhuǎn)移AJMPaddr11短轉(zhuǎn)移SJMPrel間接長(zhǎng)轉(zhuǎn)移JMP@A+DPTR上頁下頁回目錄(散轉(zhuǎn)指令)可以有n個(gè)目標(biāo)地址上頁下頁回目錄

條件轉(zhuǎn)移類指令小結(jié)指令助記符說明字節(jié)223323JZrelJNZrelCJNEA,#data,relCJNERn,#data,relDJNZRn,relDJNZdirect,rel累加器A為零則轉(zhuǎn)移累加器A不為零則轉(zhuǎn)移累加器A與立即數(shù)不等則轉(zhuǎn)移寄存器與立即數(shù)不等則轉(zhuǎn)移寄存器減“1”不等零則轉(zhuǎn)移內(nèi)RAM或SFR減“1”不為零則轉(zhuǎn)移CJNEA,direct,relCJNE@Ri,#data,rel間接RAM與立即數(shù)不等則轉(zhuǎn)移累加器A與直接內(nèi)RAM不等則轉(zhuǎn)移33

子程序調(diào)用及返回指令小結(jié)指令助記符說明字節(jié)32111LCALLaddr16長(zhǎng)調(diào)用絕對(duì)調(diào)用ACALLaddr11子程序返回RET中斷返回RETI空操作NOP上頁下頁回目錄

布爾處理指令小結(jié)指令助記符說明字節(jié)22121直接尋址位送進(jìn)位標(biāo)志MOVC,bit進(jìn)位標(biāo)志送直接尋址位MOVbit,C清進(jìn)位標(biāo)志CLRC清直接尋址位CLRbit置位進(jìn)位標(biāo)志SETBC置位直接尋址位SETBbit進(jìn)位標(biāo)志求反CPLC直接尋址位求反CPLbit212上頁下頁回目錄

布爾處理指令小結(jié)指令助記符說明字節(jié)22222233進(jìn)位位“與”直接尋址位ANLC,bit進(jìn)位位“與”直接尋址位的反碼ANLC,/bit進(jìn)位位“或”直接尋址位ORLC,bit進(jìn)位位“或”直接尋址位的反碼ORLC,/bit進(jìn)位標(biāo)志為“1”則轉(zhuǎn)移JCrelJNCrel進(jìn)位標(biāo)志為“0”則轉(zhuǎn)移直接尋址位為“1”則轉(zhuǎn)移JBbit,rel直接尋址位為“0”則轉(zhuǎn)移JNBbit,rel直接位為“1”則轉(zhuǎn)移,并將該位復(fù)位JBCbit,rel3上頁下頁回目錄A6A7A5A0A1A2A3A4A13A8A9A10A11A12Q1Q0Q2Q7Q6Q5Q4Q3VccGNDVPPOECE271281D2D3D4D6D5D8D7D1Q2Q3Q4Q6Q5Q8Q7QGEVccGND+5V74LS373P0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P2.0P3.1。。。P3.7P3.0P1.1。。。P1.7P1.0XTAL1XTAL2VccEAALEPSEN8031VSS+5V1、線地址譯碼法擴(kuò)展16KBEPROM上頁下頁回目錄=0線地址0000H3FFFH~4000H7FFFH~=0=1P0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P2.01、線地址譯碼法擴(kuò)展16KBEPROMA6A7A5A0A1A2A3A4A13A8A9A10A11A12CE0×000000000000000×11111111111111基本地址范圍:0000H~3FFFH重疊地址范圍:4000H~7FFFH結(jié)構(gòu)特點(diǎn):地址范圍:⑴EPROM由PSEN進(jìn)行讀選通控制,8031的EA接地⑵

用一根線(P2.7)去選擇芯片,P2.7=0,選中該片⑶P2.6懸空產(chǎn)生地址重疊上頁下頁回目錄271288031EA。。。P0.7P0.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7ALEPSEN80311D~8DGE1Q~8Q74LS373Q0~Q7CEOEA0~A122764⑵Q0~Q7CEOEA0~A122764⑴Q0~Q7CEOEA0~A122764⑶74LS1392Y32Y22Y12Y0VCC2A2B2GGND+5VA0~A7A8~A12D0~D7片選0片選1片選20000H~1FFFH2000H~3FFFH4000H~5FFFH2、部分地址譯碼法擴(kuò)展24KBEPROM上頁下頁回目錄2、部分地址譯碼法擴(kuò)展24KBEPROMP2.5P2.6P0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.1P2.2P2.3P2.4P2.0A6A7A5A0A1A2A3A4A8A9A10A11A12選中地址000110111111111111100000000000001111111111111000000000000000000000000001111111111111片⑴片⑵片⑶0000H1FFFH2000H3FFFH4000H5FFFH地址范圍:結(jié)構(gòu)特點(diǎn):⑴8031內(nèi)部無ROM,所以EA接地,EPROM由PSEN進(jìn)行讀控制⑶用譯碼后的部分地址選擇芯片,叫部分地址譯碼⑵用地址譯碼信號(hào)選擇某片片選上頁下頁回目錄EA。。。P0.7P0.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7ALEPSEN80311D~8DGE1Q~8Q74LS373Q0~Q7CEOEA0~A122764⑵Q0~Q7CEOEA0~A122764⑴Q0~Q7CEOEA0~A122764⑻A0~A7A8~A12D0~D7片選0片選1片選70000H~1FFFH2000H~3FFFHE000H~FFFFH74LS138VCCABG2BGND+5VY7Y1Y0…G2ACG1…3、全地址譯碼法擴(kuò)展64KBEPROM上頁下頁回目錄74LS373G

1Q~8QE

1D~8DQ0~Q7OEA0~A12

CE2764(1)Q0~Q7OEA0~A12

CE2764(2)……Q0~Q7OEA0~A12

CE2764(8)74LS138G1

VCCY7┇Y1Y0GNDG2AG2BCBA

P27

P26

P25+5V

8031P0P2ALEPSENEA…D0~D7A0~A12A0~A7上頁下頁回目錄2、全地址譯碼法擴(kuò)展64KBEPROMP2.5P2.6P0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.1P2.2P2.3P2.4P2.0A6A7A5A0A1A2A3A4A8A9A10A11A12選中地址P2.7000001111111111111100000000000001111111111111000000000000000000000000001111111111111片⑴片⑵片⑻0000H1FFFH2000H3FFFHE000HFFFFH111…

……

…所有地址都參加譯碼選擇芯片,叫作全地址譯碼地址范圍:上頁下頁回目錄74LS138CBAA15A14A131D2D3D4D6D5D8D7D1Q2Q3Q4Q6Q5Q8Q7QGEVccGND+5V74LS373P0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P2.0P3.1。。P3.6P3.7P3.0P1.1。。。P1.7P1.0XTAL1XTAL2VccEAALEPSEN8031VSS+5VA6A7A5A0A1A2A3A4A8A9A10I/O1I/O0I/O2I/O7I/O6I/O5I/O4I/O3VccVssOECE6116WE+5V三、數(shù)據(jù)存儲(chǔ)器擴(kuò)展設(shè)計(jì)1、8051擴(kuò)展2KBRAM上頁下頁回目錄0000H07FFH~1D~8DGE1Q~8Q74LS373A0~A7A8~A14D0~D70000H~7FFFH0000H~7FFFH2、8031擴(kuò)展32KBEPROM和32KBRAMQ0~Q7CEOEA0~A1427256⑴Q0~Q7CEOEA0~A1462256⑵WEEA。。。P0.7P0.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7ALEPSEN8031RDWR上頁下頁回目錄000000000000000111111111111111基本地址范圍:0000H~7FFFH2、8031擴(kuò)展32KBEPROM和32KBRAMP0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P2.0A6A7A5A0A1A2A3A4A8A9A10A11A12A13A14結(jié)構(gòu)特點(diǎn):⑴EPROM和RAM共用地址總線和數(shù)據(jù)總線⑵控制總線除ALE外,EPROM由PSEN進(jìn)行讀選通,RAM由RD和WR進(jìn)行讀寫控制地址范圍:上頁下頁回目錄1D~8DGE1Q~8Q74LS373A0~A7A8~A14D0~D73、程序存儲(chǔ)器空間和數(shù)據(jù)存儲(chǔ)器空間的合并Q0~Q7CEOEA0~A1462256⑵WEEA。。。P0.7P0.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7ALEPSEN8031RDWRQ0~Q7CEOEA0~A1427256⑴上頁下頁回目錄8000H~FFFFH0000H~7FFFH0000000000000000001111111111111111P0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P2.0A6A7A5A0A1A2A3A4A8A9A10A11A12A13A14結(jié)構(gòu)特點(diǎn):將PSEN和RD進(jìn)行讀邏輯與產(chǎn)生低電平有效的讀選通信號(hào),用于合并外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器空間地址范圍:3、程序存儲(chǔ)器空間和數(shù)據(jù)存儲(chǔ)器空間的合并27256地址100000000000000001111111111111111162256地址上頁回目錄A150000H7FFFH~8000HFFFFH~I/O口P0口:三態(tài)雙向復(fù)用口地址/數(shù)據(jù)控制讀鎖存器寫鎖存器DCLQQP0.x鎖存器T0T1MUXP0.x引腳內(nèi)部總線讀引腳P0口位結(jié)構(gòu)Vcc11001“讀”01100P0口作地址/數(shù)據(jù)復(fù)用總線上頁下頁回目錄D0~D7A0~A7P0口:作通用I/O口使用地址/數(shù)據(jù)控制讀鎖存器寫鎖存器DCLQQP0.x鎖存器T0T1MUXP0.x引腳內(nèi)部總線讀引腳P0口位結(jié)構(gòu)Vcc外接上拉電阻0100讀讀-修改-寫功能上頁下頁回目錄1ANLP0,A(P0)^(A)P0“讀”VccP1口:準(zhǔn)雙向口讀鎖存器寫鎖存器內(nèi)部總線讀引腳DCLQQP1.x鎖存器TP1.x引腳Vcc內(nèi)部上拉電阻010101輸出輸入上頁下頁回目錄“讀引腳”P1口位結(jié)構(gòu)P2口:準(zhǔn)雙向口地址控制讀鎖存器寫鎖存器內(nèi)部總線讀引腳DCLQQP2.x鎖存器TP2.x引腳P2口位結(jié)構(gòu)VccMUX上拉電阻上頁下頁回目錄P3口位結(jié)構(gòu)第二輸入功能P3口:雙功能口讀鎖存器寫鎖存器內(nèi)部總線讀引腳DCLQQP3.x鎖存器TP3.x引腳Vcc上拉電阻第二輸出功能11上頁下頁回目錄0P3口的第二功能狀態(tài)P3.0RXD串入(接收端)P3.1TXD串出(發(fā)送端)P3.6WR外部RAM寫信號(hào)P3.3INT1外部中斷1輸入P3.4T0計(jì)數(shù)器0輸入P3.5T1計(jì)數(shù)器1輸入第二功能作用口線P3.2INT0外部中斷0輸入P3.7RD外部RAM讀信號(hào)上頁下頁回目錄§2.4MCS-51的存儲(chǔ)器組織存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器程序存儲(chǔ)器上頁下頁回目錄ROM、EPROME2ROM或FLASHRAMPSENWRRD單片機(jī)從物理上分,MCS-51分為4個(gè)存儲(chǔ)空間·片內(nèi)程序存儲(chǔ)器ROM·片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM·片外程序存儲(chǔ)器ROM·片外數(shù)據(jù)存儲(chǔ)器RAM(I/O)從邏輯上分,MCS-51分為3個(gè)邏輯空間·片內(nèi)、外統(tǒng)一編址的程序存儲(chǔ)器64KB地址空間·256B或128B片內(nèi)數(shù)據(jù)存儲(chǔ)器地址空間·64KB片外數(shù)據(jù)存儲(chǔ)器或I/O地址空間上頁下頁回目錄片內(nèi)固有需要擴(kuò)展需要擴(kuò)展對(duì)外部程序存貯器的寫操作是由編程器完成,而對(duì)其讀操作則是由讀選通控制信號(hào)/PSEN(ProgramStoreEnable)再配以讀操作指令MOVC來完成。也就是由MOVC指令產(chǎn)生信號(hào)/PSEN,從而對(duì)片外程序存儲(chǔ)器進(jìn)行讀操作。對(duì)外部數(shù)據(jù)存貯器的寫操作是由寫選通控制信號(hào)/WR再配以指令MOVX來完成,而對(duì)其讀操作則是由讀選通控制信號(hào)/RD再配以MOVX來完成。也就是由指令MOVX指令產(chǎn)生/WR或/RD信號(hào),從而對(duì)片外RAM進(jìn)行寫或讀操作。①工作寄存器區(qū)00H~1FH工作寄存器又稱通用寄存器,是供用戶編程時(shí)、臨時(shí)寄存8位信息的。本區(qū)分四組,每組包括RO~R78個(gè)通用寄存器。任一時(shí)刻只有其中一組被選中。復(fù)位時(shí)自動(dòng)選中0組,但用戶可通過修改PSW.4、PSW.3對(duì)組別進(jìn)行選擇。這給用戶編程提供了便利,尤其是在調(diào)用子程序以及進(jìn)行中斷處理時(shí),只需換一下寄存器組便可達(dá)到不破壞主程序所用寄存器內(nèi)容的目的,不過要注意返回時(shí)應(yīng)復(fù)原PSW,從而使主程序原來使用的寄存器組得認(rèn)恢復(fù)。例如:CLRPSW.4;RS1=0SETBPSW.3;RSO1=1MOVRO,#28H;將立即數(shù)28H送入第1組的RO單元即片內(nèi)RAM08H中②位尋址區(qū)20H~2FH:位尋址區(qū)的每一位都被賦予了一個(gè)位地址正因?yàn)橛形坏刂罚员緟^(qū)的16個(gè)單元既可按字節(jié)尋址、又可按位尋址,而且每一位都有兩種表示方式,例如25H.2與2AH等效;28H.0與40H等效,也就是說匯編程序ASM-51對(duì)這兩種位的表示方式都可接受。通常可將程序中所要用到的狀態(tài)標(biāo)志、位控制變量等放于位尋址區(qū)。例如:SETB07H或SETB20H.7

將片內(nèi)RAM20H單元的D7位置1,而該單元中其它各位則保持不變③用戶RAM區(qū)30H~7FH或30H~FFH用戶RAM區(qū)又稱數(shù)據(jù)緩沖區(qū),它是用戶便簽式數(shù)據(jù)存儲(chǔ)區(qū)。對(duì)于51子系列,共有從30H~7FH80個(gè)字節(jié)單元;對(duì)于52子系列,共有從30H~FFH208個(gè)字節(jié)單元。一般堆棧設(shè)于此區(qū)。當(dāng)堆棧指針SP的內(nèi)容被賦予本區(qū)的某一地址時(shí),就應(yīng)該留出足夠的字節(jié)單元作為堆棧,以免堆棧操作與非堆棧數(shù)據(jù)發(fā)生沖突。工作寄存器區(qū)、位尋址區(qū)也可以作為一般的用戶RAM區(qū)來使用,只是一般都沒有這個(gè)必要。最后要特別注意:片內(nèi)RAM從00H~7FH字節(jié)單元既可直接尋址、又可間接尋址;片內(nèi)RAM從80H~FFH字節(jié)單元只能間接尋址。3.特殊功能寄存器SFR(專用寄存器)(SpecialFunctionRegister)特殊功能寄存器又稱專用寄存器,它包括除PC之外的所有專用寄存器,如I/O口鎖存器,定時(shí)器、串行口、中斷等的控制和狀態(tài)寄存器,累加器ACC,B寄存器,堆棧指針SP,數(shù)據(jù)指針DPTR,程序狀態(tài)字PSW等。SFR不屬于片內(nèi)RAM,但要與片內(nèi)RAM統(tǒng)一編址,且其地址空間為80H~FFH。在80H~FFH這128個(gè)字節(jié)單元的SFR區(qū)域中,僅有21個(gè)(51子系列)或26個(gè)(52子系列)字節(jié)單元屬于SFR,其余字節(jié)單元是空的,未作定義的。這是為今后MCS-51系列新型單片機(jī)保留的字節(jié)空間,所以用戶就不要訪問空字節(jié)了。專用寄存器按字節(jié)直接尋址,其中有12個(gè)專用寄存器具有位地址,因此這12個(gè)SFR不僅可按字節(jié)直接尋址,而且還可按位直接尋址。它們是:

P0P1P2P3TCONSCONT2CONIEIPPSWAB能位尋址的上述12個(gè)專用寄存器,其地址都可被8整除,且其某位的位地址等于該專用寄存器的字節(jié)單元地址加上位數(shù)0~7。下表是各專用寄存器的表示符號(hào)、名稱、地址、以及可位尋址字節(jié)單元的位地址與位名稱。注意,帶*號(hào)的只有52子系列才具有。位地址的表示方式有四種,即:位地址、位名稱、字節(jié)地址.位數(shù)、SFR名.位數(shù)。MCS-51單片機(jī)定時(shí)器/計(jì)數(shù)器

51系列內(nèi)部有2個(gè)16位的定時(shí)器/計(jì)數(shù)器T0、T152系列內(nèi)部有3個(gè)16位的定時(shí)器/計(jì)數(shù)器T0、T1、T2CPUTH1(8位)TL1(8位)T1

T1(P3.5)(8DH)(8BH)7070TH0(8位)TL0(8位)T0

T0(P3.4)(8CH)(8AH)7070TCON(88H)TMOD(89H)啟動(dòng)啟動(dòng)溢出溢出工作方式工作方式定時(shí)器/計(jì)數(shù)器T0、T1邏輯結(jié)構(gòu)控制寄存器TCONLSBMSBTF1TR1TF0TR0IE1IT1IE0IT0T1、T0

啟/??刂莆籘1、T0

溢出標(biāo)志位與外部中斷INT1、INT0有關(guān)“0”停止“1”啟動(dòng)“1”有溢出“0”無溢出工作“1”“0”(P3.2)(P3.3)方式寄存器TMODGATEC/TM1M0GATEC/TM1M0LSBMSB控制T1控制T0門控位功能選擇位工作方式選擇(89H)不可位尋址GATEC/TM1M0GATEC/TM1M0INT1INT0引腳輸入電平的控制GATE:門控位。設(shè)定T1、T0運(yùn)行時(shí)是否受GATE=0不受外部中斷控制C/T=00方式013位計(jì)數(shù)器01方式116位計(jì)數(shù)器10方式2可自動(dòng)重新裝載初值的8位計(jì)數(shù)器11方式3T0分為2個(gè)8位計(jì)數(shù)器;T1停止計(jì)數(shù)M1M0操作方式功能操作方式選擇上頁下頁回目錄1受外部中斷控制0為定時(shí)功能1為計(jì)數(shù)功能上頁下頁回目錄定時(shí)/計(jì)數(shù)器的4種工作方式⑴方式0M1M0=0013位的定時(shí)計(jì)數(shù)器,由TH1的8位和TL1的低5位組成T1(P3.5)GATETR1INT1震蕩器÷12TL15位TH18位TF1中斷KC/T=0C/T=1控制T1定時(shí)/計(jì)數(shù)器方式0邏輯圖中斷以T1為例:13位計(jì)數(shù)器TF1方式0:

可將0---8191(213-1)的某一個(gè)“二進(jìn)制數(shù)”送入TL的低5位、TH的8位作為初值。當(dāng)作為“定時(shí)器”時(shí),從初值a計(jì)數(shù)至溢出的時(shí)間為:上頁下頁回目錄⑵方式1M1M0=0116位的定時(shí)計(jì)數(shù)器,由TH的8位和TL的8位組成T1(P3.5)GATETR1INT1震蕩器÷12TL18位TH18位TF1中斷KC/T=0C/T=1控制定時(shí)/計(jì)數(shù)器方式1邏輯圖16位計(jì)數(shù)器中斷TF1方式1:

可將0---65535(216-1)的某一個(gè)“二進(jìn)制數(shù)”送入TL的8位、TH的8位作為初值。當(dāng)作為“定時(shí)器”時(shí),從初值a計(jì)數(shù)至溢出的時(shí)間為:上頁下頁回目錄⑶方式2M1M0=10可自動(dòng)重裝載的8位計(jì)數(shù)器TH1作為賦值寄存器TL1作為計(jì)數(shù)器定時(shí)/計(jì)數(shù)器方式2邏輯圖T1(P3.5)

GATETR1INT1震蕩器÷12TL18位TF1中斷KC/T=0C/T=1控制TH18位重裝載自動(dòng)1中斷TL18位TF1方式2:

可將0---255(28-1)的某一個(gè)“二進(jìn)制數(shù)”送入TH的8位作為初值(當(dāng)然TL的8位亦賦此初值)。當(dāng)作為“定時(shí)器”時(shí),從初值a計(jì)數(shù)至溢出的時(shí)間為:上頁下頁回目錄⑷方式3M1M0=11T0被分成2個(gè)相互獨(dú)立的8位計(jì)數(shù)器TL0、TH0。T1失效。其中TL0類似于方式0震蕩器÷121/12f0scTL08位

溫馨提示

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

評(píng)論

0/150

提交評(píng)論