第2章 51單片機(jī)的基本結(jié)構(gòu)_第1頁(yè)
第2章 51單片機(jī)的基本結(jié)構(gòu)_第2頁(yè)
第2章 51單片機(jī)的基本結(jié)構(gòu)_第3頁(yè)
第2章 51單片機(jī)的基本結(jié)構(gòu)_第4頁(yè)
第2章 51單片機(jī)的基本結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩107頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第2章51單片機(jī)的基本結(jié)構(gòu)80C51系列單片機(jī)的基本結(jié)構(gòu)2.180C51單片機(jī)基本組成與內(nèi)部結(jié)構(gòu)2.2

80C51單片機(jī)的引腳功能2.380C51單片機(jī)的存儲(chǔ)器的配置2.480C51單片機(jī)的并行輸入/輸出端口2.580C51單片機(jī)的CPU時(shí)序80C51系列單片機(jī)芯片型號(hào)及制造工藝型號(hào)片內(nèi)ROM片內(nèi)RAMI/O口線(xiàn)備注80C31無(wú)128B+SFR8×4DIP40腳80C51掩膜4KB128B+SFR8×4DIP40腳87C51EPROM4KB128B+SFR8×4DIP40腳89C51FLASH4KB128B+SFR8×4DIP40腳89C2051FLASH2KB128B+SFR15簡(jiǎn)化DIP20腳8XC5528K256B+SFR8×6增強(qiáng)多功能型返回80C51單片機(jī)內(nèi)部基本組成

時(shí)鐘電路4KROM程序存儲(chǔ)器RAM數(shù)據(jù)存儲(chǔ)器2X16位定時(shí)/計(jì)數(shù)器CPU處理器中斷系統(tǒng)可編程并行I/O端口P0-3可編程串行口TXDRXDT0T1P0P1P2P3內(nèi)部總線(xiàn)/INT0/INT180C51單片機(jī)的各個(gè)模塊的基本功能CPU:運(yùn)算器+控制器內(nèi)部程序存儲(chǔ)器ROM:4KB的存儲(chǔ)容量;內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM:256B(128B的RAM+128B的SFR)設(shè)4個(gè)寄存器區(qū),每個(gè)區(qū)有R0~R7八個(gè)工作寄存器;4個(gè)8位并行輸入/輸出端口:P0、P1、P2和P3;定時(shí)/計(jì)數(shù)器:2個(gè)16位的定時(shí)/計(jì)數(shù)器;串型口:全雙工的端口(RXD:接收端,TXD發(fā)送端);中斷系統(tǒng):設(shè)有5個(gè)中斷源;堆棧:設(shè)在RAM單元中,區(qū)域可以浮動(dòng),堆棧指針SP確定堆棧的位置(復(fù)位時(shí)SP=07H);布爾處理機(jī):配合布爾運(yùn)算(位運(yùn)算)指令進(jìn)行邏輯運(yùn)算;指令系統(tǒng):111條指令。按功能可分為5大類(lèi)。 數(shù)據(jù)傳送; 算術(shù)運(yùn)算; 邏輯運(yùn)算; 控制轉(zhuǎn)移; 布爾操作;CPU:運(yùn)算器+控制器1運(yùn)算器功能:算術(shù)和邏輯運(yùn)算組成:ALU,ACC,TMP,B,PSWCPU:運(yùn)算器+控制器2控制器(1)功能: 對(duì)指令譯碼; 通過(guò)定時(shí)和控制電路,發(fā)出內(nèi)、外部控制信號(hào),協(xié)調(diào)各功能模塊之間的工作。CPU:運(yùn)算器+控制器(2)控制器組成: 程序計(jì)數(shù)器PC,指令寄存器,指令譯碼器,數(shù)據(jù)指針DPTR,堆棧指針SP、定時(shí)控制邏輯等 程序計(jì)數(shù)器PC:存放下一條將要執(zhí)行的指令代碼所在ROM單元的地址,長(zhǎng)度16位。 自動(dòng)増量功能 指令譯碼器:對(duì)指令譯碼 數(shù)據(jù)指針DPTR:對(duì)片外RAM+I/O端口尋址的指針,長(zhǎng)度為16位。 堆棧指針SP:初始化時(shí)指示堆棧的起始地址;向上生長(zhǎng)型堆棧-入棧后,SP增量51單片機(jī)外型圖(DIP封裝)51單片機(jī)的邏輯符號(hào)圖VCCRSTXTAL1

P0口XTAL2/EA/PSENALE

P1口RXDTXD/INT0/INT1P2口T0T1P3口/WR/RDGND87C51EPROM型AT89C51ATMELFLASH型2.280C51單片機(jī)的引腳功能1,電源引腳:Vcc(+5V---40腳)和Vss(GND20腳);2,外接晶體引腳:XTAL1(19腳)、XTAL2(18腳)

引腳圖引腳功能介紹51內(nèi)部有一個(gè)高增益反相放大器,與外接石英晶體(或陶瓷諧振器)一起構(gòu)成穩(wěn)定的自激震蕩器(見(jiàn)A),單片機(jī)的工作頻率取決于石英晶體的固有諧振頻率。如果使用外部震蕩器信號(hào),其外來(lái)的時(shí)鐘脈沖信號(hào)加在XTAL1的引腳上(CMOS型,見(jiàn)B)。XTAL2XTAL1NC外時(shí)鐘B使用外部時(shí)鐘時(shí)的電路連接(CMOC型51)XTAL1XTAL230P30P返回A使用單片機(jī)內(nèi)部震蕩電路連接3,控制線(xiàn)(4條):功能、引腳方向、有效電平(及持續(xù)時(shí)間)

RST/Vpd(第9腳):

①RST

單片機(jī)復(fù)位輸入端,高電平有效。 通過(guò)在該引腳上施加持續(xù)2個(gè)機(jī)器周期以上的高電平,使系統(tǒng)達(dá)到復(fù)位的目的。 為了使單片機(jī)系統(tǒng)可靠復(fù)位,需要外加復(fù)位電路(如圖)。復(fù)位狀態(tài)下: SFR的內(nèi)容全變?yōu)椤?”, RAM內(nèi)容不變。 并行端口輸出“1”。

51RSTVcctVT上電自動(dòng)復(fù)位電路RCRST端上電電壓曲線(xiàn)

VCC51RSTVcc具有上電自動(dòng)復(fù)位/按鍵手動(dòng)復(fù)位功能復(fù)位電路RST/Vpd(第9腳):②Vpd

備用電壓輸入端。當(dāng)單片機(jī)的主電源因故障而下降到某一個(gè)臨界值時(shí),RST/VPD上的電源可自動(dòng)與片內(nèi)RAM連接以確保RAM內(nèi)的信息不丟失。

ALE/PROG(第30腳):

①當(dāng)單片機(jī)訪(fǎng)問(wèn)外部存儲(chǔ)器時(shí),輸出地址鎖存信號(hào)。用以鎖存P0口送出的低八位地址(P0口的數(shù)據(jù)/地址分時(shí)復(fù)用)不訪(fǎng)問(wèn)外部存儲(chǔ)器時(shí),以系統(tǒng)時(shí)鐘fosc/6的頻率周期性輸出正脈沖。 ②對(duì)于EPROM型的單片機(jī),此腳用于燒寫(xiě)程序(編程)時(shí),輸入編程脈沖。

/PSEN(29腳):

外部程序程序存儲(chǔ)器的讀選通信號(hào)。 當(dāng)單片機(jī)使用外部程序存儲(chǔ)器ROM時(shí),此腳在一個(gè)機(jī)器周期內(nèi)產(chǎn)生兩次負(fù)脈沖。 注意:訪(fǎng)問(wèn)內(nèi)部ROM或外部RAM時(shí),不產(chǎn)生此信號(hào)。

/EA/Vpp(31腳):

① /EA-訪(fǎng)問(wèn)外部程序存儲(chǔ)器的控制信號(hào),輸入;

只使用外部的程序存儲(chǔ)器(內(nèi)部無(wú)ROM或內(nèi)部有ROM不用)將/EA=“0”電平,外部程序存儲(chǔ)器編址從0000H單元開(kāi)始。 只有內(nèi)部的程序存儲(chǔ)器將/EA=“1”電平 既使用內(nèi)部程序存儲(chǔ)器(4K字節(jié))又使用外部程序存儲(chǔ)器:將/EA=“1”電平先使用單片機(jī)內(nèi)部的程序存儲(chǔ)器,地址為0000H-0FFFH;當(dāng)程序計(jì)數(shù)器PC的值超過(guò)0FFFH(4K)時(shí),單片機(jī)將自動(dòng)轉(zhuǎn)向外部程序存儲(chǔ)器,外部程序存儲(chǔ)器編址從1000H單元開(kāi)始。

②Vpp-對(duì)于EPROM型的單片機(jī),此腳用于寫(xiě)程序時(shí),加入21伏的編程電壓。4,并行輸入/輸出端口引腳(P0-P3)P0.0-P0.7P0端口線(xiàn)(39-32腳):

①8位漏極開(kāi)路型準(zhǔn)雙向并行I/O端口, 輸出能力最強(qiáng),可以驅(qū)動(dòng)8個(gè)LSTTL門(mén)電路-吸收電流方式。

②如果系統(tǒng)使用外接存儲(chǔ)器,該口作為低八位地址/數(shù)據(jù)的復(fù)用總線(xiàn)。 此種情況下,P0口不再作I/O端口。P2.0–P2.7P2端口線(xiàn)(21–28腳):

①帶有內(nèi)部上拉電阻的8位準(zhǔn)雙向并行I/O端口; 負(fù)載能力為4個(gè)LSTTL門(mén)電路

②當(dāng)系統(tǒng)使用外接存儲(chǔ)器時(shí),該口作為高八位地址總線(xiàn)。 在這種情況下,P2口不再作I/O端口。P1.0-P1.7P1端口線(xiàn)(1–8腳):

帶有內(nèi)部上拉電阻的8位準(zhǔn)雙向并行I/O端口, 負(fù)載能力為4個(gè)LSTTL門(mén)電路。P3.0–P3.7P3端口線(xiàn)(10–17腳):

①帶有內(nèi)部上拉電阻的8位準(zhǔn)雙向并行I/O端口;

負(fù)載能力為4個(gè)LSTTL門(mén)電路。

②具有第二功能??诰€(xiàn)定義說(shuō)明口線(xiàn)定義說(shuō)明P3.0RXD串行數(shù)據(jù)輸入口P3.4T0計(jì)數(shù)器0外部輸入信號(hào)P3.1TXD串行數(shù)據(jù)輸出口P3.5T1計(jì)數(shù)器1外部輸入信號(hào)P3.2INT0外部中斷0輸入口P3.6/WR外部數(shù)據(jù)存儲(chǔ)器寫(xiě)信號(hào)P3.3INT1外部中斷1輸入口P3.7/RD外部數(shù)據(jù)存儲(chǔ)器讀信號(hào)P3口第二功能表返回/PSEN/WR

/RD

P2口80C51

P0口

ALED7Q7∶∶D0Q0/CP/WR/RDA15∶∶A8

64K

A7RAMD0∶∶A0D7/OEA15∶∶A8

64KA7ROMD0∶∶A0D7A7…A0A15…A8D0…D780C51單片機(jī)片外并行擴(kuò)展時(shí)的三總線(xiàn)提供2.380C51單片機(jī)的存儲(chǔ)器的配置2.3.080C51單片機(jī)的存儲(chǔ)器的配置特點(diǎn)2.3.1程序存儲(chǔ)器ROM(片內(nèi)與片外)2.3.2內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM2.3.3外部數(shù)據(jù)存儲(chǔ)器RAM2.3.080C51單片機(jī)的存儲(chǔ)器的配置特點(diǎn)物理分區(qū) 四個(gè)存儲(chǔ)空間: 片內(nèi)ROM、RAM 片外ROM、RAM

內(nèi)部集成 --4K的程序存儲(chǔ)器(ROM) --256B的數(shù)據(jù)存儲(chǔ)器(RAM)片外擴(kuò)展 --64K的程序存儲(chǔ)器 --64K的數(shù)據(jù)存儲(chǔ)器單片機(jī)系統(tǒng)的存儲(chǔ)器結(jié)構(gòu)圖-物理結(jié)構(gòu)

(四個(gè)部分)

51單片機(jī)片內(nèi)ROM4K片內(nèi)RAM256B片外RAM64K片外ROM64K000HFFFH0000HFFFFH0FFFH1000H邏輯分區(qū)(用戶(hù)編程的角度) 三個(gè)存儲(chǔ)空間:片內(nèi)RAM,片外RAM和ROM。掌握80C51單片機(jī)的存儲(chǔ)器邏輯分區(qū):片內(nèi)RAM功能分區(qū)、

各邏輯空間的尋址方式、訪(fǎng)問(wèn)指令 是80C51單片機(jī)編程的關(guān)鍵。

單片機(jī)系統(tǒng)的存儲(chǔ)器結(jié)構(gòu)圖-邏輯空間2.3.1程序存儲(chǔ)器ROM(片內(nèi)與片外)程序存儲(chǔ)器功能:存放編好的程序、常數(shù)表格。尋址范圍:0000H-FFFFH尋址指針:PC,DPTR程序存儲(chǔ)器的訪(fǎng)問(wèn):1程序指令的自主操作:PC2表格的查表操作: MOVC指令:使用的指針DPTR、PC系統(tǒng)只使用片外的ROM:/EA=0

片外ROM編址從0000H開(kāi)始系統(tǒng)只使用片內(nèi)的4KROM來(lái)存儲(chǔ)程序:/EA=1內(nèi)部帶有ROM的51芯片,如果要使用片內(nèi)ROM,且在片外擴(kuò)展部分ROM:/EA=1

先使用單片機(jī)內(nèi)部的程序存儲(chǔ)器:地址為0000H-0FFFH;程序計(jì)數(shù)器PC的值超過(guò)0FFFH(4K):單片機(jī)將自動(dòng)轉(zhuǎn)向外部程序存儲(chǔ)器,且從片外ROM的1000H單元開(kāi)始執(zhí)行程序。注意:片外擴(kuò)展ROM的編址應(yīng)從1000H開(kāi)始。程序存儲(chǔ)器六個(gè)特殊的單元在程序存儲(chǔ)器中,有六個(gè)單元具有特定功能。編程者不能隨便使用。0000H單元:上電復(fù)位時(shí),程序計(jì)數(shù)器PC所指向的單元0003H單元:/INT0外部中斷0的入口地址;000BH單元:定時(shí)器T0溢出中斷的入口地址;0013H單元:/INT1外部中斷1的入口地址;001BH單元:定時(shí)器T1溢出中斷的入口地址;0023H單元:串行口接收、發(fā)送中斷的入口地址;返回程序框架格式

ORG0000H LJMPMAIN ORG0023H LJMPSERV_S ORG0100HMAIN:MOVSP,#60H …… ……SER_S:CLREA CLRRI …… RETI0100HSER_INT0SER_T0SER_S0000H0003H000BH0013H001BH0023HLJMP0100H…LJMPSER_INT0…LJMPSER_T0…LJMPSER_INT1…LJMPSER_T1…LJMPSER_S…MOVSP,#60H……什么是中斷入口地址?符號(hào)地址2.3.2內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM數(shù)據(jù)存儲(chǔ)器無(wú)論在物理上還是邏輯上都分為兩個(gè)地址空間:內(nèi)部的數(shù)據(jù)存儲(chǔ)空間 外部的數(shù)據(jù)存儲(chǔ)空間訪(fǎng)問(wèn)內(nèi)部數(shù)據(jù)存儲(chǔ)器單元時(shí):MOV

指令;

訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器單元時(shí):MOVX指令。51單片機(jī)片內(nèi)、片外數(shù)據(jù)存儲(chǔ)器示意圖

特殊功能寄存器SFR通用數(shù)據(jù)存儲(chǔ)器80H7FH00HFFH片內(nèi)數(shù)據(jù)存儲(chǔ)器片外數(shù)據(jù)存儲(chǔ)器256B64KB片外數(shù)據(jù)存儲(chǔ)器64KB0000HFFFFH注意:1,訪(fǎng)問(wèn)片內(nèi)RAM20H存儲(chǔ)單元;MOVA,20H2,訪(fǎng)問(wèn)片外RAM存儲(chǔ)單元;MOVR0,#20hMOVXA,@R03,盡管片內(nèi)與片外的RAM單元的00H-FFH地址相重疊但由于指令的不同不會(huì)發(fā)生地址混亂。內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM分塊內(nèi)部數(shù)據(jù)存儲(chǔ)器空間256B,從功能上分為二個(gè)不同的塊:1低128B的RAM塊:

工作寄存器區(qū)、位尋址區(qū)、通用數(shù)據(jù)存儲(chǔ)區(qū)2高128B的SFR(SpecialFunctionRegister)高128B的SFR區(qū)中僅僅使用了21個(gè)RAM單元(51系列),其它單元未定義不能使用。SFR高128B低128B0FFH80H7FH00H片內(nèi)RAM1片內(nèi)RAM低128B功能分區(qū)圖

位尋址區(qū)3區(qū)2區(qū)1區(qū)0區(qū)通用區(qū)08H07H00H7FH30H2FH20H1FH18H17H10H0FH四個(gè)工作寄存器區(qū)每區(qū)包含八個(gè)工作寄存器:R0-R7位尋址區(qū)16個(gè)單元20H-2FH,共有128個(gè)可位尋址位。位地址:00H-7FH注意:位地址與字節(jié)地址的區(qū)別通用的RAM區(qū)(包含棧區(qū))地址:30H-7FH0區(qū)工作寄存器區(qū)結(jié)構(gòu)圖R7R6R5R4R3R2R1R0RAM地址07H06H05H04H03H02H01H00H返回上一次片內(nèi)RAM(20H-2FH)中的位尋址區(qū)結(jié)構(gòu)圖7F7E7D7C7B7A797877767574737271706F6E6D6C6B6A696867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A393837262524232221202F2E2D2C2B2A292827262524232221201F1E1D1C1B1A191817161514131211100F0E0D0C0B0A090807060504030201002FH20H字節(jié)地址位地址位尋址區(qū)內(nèi)的地址是位地址。共有00-7FH(共128個(gè)位);區(qū)分字節(jié)地址和位地址: ①?gòu)奈锢淼慕嵌龋好恳粋€(gè)字節(jié)地址內(nèi)包含了8個(gè)位,既:

D7,D6,D5,D4,D3,D2,D1,D0 (我們提到的RAM地址一般都是指字節(jié)地址)。

②從邏輯的角度:字節(jié)地址和位地址是靠不同類(lèi)型的指令來(lái) 區(qū)分的。如,

MOVA,20h;將RAM的20單元內(nèi)容送字節(jié)累加器A;MOVC,20h;將RAM位尋址區(qū)中20H位送位累加器CY中。第一條指令為字節(jié)傳送指令,既20H為字節(jié)地址;第二個(gè)指令為位操作指令,20H為位地址。返回2特殊功能寄存器SFR

(SpecialFunctionRegister)特殊用途寄存器的集合,不作普通的RAM單元使用。

功能-作用于單片機(jī)內(nèi)部功能模塊

①特定功能的設(shè)定: 用來(lái)設(shè)定單片機(jī)內(nèi)部各個(gè)功能模塊的工作方式:中斷方式的設(shè)定、定時(shí)器工作模式的設(shè)定;

②存放相關(guān)模塊的狀態(tài)、標(biāo)志等。查尋相關(guān)模塊的工作狀態(tài),以便進(jìn)行后續(xù)處理操作:查詢(xún)串行口發(fā)送或接收是否結(jié)束等等。SFR高128B低128B0FFH80H7FH00H特殊功能寄存器SFR在片內(nèi)RAM中的位置片內(nèi)RAM

標(biāo)識(shí)符名稱(chēng)直接地址ACCBPSWSPDPTRP0P1P2P3IPIETMODTCON累加器B寄存器程序狀態(tài)字堆棧指針數(shù)據(jù)指針(包括DPH,DPL)口0鎖存器口1鎖存器口2鎖存器口3鎖存器中斷優(yōu)先級(jí)控制寄存器中斷允許控制寄存器定時(shí)/計(jì)數(shù)器方式控制寄存器定時(shí)/計(jì)數(shù)器控制寄存器0E0H0F0H0D0H81H83H,82H80H90H0A0H0B0H0B8H0A8H89H88H特殊功能寄存器SFR(表一)SFR(表二)

標(biāo)識(shí)符名稱(chēng)地址TH0TL0TH1TL1SCONSBUFPCON定時(shí)/計(jì)數(shù)器0初值寄存器高8位定時(shí)/計(jì)數(shù)器0初值寄存器低8位定時(shí)/計(jì)數(shù)器1初值寄存器高8位定時(shí)/計(jì)數(shù)器1初值寄存器低8位串行口控制寄存器串行口數(shù)據(jù)緩沖器(接收,發(fā)送)電源控制寄存器8CH8AH8DH8BH98H99H97H注:表中黃色的單元為可按位尋址的字節(jié)特殊功能寄存器SFR說(shuō)明累加器ACC

:

最常用的專(zhuān)用寄存器,大多數(shù)的指令,操作數(shù)中的一個(gè)都來(lái)自累加器A。所有的算術(shù)運(yùn)算指令的運(yùn)算結(jié)果都暫存在A中。B寄存器:乘除法指令使用的專(zhuān)用寄存器。數(shù)據(jù)指針DPTR:

16位的寄存器.由高八位DPH和低八位DPL構(gòu)成.1DPTR主要用來(lái)存放片外RAM的地址. 單片機(jī)通過(guò)間接尋址的方式來(lái)訪(fǎng)問(wèn)片外的RAM。

例:片外RAM3000H單元中有一個(gè)數(shù)x,試將其送到累加器A中。

MOVDPTR,#3000H ;DPTR←3000H MOVXA,@DPTR;A←x2訪(fǎng)問(wèn)ROM ROM中存放了一個(gè)表格,首單元地址為:LEDTAB MOVDPTR,#LEDTAB MOVA,#3 MOVCA,@A+DPTR程序狀態(tài)字PSW:

8位寄存器.表征當(dāng)前指令執(zhí)行后的狀態(tài)信息。CY(PSW.7)進(jìn)位標(biāo)志:

在加法運(yùn)算中,累加器A的最高位A7有進(jìn)位,則CY=1,否則CY=0. 在減法運(yùn)算中,如果A7有借位,則CY=1.CY往往作為無(wú)符號(hào)數(shù)運(yùn)算是否有溢出的標(biāo)志。AC(PSW.6):輔助進(jìn)位位: 用來(lái)判斷加減法運(yùn)算時(shí),低四位是否向高四位進(jìn)位或借位(既A3的進(jìn)位或借位). 用來(lái)判斷壓縮的BCD碼的運(yùn)算處理.F0(PSW.5)用戶(hù)標(biāo)志位:

完全由用戶(hù)來(lái)定義和使用。RS1,RS0工作寄存器區(qū)選擇位: 確定工作寄存器R0-R7在哪個(gè)區(qū)中. 單片機(jī)在上電或復(fù)位后RS1、RS0=00??赏ㄟ^(guò)指令修改RS1,RS0的值來(lái)改變工作寄存器區(qū)的位置。CYACF0RS1RS0OV-POV(PSW.2)溢出標(biāo)志位:

判斷符號(hào)數(shù)加減法運(yùn)算時(shí)是否溢出.OV=1表明有溢出。OV的結(jié)果可以用一個(gè)算法來(lái)表示:OV=CP⊕CS

其中:CP為A7的進(jìn)位;CS為A6的進(jìn)位。

P(PSW.0)奇偶標(biāo)志位:

用來(lái)對(duì)累加器A中的數(shù)據(jù)做偶校驗(yàn)當(dāng)A中1的個(gè)數(shù)為奇數(shù)個(gè)時(shí),P=1

10010001A1P當(dāng)A中1的個(gè)數(shù)為偶數(shù)個(gè)時(shí),P=010010011A0PSP堆棧指針: 8位寄存器,指示堆棧的當(dāng)前位置。 在51單片機(jī)的設(shè)計(jì)中,片內(nèi)RAM區(qū)為堆棧的可用空間。 上電或復(fù)位時(shí),SP被初始化為07H,應(yīng)重新初始化SP: MOVSP,#60H

進(jìn)棧:PUSHACC指令(設(shè)SP=60H)1,SP+1送SP,SP=61H;2,F(xiàn)FH送RAM的61H單元;SP=60H(執(zhí)行前61HRAMFFH累加器A堆棧操作示意圖SP始終指向有意義的單元FFHSP=61H(執(zhí)行后60H

出棧:

POPACC(設(shè)SP=61H)1,將RAM中61H單元內(nèi)容送A;2,SP-1送SP,此時(shí)SP=60H。SP=61H(執(zhí)行前)61H60HRAMFFH累加器A堆棧操作示意圖SP始終指向有意義的單元FFHSP=60H(執(zhí)行后)并行端口P0-P3: P0-P3的RAM地址:80H、90H、A0H、B0H。51單片機(jī)中的輸入、輸出操作

同普通的RAM單元操作 輸出指令: MOV80H,A;將累加器中的數(shù)據(jù)輸出到P0 MOVP0,A 輸入指令: MOVA,90H;將P1口的數(shù)據(jù)輸入到累加器AMOVP1,A51把P0-P3作為普通的內(nèi)存單元來(lái)使用,指令系統(tǒng)中沒(méi)有專(zhuān)用的輸入、輸出(IN、OUT)指令.串行數(shù)據(jù)緩沖器SBUF: 用來(lái)存放將要發(fā)送或已經(jīng)接收的數(shù)據(jù),物理上它是兩個(gè)獨(dú)立的寄存器。邏輯上占用一個(gè)地址:99H根據(jù)指令“發(fā)送”或“接收”兩種不同的操作,硬件會(huì)自動(dòng)的區(qū)分,將數(shù)據(jù)送如對(duì)應(yīng)的緩沖單元。定時(shí)/計(jì)數(shù)器T0、T1:

實(shí)質(zhì)是一個(gè)16位的計(jì)數(shù)器:是一個(gè)“計(jì)數(shù)器”在計(jì)數(shù)。計(jì)數(shù)器由兩個(gè)8位寄存器(高位和低位):

T0:TH0、TL0

T1:

TH1、TL1在使用計(jì)數(shù)器實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能之前,要對(duì)它進(jìn)行初始化,其中就要對(duì)TH、TL賦初值。如:

MOV8BH,#01H;(MOVTH0,#01H)MOV8AH,#20H;(MOVTL0,#20H)TH0TL02.3.3外部數(shù)據(jù)存儲(chǔ)器在片內(nèi)RAM不能滿(mǎn)足存儲(chǔ)需要時(shí),要在片外擴(kuò)展RAM。P0、P2端口作為外部RAM的地址和數(shù)據(jù)總線(xiàn)。 51對(duì)外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展能力為64KB。

專(zhuān)用指令MOVX來(lái)訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器。

1

R0做間址寄存器,尋址范圍為256KB。MOVR0,#20H;將外部RAM單元地址20H送R0寄存器

MOVXA,@R0;從外部RAM20H單元取數(shù)據(jù)到累加器A

2使用16位的DPTR做間址寄存器,尋址范圍為64KB。

MOVDPTR,#2000H;將外部RAM單元的地址的2000送DPTR

MOVXA,@DPTR

;從外部RAM2000H單元中取數(shù)據(jù)到A

內(nèi)容小結(jié)51單片機(jī)的存儲(chǔ)器邏輯分區(qū) 三個(gè)存儲(chǔ)空間: ROM、片內(nèi)RAM、片外RAM。程序存儲(chǔ)器當(dāng)引腳/EA=1時(shí),從片內(nèi)ROM的0000H單元運(yùn)行程序;若引腳/EA=0時(shí),從片外ROM的0000H單元運(yùn)行程序。當(dāng)引腳EA=1,且PC值大于1FFFH時(shí),自動(dòng)轉(zhuǎn)到片外2000H單元運(yùn)行程序。無(wú)論是片內(nèi)還是片外,ROM有六個(gè)單元是有特定意義的:

1,0000H單元:上電復(fù)位后的啟動(dòng)地址;2,0003H單元:外部中斷/INT0的入口地址;3,000BH單元:定時(shí)器T0溢出中斷的入口地址;4,0013H單元:外部中斷/INT1的入口地址;5,001BH單元:定時(shí)器T1溢出中斷的入口地址;6,0023H單元:串行口發(fā)送/接受中斷的入口地址。2內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM

低128B:1,工作寄存器區(qū);2,位尋址區(qū);3,棧區(qū);高128B:做特殊功能寄存器SFR用。注意:

1,SFR不同于一般的數(shù)據(jù)RAM,它不是用于存儲(chǔ)數(shù)據(jù),而是用來(lái)控制和表征單片機(jī)內(nèi)部幾個(gè)邏輯部件的特征,狀態(tài)重要信息。2,在使用RAM時(shí),要注意字節(jié)地址和位地址的概念。 3,訪(fǎng)問(wèn)內(nèi)部RAM的指令為MOV指令。3外部數(shù)據(jù)存儲(chǔ)器①在硬件具備的條件下,80C51單片機(jī)可以使用64KB的外部數(shù)據(jù)存儲(chǔ)器.訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器RAM時(shí),只能使用間址的尋址方式.②間址寄存器有R0,R1或DPTR.前者尋址范圍為256B(00H-FFH);后者為64KB(0000H-FFFFH).使用的指令是MOVX. ③CPU通過(guò)P0、P2口作為地址/數(shù)據(jù)總線(xiàn),訪(fǎng)問(wèn)外部存儲(chǔ)器。51單片機(jī)片外擴(kuò)展系統(tǒng)擴(kuò)展

片外擴(kuò)展:ROM(64KB);RAM+I/O接口(64KB)

可片外并行擴(kuò)展并行三總線(xiàn):DB,AB,CB可片外串行擴(kuò)展數(shù)據(jù)線(xiàn)+時(shí)鐘線(xiàn)

2.480C51單片機(jī)的并行輸入/輸出端口

CPU輸入/輸出端口外部設(shè)備輸入/輸出端口成為CPU與外部設(shè)備進(jìn)行數(shù)據(jù)交換的橋梁80C51單片機(jī)內(nèi)部總線(xiàn)端口引腳四個(gè)端口都是具有輸出鎖存功能的準(zhǔn)雙向端口,輸出鎖存器都在SFR中, P0P1P2P3地址分別為:80H、90H、A0H、B0H。在硬件設(shè)計(jì)上對(duì)每一個(gè)端口都有不同的要求,每一個(gè)端口又具有不同的特點(diǎn)。繼續(xù)2.4.1P0口2.4.2P1口2.4.3P2口2.4.4P3口2.4.5并行端口在使用時(shí)應(yīng)注意的幾個(gè)問(wèn)題/PSEN/WR

/RD

P2口80C51

P0口

ALED7Q7∶∶D0Q0/CP/WR/RDA15∶∶A8

64K

A7RAMD0∶∶A0D7/OEA15∶∶A8

64KA7ROMD0∶∶A0D7A7…A0A15…A8D0…D780C51單片機(jī)片外并行擴(kuò)展時(shí)的三總線(xiàn)提供2.4.1P0口

【特點(diǎn)】:

“通用I/O端口”和“地址/數(shù)據(jù)復(fù)用總線(xiàn)”。1作為通用I/O端口 具有較強(qiáng)的驅(qū)動(dòng)能力(8個(gè)LSTTL負(fù)載)。 輸出時(shí)需外接一個(gè)上拉電阻。2作為“地址/數(shù)據(jù)復(fù)用總線(xiàn)”使用 P0口先輸出外部存儲(chǔ)器的低八位地址, 然后再作為數(shù)據(jù)總線(xiàn)進(jìn)行數(shù)據(jù)的輸入或輸出。 注意:P0口功能1和2是矛盾的。硬件組成:一個(gè)輸出鎖存器(D型觸發(fā)器);與門(mén)和MUX等元件組成的輸出控制電路;一對(duì)場(chǎng)效應(yīng)晶體管FET構(gòu)成的輸出驅(qū)動(dòng)電路。二個(gè)三態(tài)輸入緩沖器(控制讀引腳或讀鎖存器);P0口的位結(jié)構(gòu)圖DQ

鎖存器CL/QP0.x引腳Vcc地址/數(shù)據(jù)1/0控制(=0時(shí))讀鎖存器讀引腳內(nèi)部總線(xiàn)寫(xiě)鎖存器MUX(控制=0時(shí))Vcc1P0口的I/O操作(通用I/O端口)在P0口作為通用I/O端口時(shí),控制電路中的“控制”為“0”電平:多路開(kāi)關(guān)MUX接入鎖存器的/Q端;使上端的FET截止,P0口在做I/O口時(shí)輸出為“漏極開(kāi)路”的結(jié)構(gòu)。DQ

鎖存器CL/QP0.x引腳Vcc地址/數(shù)據(jù)1/0控制(=0時(shí))讀鎖存器讀引腳內(nèi)部總線(xiàn)寫(xiě)鎖存器MUX(控制=0時(shí))Vcc MOVP0,A;A→P0 數(shù)據(jù)送到鎖存器的“D”端,經(jīng)“/Q”端送場(chǎng)效管應(yīng)輸出極。

①送“1”時(shí),/Q=“0”,使下端的FET截止,輸出極的兩個(gè)FET全部截止。在外部上拉電阻的作用下,使端口為高電平;②送“0”時(shí),鎖存器的/Q=1,使下端的FET導(dǎo)通(上面的FET截止),端口呈現(xiàn)“0”電平。(一)通用I/O端口輸出操作:DQ

鎖存器CL/QP0.x引腳Vcc地址/數(shù)據(jù)1/0控制(=0時(shí))讀鎖存器讀引腳內(nèi)部總線(xiàn)寫(xiě)鎖存器MUX(控制=0時(shí))Vcc 輸入操作有兩種,由三態(tài)門(mén)控制:

①讀引腳:該引腳用于數(shù)據(jù)輸入時(shí)的操作;②讀鎖存:該引腳用于輸出時(shí)常用的操作。結(jié)構(gòu)圖(二)通用I/O端口輸入操作a,讀引腳:端口引腳作為輸入的連接下,讀外部送到端口引腳的電平。如: MOVA,P0;A←P0 【注意】:P0為端口引腳電平!單片機(jī)控制“讀引腳”的三態(tài)門(mén)導(dǎo)通,使引腳處的外部電平經(jīng)三態(tài)門(mén)送入內(nèi)部總線(xiàn)DQ

鎖存器CL/QP0.x引腳Vcc地址/數(shù)據(jù)1/0控制(=0時(shí))讀鎖存器讀引腳內(nèi)部總線(xiàn)寫(xiě)鎖存器MUX(控制=0時(shí))Vcc

端口在讀引腳時(shí),鎖存器的狀態(tài)可能影響引腳電平的輸入。如:原來(lái)鎖存器的狀態(tài)為“0”態(tài),電路將不能正確讀入引腳電平(引腳輸入高電平時(shí)).DQ

鎖存器CL/QP0.x引腳Vcc地址/數(shù)據(jù)1/0控制(=0時(shí))讀鎖存器讀引腳內(nèi)部總線(xiàn)寫(xiě)鎖存器MUX(控制=0時(shí))Vcc解決的方法:讓下端的FET截止,即讀引腳前要先向輸出鎖存器寫(xiě)“1”MOVP0,#0FFHMOVA,P0進(jìn)行輸入的MOV指令都是“讀引腳”指令,相當(dāng)于其它系統(tǒng)中的IN指令。P口單片機(jī)的引腳設(shè)計(jì)為輸入時(shí)使用MOV指令結(jié)構(gòu)圖MOVA,P0b,讀鎖存器:

算術(shù)、邏輯運(yùn)算指令:ORL、XRL、ANL、INC、DEC、DJNZ及位操作指令。讀入的數(shù)據(jù)不是來(lái)自引腳,而是端口內(nèi)部鎖存器的內(nèi)容 ANLP0,A;“讀——修改——寫(xiě)”操作:先將端口鎖存器中的數(shù)據(jù)讀到CPU中,然后再與累計(jì)器A中的數(shù)據(jù)進(jìn)行算術(shù)、邏輯運(yùn)算,最后將結(jié)果寫(xiě)回到端口鎖存器中。DQ

鎖存器CL/QP0.x引腳Vcc地址/數(shù)據(jù)1/0控制(=0時(shí))讀鎖存器讀引腳內(nèi)部總線(xiàn)寫(xiě)鎖存器MUX(控制=0時(shí))Vcc在端口設(shè)計(jì)為輸出時(shí):有時(shí)在前面完成一次端口的輸出操作(MOVP0,A)后再將前面輸入的狀態(tài)取回來(lái),進(jìn)行再處理然后重新輸出。為什么輸出結(jié)果還要讀入?

采用讀“鎖存器”而不是讀“引腳”,是保證讀數(shù)據(jù)的準(zhǔn)確。例如:使用一個(gè)晶體管驅(qū)動(dòng)繼電器, 當(dāng)端口輸出“1”電平驅(qū)動(dòng)晶體管導(dǎo)通時(shí),P0.0引腳的輸出電平只有0.7伏。如果將引腳信號(hào)讀回來(lái)只會(huì)得到一個(gè)“0”電平的錯(cuò)誤結(jié)果。P0.0JVDD返回結(jié)構(gòu)圖在當(dāng)前狀態(tài)下,將某條口線(xiàn)的電平變“1”,其余位不變。

MOVA,#00000100BORLP0,A

P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7“讀——修改——寫(xiě)”操作舉例在進(jìn)行硬件系統(tǒng)的設(shè)計(jì)中,如果使用了外部存儲(chǔ)器/I/O接口時(shí),P0口成為整個(gè)系統(tǒng)的地址/數(shù)據(jù)復(fù)用總線(xiàn)。P0口不能再作為通用的I/O端口。只要使用了外部ROM,CPU從中取指令或使用了外部RAM(或I/O),CPU執(zhí)行MOVX指令,P0、P2口就自動(dòng)變?yōu)閿?shù)據(jù)/地址總線(xiàn)。2P0口的總線(xiàn)方式

(系統(tǒng)片外擴(kuò)展存儲(chǔ)器/I/O接口時(shí))2P0口的總線(xiàn)方式

作用: 輸出片外ROM/RAM單元的低8位地址; 輸出/輸入8位數(shù)據(jù)。(1)地址/數(shù)據(jù)輸出(2)數(shù)據(jù)輸入DQ

鎖存器CL/QP0.x引腳Vcc地址/數(shù)據(jù)1/0控制(=1時(shí))讀鎖存器讀引腳內(nèi)部總線(xiàn)寫(xiě)鎖存器MUX(控制=1時(shí))(1)地址/數(shù)據(jù)輸出控制電路的“控制”=1,MUX接向“地址/數(shù)據(jù)”信號(hào);地址/數(shù)據(jù)信息通過(guò)“地址/數(shù)據(jù)”線(xiàn)經(jīng)反相器送至下FET輸出。與門(mén)打開(kāi),輸出極的兩個(gè)FET都處于正常的工作狀態(tài),不用外加上拉電阻。DQ

鎖存器CL/QP0.x引腳Vcc地址/數(shù)據(jù)1/0控制(=1時(shí))讀鎖存器讀引腳內(nèi)部總線(xiàn)寫(xiě)鎖存器MUX(控制=1時(shí))(1)地址/數(shù)據(jù)輸出輸出的地址/數(shù)據(jù)信息為1: 與門(mén)輸出為1,上方的場(chǎng)效應(yīng)管導(dǎo)通,下方的場(chǎng)效應(yīng)管截止,P0.x引腳輸出為1; 上方的場(chǎng)效應(yīng)管起到內(nèi)部上拉電阻的作用。輸出的地址/數(shù)據(jù)信息為0:上方的場(chǎng)效應(yīng)管截止,下方的場(chǎng)效應(yīng)管導(dǎo)通,P0.x引腳輸出為0。輸出電路是上、下兩個(gè)場(chǎng)效應(yīng)管形成的推拉式結(jié)構(gòu),提高負(fù)載能力;(2)數(shù)據(jù)輸入對(duì)應(yīng)的“控制”=0,MUX接通鎖存器的/Q端。P0口作為地址/數(shù)據(jù)復(fù)用方式訪(fǎng)問(wèn)外部存儲(chǔ)器時(shí),CPU自動(dòng)向P0口寫(xiě)入FFH,使下方場(chǎng)效應(yīng)管截止,上方場(chǎng)效應(yīng)管由于控制信號(hào)為0也截止,從而保證數(shù)據(jù)信息的高阻抗輸入,從外部存儲(chǔ)器輸入的數(shù)據(jù)信息直接由P0.x引腳通過(guò)輸入緩沖器進(jìn)入內(nèi)部總線(xiàn)。DQ

鎖存器CL/QP0.x引腳Vcc地址/數(shù)據(jù)1/0控制(=0時(shí))讀鎖存器讀引腳內(nèi)部總線(xiàn)寫(xiě)鎖存器MUX(控制=0時(shí))(2)數(shù)據(jù)輸入具有高阻抗輸入的I/O口具有高電平、低電平和高阻抗3種狀態(tài)。P0口作為地址/數(shù)據(jù)總線(xiàn)使用時(shí)是一個(gè)真正的雙向端口。DQ

鎖存器CL/QP0.x引腳Vcc地址/數(shù)據(jù)1/0控制(=0時(shí))讀鎖存器讀引腳內(nèi)部總線(xiàn)寫(xiě)鎖存器MUX(控制=0時(shí))P0口的特點(diǎn)

(1)當(dāng)P0口用作地址/數(shù)據(jù)復(fù)用口時(shí): 是真正的雙向口;(2)當(dāng)P0口用作通用I/O口時(shí): 是一個(gè)準(zhǔn)雙向口: 在進(jìn)行輸入操作前,需先向口輸出鎖存器置1,使下方的FET截至。1做通用數(shù)據(jù)I/O端口時(shí),必須外接“上拉電阻”,否則不能正確的輸出高電平;2在輸入引腳操作前,必須先向端口鎖存器“寫(xiě)1; 為保證引腳信號(hào)的正確讀入,應(yīng)首先向鎖存器寫(xiě)1。(單片機(jī)復(fù)位后,鎖存器自動(dòng)被置1)

返回結(jié)構(gòu)圖P0口用作通用I/O口注意點(diǎn)特點(diǎn):?jiǎn)渭兊耐ㄓ肐/O端口,負(fù)載能力為4個(gè)LSTTL。

與P0口的區(qū)別:內(nèi)部具有上拉電阻,輸出時(shí)不用外接上拉電阻。2.4.2P1口的位結(jié)構(gòu)圖DQ

鎖存器CL/QP1.x引腳Vcc讀鎖存器讀引腳內(nèi)部總線(xiàn)寫(xiě)鎖存器內(nèi)部上拉電阻2.4.3P2口

特點(diǎn):“通用I/O端口”和“高八位地址總線(xiàn)”端口DQ

鎖存器CL/QP2.x引腳Vcc地址控制讀鎖存器讀引腳內(nèi)部總線(xiàn)寫(xiě)鎖存器MUX(地址/數(shù)據(jù)=0)內(nèi)部上拉電阻返回上一次注意:使用外數(shù)據(jù)存儲(chǔ)器時(shí),P2口分兩種情況:1,使用256B的外部RAM時(shí),用8位的寄存器R0或R1作間址寄存器,這時(shí)P2口無(wú)用。P2口仍然可以做通用I/O端口。如: movr0,#30h

movr1,#40h

movxa,@r0或 movxa,@r12,使用大于256BRAM或訪(fǎng)問(wèn)外部ROM時(shí),P2口必須作為外存儲(chǔ)器的高八位地址總線(xiàn)。如: movdptr,#2000H movxa,@dptr;訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器

movdptr,#3000H movca,@a+dptr;訪(fǎng)問(wèn)外部程序存儲(chǔ)器

2.4.4P3口

特點(diǎn):通用I/O端口、多用途端口

通常情況下,P3口不做通用I/O口,以充分利用單片機(jī)的第二功能。DQ

鎖存器CL/QP3.x引腳第二輸出功能讀鎖存器讀引腳內(nèi)部總線(xiàn)寫(xiě)鎖存器Vcc返回第二輸入功能1P0,P1,P2,P3作通用I/O口時(shí),都是準(zhǔn)雙向口為保證引腳信號(hào)的正確讀入,應(yīng)首先向鎖存器寫(xiě)1。輸入前,必須先向口鎖存器輸出11111111B,然后才能輸入。 MOVP1,#0FFH MOVA,P12P0做通用數(shù)據(jù)I/O端口,必須外接“上拉電阻”。P0、P1、P2、P2作通用I/O口使用時(shí)的注意事項(xiàng)2.580C51單片機(jī)CPU的時(shí)序2.5.180C51單片機(jī)的時(shí)序

(1)單字節(jié)單周期指令的時(shí)序 (2)雙字節(jié)單周期指令時(shí)序 (3)單字節(jié)雙周期指令的時(shí)序2.5.2訪(fǎng)問(wèn)外部程序存儲(chǔ)器ROM的時(shí)序2.5.3訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器RAM的指令時(shí)序繼續(xù)2.5.180C51單片機(jī)的時(shí)序

時(shí)序:CPU執(zhí)行指令時(shí)所需控制信號(hào)的時(shí)間順序。時(shí)序圖中時(shí)間參數(shù)的描述:

①震蕩周期

②時(shí)鐘周期(狀態(tài)周期)

③機(jī)器周期

返回震蕩周期T:時(shí)序中最小的時(shí)間單位。 由外接晶體或外輸入時(shí)鐘決定: T=1/fosc;為石英振蕩器頻率或輸入頻率的倒數(shù)。

【例如】:在單片機(jī)外接12MH的晶體,則單片機(jī)的震蕩周期: T=1/fosc=1/(12MHz)=1/12μs.TS1S1S6S5S4S3機(jī)器周期時(shí)鐘周期: 晶體震蕩器的震蕩信號(hào)經(jīng)過(guò)片內(nèi)時(shí)鐘發(fā)生器二分頻。 時(shí)鐘周期是震蕩周期的2倍。機(jī)器周期:

CPU執(zhí)行一條指令所需要的時(shí)間的單位。 51單片機(jī)中的機(jī)器周期由12個(gè)震蕩周期構(gòu)成, 分為6個(gè)狀態(tài)周期(S1-S6), 每個(gè)狀態(tài)又分為P1和P2兩相時(shí)鐘:S1P1,S1P2,S2P1,S2P2,S3P1,S3P2…S6P1,S6P2

TS1S1S6S5S4S3機(jī)器周期指令周期:CPU執(zhí)行一條指令所需要的時(shí)間,以機(jī)器周期為單位。在51系統(tǒng)中,不同的指令執(zhí)行時(shí)所需要的機(jī)器周期數(shù)不同:

1,單機(jī)器周期指令;2,雙機(jī)器周期指令;3,四機(jī)器周期指令;64條指令執(zhí)行時(shí)間為1個(gè)機(jī)器周期;45條指令執(zhí)行時(shí)間為2個(gè)機(jī)器周期;只有乘除法指令需4個(gè)機(jī)器周期;指令的運(yùn)算速度與它所包含的機(jī)器周期數(shù)有關(guān):機(jī)器周期數(shù)越少,執(zhí)行的速度就越快。例如:使用一個(gè)12M的晶體震蕩器

一個(gè)機(jī)器周期為:1/12μs×12×1=1μs;兩個(gè)機(jī)器周期為:1/12μs×12×2=2μs;四個(gè)機(jī)器周期為:1/12μs×12×4=4μs。

指令的字節(jié)數(shù):一條指令翻譯成機(jī)器代碼后所占內(nèi)存單元的數(shù)量。 MCS-51單片機(jī)的指令系統(tǒng)中有: 單字節(jié)指令(占用1個(gè)ROM字節(jié));操作碼+操作數(shù)=1字節(jié) 雙字節(jié)指令(占用2個(gè)ROM字節(jié)); 三字節(jié)指令(占用3個(gè)ROM字節(jié))。操作碼+操作數(shù)ROM操作碼操作數(shù)或地址ROM操作碼1#操作數(shù)或地址2#操作數(shù)或地址ROM單字節(jié)指令雙字節(jié)指令三字節(jié)指令指令特點(diǎn):指令在程序存儲(chǔ)器ROM中僅占一個(gè)存儲(chǔ)單元。每個(gè)機(jī)器周期內(nèi),ALE兩次有效①在ALE第一次有效(S2P1)時(shí),從ROM中讀取指令的操作碼,送入指令寄存器IR中譯碼并執(zhí)行,PC加1。②在ALE第二次有效時(shí),讀下一個(gè)操作碼,但丟棄,且PC不加1。(1)單字節(jié)單周期指令的時(shí)序機(jī)器周期讀操作碼一讀操作碼丟棄ALE返回S1S2S6S5S4S3T震蕩周期INCA

【注意】:1每一個(gè)機(jī)器周期出現(xiàn)兩次ALE信號(hào);2ALE信號(hào)對(duì)應(yīng)從ROM中讀指令。 在一個(gè)機(jī)器周期中CPU可以完成兩次取指操作;3對(duì)于單字節(jié)單周期的指令,CPU是通過(guò)對(duì)指令的OP譯碼后,得到單字節(jié)信息。

指令特點(diǎn):一條指令長(zhǎng)度為兩個(gè)字節(jié),并存儲(chǔ)在ROM相鄰的兩個(gè)單元中。該指令的執(zhí)行必須從ROM中取指兩次。OP2-2OP2-1n+1n程序ROMPC(2)雙字節(jié)單周期指令時(shí)序返回ADDA,#DATA在ALE第一次有效時(shí): CPU從ROM的n單元中取出指令的第一個(gè)字節(jié)OP2-1,并送入IR譯碼。 通過(guò)譯碼CPU得到雙字節(jié)指令的信息,使PC加1,指向n+1單元;在ALE第二次有效時(shí): 從ROM的n+1單元取出指令的第二個(gè)字節(jié)OP2-2送入IR進(jìn)行譯碼, 并產(chǎn)生對(duì)應(yīng)的操作,最后在S6P2時(shí)完成本條指令的運(yùn)行。S1S2S6S5S4S3機(jī)器周期讀操作碼一讀操作碼二ALET震蕩周期

指令特點(diǎn):?jiǎn)巫止?jié),卻需要兩個(gè)機(jī)器周期運(yùn)行。如:INCDPTR

DPTR為兩個(gè)8位的寄存器,加1時(shí),必須分兩步完成: 第一步:DPL加1, 第二步:如果DPL加1有進(jìn)位,則還要對(duì)DPH加1.

(3)單字節(jié)雙周期指令的時(shí)序在指令周期的第一個(gè)ALE:

將ROM中的操作碼OP取出,經(jīng)IR譯碼后得知為單字節(jié)雙

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論