單片機(jī)-第二章MCS51單片機(jī)結(jié)構(gòu)及原理_第1頁(yè)
單片機(jī)-第二章MCS51單片機(jī)結(jié)構(gòu)及原理_第2頁(yè)
單片機(jī)-第二章MCS51單片機(jī)結(jié)構(gòu)及原理_第3頁(yè)
單片機(jī)-第二章MCS51單片機(jī)結(jié)構(gòu)及原理_第4頁(yè)
單片機(jī)-第二章MCS51單片機(jī)結(jié)構(gòu)及原理_第5頁(yè)
已閱讀5頁(yè),還剩67頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第2章MCS-51單片機(jī)的結(jié)構(gòu)及原理2.1MCS-51單片機(jī)的外部引腳與內(nèi)部結(jié)構(gòu)2.2MCS-51單片機(jī)的CPU結(jié)構(gòu)2.3MCS-51單片機(jī)的存儲(chǔ)器結(jié)構(gòu)2.4MCS-51單片機(jī)的并行口結(jié)構(gòu)⑴8位CPU⑵片內(nèi)128BRAM⑶片內(nèi)4KBROM/EPROM(8031無(wú))⑷特殊功能寄存器區(qū)

SFR⑸2個(gè)優(yōu)先級(jí)的5個(gè)中斷源結(jié)構(gòu)⑹

4個(gè)8位并行口:P0、P1、P2、P3

MCS-51單片機(jī)主要資源配置8051/8751⑺2個(gè)16位定時(shí)器/計(jì)數(shù)器T/C⑻1個(gè)全雙工串行口UART

⑼布爾處理機(jī)——位處理機(jī)(10)64KB外部RAM地址空間(11)64KB外部ROM地址空間(12)片內(nèi)時(shí)鐘電路及振蕩器(13)指令系統(tǒng)(111條)通用異步收發(fā)器半雙工——即可接受又可發(fā)送,但不同時(shí)單工——只接收或只發(fā)送可同時(shí)接收或發(fā)送16條地址線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.1MCS-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í)鐘方式電路圖復(fù)位信號(hào):高電平復(fù)位CPU,低電平CPU工作EA/VPPALEPSEN名稱功能片外取指信號(hào)(片外程序存儲(chǔ)器讀)輸出端低電平有效。通過(guò)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)容復(fù)位后內(nèi)部寄存器狀態(tài)PC0000HACC00HB00HPSW00HSP07HDPTR0000HP0~P30FFHIP×××00000BIE0××00000BTMOD00HTCON00HTH000HTL0

00HTH100HTL1

00HSCON00HSBUF不定PCON0××000BALEP3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0EAPSENRST803180518751VccVssP1口P2口P0口373GE+5VA0~A7A8~A15D0~D7I/OXTAL1XTAL2RXDTXDINT0INT1T0T1WRRD控制總線CB三總線結(jié)構(gòu)數(shù)據(jù)總線DB地址總線AB利用三條總線,可方便地進(jìn)行系統(tǒng)擴(kuò)展晶振1.2~12MHZ8031【項(xiàng)目應(yīng)用】應(yīng)用項(xiàng)目的硬件電路圖,如圖所示,請(qǐng)讀者根據(jù)上述介紹,逐個(gè)理解其中所使用的單片機(jī)引腳,指出其名稱和功能。初步理解為何使用這些引腳,哪些引線用的是P3口的第二功能?解:所用到的單片機(jī)引腳名稱和功能如下:(外部中斷0輸入)(外部中斷1輸入)(片外RAM讀選通)(片外RAM寫選通)(片外ROM訪問(wèn)允許腳,由于所用的單片機(jī)為無(wú)片內(nèi)ROM的8031,因此,將該引腳接地)ALE(地址鎖存)RST(復(fù)位)P0.7~P0.0(P0口引腳)P1.0和P1.4(P1口引腳)P2.7(P2口引腳)、 、 和用的是P3口的第二功能,分別對(duì)應(yīng)P3.2、P3.3、P3.6和P3.7引腳。

MCS-51的內(nèi)部結(jié)構(gòu)

MCS-51的內(nèi)部結(jié)構(gòu)說(shuō)明

具有片內(nèi)ROM的MCS-51單片機(jī)內(nèi)部結(jié)構(gòu):片內(nèi)ROM的類型為掩膜ROM時(shí),對(duì)應(yīng)8051;為EPROM時(shí),對(duì)應(yīng)8751;將片內(nèi)ROM去掉,便是8031。圖中帶陰影的方框?yàn)橛脩艨梢酝ㄟ^(guò)指令進(jìn)行訪問(wèn)的具有特殊功能的單元,稱為特殊功能寄存器(SFR);ROM為程序存儲(chǔ)器;RAM為數(shù)據(jù)存儲(chǔ)器;P0~P3口鎖存器與驅(qū)動(dòng)器構(gòu)成I/O接口;OSC為振蕩器,用于為CPU提供時(shí)鐘信號(hào);其余各部件均屬于CPU的組成部件。例:CPU計(jì)算“(1+2)×3”

為了更好地理解CPU的工作原理,下面以要求CPU計(jì)算“(1+2)×3”為例說(shuō)明CPU的工作過(guò)程。利用上述指令編寫的程序如下。指令 功能注釋

MOV A,#01H ;A←01H ADD A,#02H ;A←01+02H MOVB,#03H ;B←03H MULAB ;BA←(A)

×

(B) SJMP$ ;停機(jī)CPU的工作原理示意圖

假定以上程序已裝入了單片機(jī)內(nèi)部ROM中,起始地址為0050H,并假定程序計(jì)數(shù)器的當(dāng)前值也是0050H,則單片機(jī)CPU的工作原理如圖2-5所示。

圖2-5MCS-51單片機(jī)CPU的工作原理示意圖

CPU執(zhí)行指令過(guò)程(1)定時(shí)與控制器通過(guò)控制總線中的讀指令控制線,送出讀ROM中指令的控制信號(hào),將片內(nèi)ROM中0050H單元中的操作碼74H讀出,并送至指令寄存器,同時(shí)控制PC加1器,將程序計(jì)數(shù)器PC中的地址加1,變成0051H,為取指令的第二字節(jié)作好預(yù)先準(zhǔn)備。(2)指令譯碼器對(duì)指令寄存器中的操作碼進(jìn)行譯碼,并把譯碼結(jié)果送至定時(shí)與控制器。就本例而言,譯碼的結(jié)果為“把一個(gè)在指令中給出的數(shù)據(jù)送入ACC,這個(gè)數(shù)據(jù)來(lái)自于當(dāng)前指令的第二字節(jié)。”

(3)定時(shí)與控制器根據(jù)指令譯碼器的譯碼結(jié)果,發(fā)出相應(yīng)的微操作控制信號(hào)。對(duì)應(yīng)上述譯碼結(jié)果,由于已經(jīng)知道需要送入ACC的數(shù)據(jù)就存放當(dāng)前指令的第二字節(jié),而且,PC已經(jīng)指向該字節(jié)的地址(0051H),所以只要發(fā)出讀ROM控制信號(hào),就可以將0051H中的數(shù)據(jù)01H讀出到數(shù)據(jù)總線上,并通過(guò)寫ACC控制信號(hào)將這個(gè)操作數(shù)送入ACC,從而完成第一條指令的執(zhí)行過(guò)程。對(duì)于需要生成程序狀態(tài)字的指令,還需通過(guò)微操作將相應(yīng)的狀態(tài)字寫入PSW中。(4)執(zhí)行完第一條指令后,定時(shí)與控制器又控制PC加1器,將程序計(jì)數(shù)器PC中的地址加1,變成0052H,從而指向下一條指令的首字節(jié),為執(zhí)行下一條指令做準(zhǔn)備。(5)重復(fù)上述類似的過(guò)程,并通過(guò)使用暫存寄存器TMP1、TMP2,寄存器B和運(yùn)算器ALU,便可以完成第2~第4條指令的執(zhí)行,最終實(shí)現(xiàn)將ACC中的數(shù)據(jù)(01H+02H=03H)與B中的數(shù)據(jù)(03H)相乘,所得乘積的高8位(00H)送入B,低8位(09H)送入ACC,從而完成程序要求的(1+2)

×

3運(yùn)算。乘法指令之所以用到B、ACC兩個(gè)寄存器存放乘積,是考慮到兩個(gè)8位數(shù)的乘積有可能會(huì)超過(guò)8位。(6)程序的最后一條指令是停機(jī)指令,執(zhí)行到這條指令時(shí),定時(shí)與控制器將不再控制PC加1,而是將PC的值置換為0058H,使之又指向該指令本身的首字節(jié),使得接下來(lái)再執(zhí)行的還是該指令,循環(huán)往復(fù),從而實(shí)現(xiàn)“動(dòng)態(tài)停機(jī)”。時(shí)鐘電路與CPU的時(shí)序內(nèi)部時(shí)鐘:在XTAL1、XTAL2上外接定時(shí)元件,使其形成自激振蕩器。外部時(shí)鐘:XTAL1接地,XTAL2接外部振蕩器

定時(shí)元件采用由石英晶體和電容組成并聯(lián)諧振電路。晶體和電容盡可能靠近單片機(jī)芯片。單片機(jī)XTAL1XTAL21918C1C2電容通常選擇為30PF左右振蕩頻率1.2MHz~12MHz晶振內(nèi)時(shí)鐘方式電路圖單片機(jī)XTAL2XTAL1外時(shí)鐘方式:

外時(shí)鐘方式電路圖外部振蕩源+5V1819上拉電阻頻率低于12MHzOC門

MCS-51CPU時(shí)序一、機(jī)器周期、狀態(tài)、相位·一個(gè)機(jī)器周期包括6個(gè)S

狀態(tài)S1~S6,每個(gè)S狀態(tài)分為2(拍)個(gè)振蕩周期(相位P1,相位P2)。·1個(gè)機(jī)器周期=6個(gè)S狀態(tài)=12(拍)個(gè)振蕩周期·采用主頻為12MHz振蕩源,每個(gè)機(jī)器周期為1μS又稱為CPU周期二、典型指令的取指和執(zhí)行時(shí)序OSCALEP1P2P1P2P1P2P1P2P1P2P1P2S1S2S3S4S5S6機(jī)器周期讀操作碼04H讀下一個(gè)操作碼(丟掉)PC不增“1”S1S2S3S4S5S6再讀下一個(gè)操作碼(a)單字節(jié)單周期指令如:INCA機(jī)器周期OP04HROMPCXTAL2(a)單字節(jié)單周期指令指令長(zhǎng)度為一個(gè)字節(jié)執(zhí)行時(shí)間為一個(gè)機(jī)器周期在S4P2期間的取指無(wú)效,PC不增“1”在本周期的S6P2期間執(zhí)行完畢在S1P2期間讀入操作碼并鎖存在指令寄存器中讀操作碼24H讀第二字節(jié)#dataS1S2S3S4S5S6再讀下一個(gè)操作碼(b)雙字節(jié)單周期指令如:ADDA,#dataOSCALEP1P2P1P2P1P2P1P2P1P2P1P2S1S2S3S4S5S6機(jī)器周期機(jī)器周期OP24HdataROMPC操作數(shù)PCXTAL2(b)雙字節(jié)單周期指令指令長(zhǎng)度為2個(gè)字節(jié)執(zhí)行時(shí)間為一個(gè)機(jī)器周期在S4P2期間讀入第2字節(jié)在本周期的S6P2期間執(zhí)行完畢在S1P2期間讀入操作碼并鎖存在指令寄存器中讀操作碼A3H(c)單字節(jié)雙周期指令如:INCDPTROPA3HROMPCOSCALEP1P2P1P2P1P2P1P2P1P2P1P2S1S2S3S4S5S6機(jī)器周期機(jī)器周期S1S2S3S4S5S6S1S2S3S4S5讀下一個(gè)操作碼(丟掉)PC不增“1”DPLDPH“+1”XTAL2僅用來(lái)訪問(wèn)外部程序存儲(chǔ)器和外部數(shù)據(jù)存儲(chǔ)器存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器程序存儲(chǔ)器

對(duì)單片機(jī)來(lái)講,ROM和RAM的尋址機(jī)構(gòu)和尋址方式是分開(kāi)的。ROM、EPROME2ROM或FLASHRAM按地址訪問(wèn)的一維線性(邏輯)空間按地址訪問(wèn)的一維線性(邏輯)空間PSENWRRD單片機(jī)常駐容量小僅256B容量大達(dá)64KB普林斯頓結(jié)構(gòu)哈佛結(jié)構(gòu)普林斯頓結(jié)構(gòu)存儲(chǔ)器從物理上分,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ǔ)器地址空間·256B或384B片內(nèi)數(shù)據(jù)存儲(chǔ)器地址空間·64KB片外數(shù)據(jù)存儲(chǔ)器或I/O地址空間片內(nèi)固有需要擴(kuò)展需要擴(kuò)展PC從功能上分,MCS-51分為5個(gè)地址空間·程序存儲(chǔ)器ROM·片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM·特殊功能寄存器區(qū)SFR·位尋址區(qū)·外部擴(kuò)展的數(shù)據(jù)存儲(chǔ)器RAM(I/O)區(qū)一、程序存儲(chǔ)器8051/8751內(nèi)部有4KB

ROM/EPROM地址:0000H~0FFFH8051/8751外部的ROM/EPROM地址:1000H~FFFFH8031/8032內(nèi)部沒(méi)有ROM/EPROM需要片外擴(kuò)展,使用時(shí)接成低電平EA地址:0000H~FFFFH52子系列內(nèi)部有8KBROM/EPROM地址:0000H~1FFFH52:2000H~FFFFH接地EA=1內(nèi)部外部EA=00000H0FFFH0FFFH0000H1000H外部FFFFH8051/8751803151系列程序存儲(chǔ)器配置圖4KB接地EA=1內(nèi)部外部EA=00000H1FFFH1FFFH0000H2000H外部FFFFH8052/8752803252系列程序存儲(chǔ)器配置圖接地8KB二、內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM地址:00H~FFH內(nèi)部數(shù)據(jù)存儲(chǔ)器從物理上分為幾個(gè)不同的塊:MCS-51128BRAM(地址00H~7FH)128BSFR(地址80H~FFH)MCS-52128BRAM(地址00H~7FH)128BSFR(地址80H~FFH)256B384B間接尋址直接尋址128BRAM(地址80H~FFH)間接直接皆可直接尋址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ū)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位直接地址能被8所整除的構(gòu)成其中3位無(wú)定義⑵用戶RAM區(qū)(數(shù)據(jù)緩沖區(qū))共80個(gè)單元字節(jié)地址:30H~7FH8051單片機(jī)復(fù)位時(shí),堆棧指針SP指向07H單元片內(nèi)RAM的部分單元可用作堆棧51的棧區(qū)不是固定的,為避開(kāi)工作寄存器區(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)清零用來(lái)存放下一條指令地址。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é)PC管理程序執(zhí)行順序的過(guò)程:

74H08H24H04H02H22H00H78H74HPC0000HPCMOVA,#08H

ADDA,#04HLJMP,2200HMOVR0,#74H0004H0003H0002H0001H0000H2200H2201H0005H0006H0007H存儲(chǔ)器······××指令寄存器74HPC0001H08HPC0002H

24HPC0003H

04HPC0004H02HPC22HPC00HPC0005H0006H0007HPC2200H78HPC2201H74HPC2202H2202HMOVA,#08HADDA,#04HLJMP2200HMOVR0,#74H下一條指令⑵累加器A地址:0E0H·最常用的一個(gè)專用寄存器·大部分單操作數(shù)指令的操作數(shù)取自A·很多雙操作數(shù)指令的一個(gè)操作數(shù)取自A·算術(shù)運(yùn)算和邏輯運(yùn)算的結(jié)果放在A或AB對(duì)中·指令系統(tǒng)采用A

作為累加器的標(biāo)識(shí)符例:INCA;執(zhí)行A中的內(nèi)容加1操作ADDA,#data;執(zhí)行A(A)+#data操作位尋址功能⑶寄存器B地址:0F0H·8位寄存器·與累加器A配合使用,一般用于乘除法運(yùn)算·寄存器B存放第二操作數(shù)、乘積的高8位字節(jié)除法的余數(shù)部分例:MULAB;執(zhí)行(A)×(B)BADIVAB;執(zhí)行(A)/(B)商A余B次累加器作一RAM單元用B余B⑷程序狀態(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)·由用戶定義·可用軟件來(lái)使它置“1”、或清“0”·可由軟件測(cè)試F0來(lái)控制程序流向D7~D4D3~D0AC工作寄存器區(qū)選擇位RS1

、RS0(PSW.4、PSW.3)通過(guò)軟件來(lái)改變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用布爾操作來(lái)改變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則D7D6D5D4D3D2D1D0

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

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

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

++符號(hào)位1

10100101(-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)減1

SP始終指向棧頂?shù)刂分袛鄷r(shí)轉(zhuǎn)子時(shí)棧區(qū)“向上生成”按“先進(jìn)后出”工作原則,由SP組織的內(nèi)部RAM區(qū)域,被稱為堆棧。主程序SPSP例:堆棧操作’建立堆棧’壓入操作’彈出操作

60H61H62H63H64HA的內(nèi)容B的內(nèi)容SPMOVSP,#60HPUSHAPUSHBPOPdirectSPdirect棧底⑹數(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ù)器T2SBUF兩個(gè)緩沖器共用“寫”發(fā)送緩沖器“讀”接受緩沖器MOVSBUF,AMOVA,SBUFP0口:三態(tài)雙向復(fù)用口地址/數(shù)據(jù)控制讀鎖存器寫鎖存器DCLQQP0.x鎖存器T1T2MUXP0.x引腳內(nèi)部總線讀引腳P0口位結(jié)構(gòu)Vcc11001“讀”01100P0口作地址/數(shù)據(jù)復(fù)用總線D0~D7A0~A7

I/O口P0口作地址/數(shù)據(jù)復(fù)用總線從P0口輸出數(shù)據(jù)或地址信息的過(guò)程:控制端高電平MUX接反相器輸出端輸出級(jí)T2連接與門開(kāi)鎖信號(hào)驅(qū)動(dòng)T1驅(qū)動(dòng)電路接通P0口輸出數(shù)據(jù)/地址信息從P0口輸入數(shù)據(jù)信息:引腳信號(hào)從輸入三態(tài)緩沖器進(jìn)入內(nèi)部總線“讀”P1口:準(zhǔn)雙向口讀鎖存器寫鎖存器內(nèi)部總線讀引腳DCLQQP1.x鎖存器TP1.x引腳Vcc內(nèi)部上拉電阻010101輸出輸入“讀引腳”P1口位結(jié)構(gòu)作通用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)雙向口P2口:準(zhǔn)雙向口地址控制讀鎖存器寫鎖存器內(nèi)部總線讀引腳DCLQQP2.x鎖存器TP2.x引腳P2口位結(jié)構(gòu)VccMUX上拉電阻P2口作通用I/O口使用時(shí):

準(zhǔn)雙向口。MUX倒向左邊,輸出級(jí)與鎖存器“Q”端接通,P2口I/O操作完全與P1口相同P2口作地址總線高8位使用時(shí):

在CPU的控制下,MUX倒向右邊,接通內(nèi)部地址總線,P2口的口線狀態(tài)取決于片內(nèi)輸出的地址信息

P2口的驅(qū)動(dòng)能力:驅(qū)動(dòng)4個(gè)TTL門第二輸入功能P3口:雙功能口讀鎖存器寫鎖存器內(nèi)部總線讀引腳DCLQQP3.x鎖存器TP3.x引腳Vcc上拉電阻第二輸出功能110P3作第一功能口使用時(shí):

輸出控制線為高電平,與非門的輸出取決于鎖存器“Q”端的狀態(tài),P3口的I/O操作和P1口相同。P3作第二功能口使用時(shí):

相應(yīng)的口線鎖存器必須為“1”,與非門的輸出取決于第二功能輸出線。

P3的驅(qū)動(dòng)能力:驅(qū)動(dòng)4個(gè)TTL門

第二功能輸入時(shí)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論