第二章 單片微型計(jì)算機(jī)概述_第1頁(yè)
第二章 單片微型計(jì)算機(jī)概述_第2頁(yè)
第二章 單片微型計(jì)算機(jī)概述_第3頁(yè)
第二章 單片微型計(jì)算機(jī)概述_第4頁(yè)
第二章 單片微型計(jì)算機(jī)概述_第5頁(yè)
已閱讀5頁(yè),還剩82頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

8051單片機(jī)是在一塊芯片中集成了CPU、存儲(chǔ)器(包括RAM和ROM)、定時(shí)器/計(jì)數(shù)器和多種功能的I/O線等一臺(tái)計(jì)算機(jī)的需要的基本功能部件。主要包括:一個(gè)8位CPU;一個(gè)片內(nèi)振蕩器及時(shí)鐘電路;128字節(jié)RAM;4KBROM;兩個(gè)16位定時(shí)/計(jì)數(shù)器;32條可編程的I/O線;一個(gè)可編程的全雙工串行口;具有五個(gè)中斷源、兩個(gè)中斷優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)。圖2-4是8051單片機(jī)的內(nèi)部結(jié)構(gòu)框圖。它包含了作為微型計(jì)算機(jī)所必需的基本功能部件,各功能部件通過片內(nèi)單一總線連成一個(gè)整體,集成在一塊芯片上。

2.18051單片機(jī)的結(jié)構(gòu)第二章MCS-51系列單片機(jī)硬件結(jié)構(gòu)與功能圖2-4MCS-51芯片內(nèi)部結(jié)構(gòu)框圖通道0驅(qū)動(dòng)器通道2驅(qū)動(dòng)器RAM地址鎖存器RAM通道0鎖存器通道2鎖存器ROM/EPROMB寄存器程序地址寄存器緩沖器PC遞增器程序計(jì)數(shù)器PCDPTR指針VCCGNDP1.0~P1.7堆棧指針SPACCTMP2PSW通道3鎖存器通道1鎖存器通道1驅(qū)動(dòng)器通道3驅(qū)動(dòng)器TMP1SCONTMODPCONTCONTL0TH1TH0TL1IESBUF(TX/RX)IP中斷、串行口和定時(shí)器邏輯振蕩器P3.0~P3.7RSTEAALEPSENXTAL2XTAL1ALU(+5V)指令寄存器定時(shí)和控制邏輯指令譯碼器P0.0~P0.7P2.0~P2.7返回本節(jié)2.18051單片機(jī)的結(jié)構(gòu)1.中央處理器(CPU)CPU是單片機(jī)內(nèi)部的核心部件,是一個(gè)8位二進(jìn)制數(shù)的中央處理單元,主要由運(yùn)算器、控制器和寄存器陣列構(gòu)成。2.18051單片機(jī)的結(jié)構(gòu)1)運(yùn)算器運(yùn)算器用來完成算術(shù)運(yùn)算、邏輯運(yùn)算、位變量處理和數(shù)據(jù)傳送等功能,它是8051內(nèi)部處理各種信息的主要部件。運(yùn)算器主要包括:算術(shù)邏輯單元(ALU)、累加器(ACC)、暫存寄存器(TMP1、TMP2)、寄存器B、程序狀態(tài)字寄存器(PSW)組成。2.18051單片機(jī)的結(jié)構(gòu)2.18051單片機(jī)的結(jié)構(gòu)(1)算術(shù)邏輯單元(ALU):8051中ALU由加法器和一個(gè)布爾處理器組成。主要是實(shí)現(xiàn)8位數(shù)據(jù)的加、減、乘、除算術(shù)運(yùn)算和與、或、異或、循環(huán)、求補(bǔ)等邏輯運(yùn)算;布爾處理器主用來處理位操作。它是以進(jìn)位標(biāo)志位C為累加器的,可執(zhí)行置位、復(fù)位、取反、等于1轉(zhuǎn)移、等于0轉(zhuǎn)移、等于1轉(zhuǎn)移且清0以及進(jìn)位標(biāo)志位與其他位尋址的位之間進(jìn)行數(shù)據(jù)傳送等位操作。也能使進(jìn)位標(biāo)志位與其他可位尋址的位之間進(jìn)行邏輯與、或操作。2.18051單片機(jī)的結(jié)構(gòu)(2)累加器(ACC):用來存放參與算術(shù)運(yùn)算和邏輯運(yùn)算的一個(gè)操作數(shù)或運(yùn)算的結(jié)果。在運(yùn)算時(shí)將一個(gè)操作數(shù)經(jīng)暫存器送至ALU,與另一個(gè)來自暫存器的操作數(shù)在ALU中進(jìn)行運(yùn)算,運(yùn)算后的結(jié)果又送回累加器A。8051單片機(jī)在結(jié)構(gòu)上是以累加器A為中心,大部分指令的執(zhí)行都要通過累加器A進(jìn)行。

2.18051單片機(jī)的結(jié)構(gòu)(3)暫存寄存器(TMP1、TMP2):用來存放參與算術(shù)運(yùn)算和邏輯運(yùn)算的另一個(gè)操作數(shù),它對(duì)用戶不開放。(4)寄存器B:

在乘、除運(yùn)算時(shí)用來存放一個(gè)操作數(shù),也用來存放運(yùn)算后的一部分結(jié)果,在不進(jìn)行乘、除運(yùn)算時(shí),可以作為通用的寄存器使用。2.18051單片機(jī)的結(jié)構(gòu)(5)狀態(tài)寄存器(PSW):

PSW是一個(gè)8位標(biāo)志寄存器,用來存放ALU操作結(jié)果特征和處理器狀態(tài)。這些特征和狀態(tài)可以作為控制程序轉(zhuǎn)移的條件,供程序查詢和校驗(yàn)。如表2-2所示。表2-2PSW各位定義表位編號(hào)PSW7PSW6PSW5PSW4PSW3PSW2PSW1PSW0位定義CYACF0RS1RS0OV—P位地址D7HD6HD5HD4HD3HD2HD1HD0H2.18051單片機(jī)的結(jié)構(gòu)①進(jìn)位標(biāo)志位CY:表示累加器A在加減運(yùn)算過程中其最高位A7有無進(jìn)位或借位。②輔助進(jìn)位標(biāo)志位AC:表示累加器A在加減運(yùn)算時(shí)低4位(A3)有無向高4位(A4)進(jìn)位或借位。③用戶標(biāo)志位F0:是用戶定義的一個(gè)狀態(tài)標(biāo)志位,根據(jù)需要可以用軟件來使它置位或清除。2.18051單片機(jī)的結(jié)構(gòu)④寄存器選擇位RS1、RS0:8051共有四組,每組八個(gè)工作寄存器R0~R7。編程時(shí)用于存放數(shù)據(jù)或地址。但每組工作寄存器在內(nèi)部RAM中的物理地址不同。RS1和RS0的四種狀態(tài)組合就是用來確定四組工作寄存器的實(shí)際物理地址的。RS1、RS0狀態(tài)與工作寄存器R0~R7的物理地址關(guān)系如表2-3所示。RS1RS0工作寄存器組號(hào)R0~R7的物理地址0

00

11

011012300H~07H08H~0FH10H~17H18H~1FH表2-3工作寄存器組R0~R7的物理地址2.18051單片機(jī)的結(jié)構(gòu)⑤溢出標(biāo)志位OV:當(dāng)執(zhí)行算術(shù)指令時(shí),由硬件自動(dòng)置位或清零,表示累加器A的溢出狀態(tài)。主要用來表示帶符號(hào)數(shù)加、減運(yùn)算溢出與否??捎秒p高位法進(jìn)行溢出判別。當(dāng)次高位D6向最高位D7有進(jìn)位,而最高位D7無進(jìn)位;或者當(dāng)次高位D6向最高位D7無進(jìn)位,而最高位D7有進(jìn)位,則表示發(fā)生溢出,OV=1;否則清零。 乘法和除法也會(huì)影響OV標(biāo)志。當(dāng)乘法的積>255時(shí),OV=1,表示積超過8位,否則OV=0。在除法運(yùn)算中,OV=1表示被除數(shù)為0,除法不能進(jìn)行;反之OV=0,除法可以正常進(jìn)行。

2.18051單片機(jī)的結(jié)構(gòu)⑥奇偶標(biāo)志位P:用于指示累加器A中1的個(gè)數(shù)的奇偶性,若1的個(gè)數(shù)為奇數(shù),則P=1;若1的個(gè)數(shù)為偶數(shù),則P=0。此標(biāo)志對(duì)串行通信的數(shù)據(jù)傳輸非常有用,通過奇偶校驗(yàn)傳輸?shù)目煽啃浴?/p>

2.18051單片機(jī)的結(jié)構(gòu)2)控制器控制器是單片機(jī)內(nèi)部按一定時(shí)序協(xié)調(diào)工作的控制核心,是分析和執(zhí)行指令的部件??刂破髦饕沙绦蛴?jì)數(shù)器PC、指令寄存器IR、指令譯碼器ID、振蕩和定時(shí)控制邏輯電路等構(gòu)成。2.18051單片機(jī)的結(jié)構(gòu)程序計(jì)數(shù)器PC是專門用于存放下一條將要執(zhí)行指令的16位地址,由8位計(jì)數(shù)器PCH(高8位)和PCL(低8位)組成。CPU就是根據(jù)PC中的地址到ROM中去讀取程序指令碼和數(shù)據(jù)。其基本的工作過程是:讀指令時(shí),程序計(jì)數(shù)器將其中的數(shù)作為所取指令的地址輸出給程序存儲(chǔ)器,然后程序存儲(chǔ)器按此地址輸出指令字節(jié),同時(shí)程序計(jì)數(shù)器本身自動(dòng)加1,讀完本條指令,PC指向下一條指令在程序存儲(chǔ)器中的地址。程序計(jì)數(shù)器的基本工作方式有以下:(1)程序計(jì)數(shù)器自動(dòng)加1,這是最基本的工作方式。(2)執(zhí)行有條件或無條件轉(zhuǎn)移指令時(shí),程序計(jì)數(shù)器將被植入新的數(shù)值,從而使程序的流向發(fā)生變化。2.18051單片機(jī)的結(jié)構(gòu)指令寄存器IR用于存放CPU根據(jù)PC地址從ROM中讀出的指令操作碼,并送給ID。指令譯碼器ID是用于分析指令操作的部件,指令操作碼經(jīng)譯碼后送至定時(shí)控制電路,產(chǎn)生一定序列的脈沖信號(hào),來執(zhí)行指令規(guī)定的操作。振蕩器及定時(shí)控制邏輯電路,在它們外接石英晶體和微調(diào)電容(2~30PF)后,即可產(chǎn)生1.2~12MHZ的脈沖信號(hào),作為MCS-51工作的基本節(jié)拍。2.18051單片機(jī)的結(jié)構(gòu)3)寄存器陣列寄存器陣列是單片機(jī)內(nèi)部的臨時(shí)存儲(chǔ)單元或固定用途單元,包括通用寄存器組和專用寄存器組。通用寄存器組用來存放過渡性的數(shù)據(jù)和地址,提高CPU的運(yùn)行速度。專用寄存器組主要用來指示當(dāng)前要執(zhí)行指令的內(nèi)存地址,存放特定的操作數(shù),指示指令運(yùn)行的狀態(tài)等。2.18051單片機(jī)的結(jié)構(gòu)2.存儲(chǔ)器8051單片機(jī)內(nèi)部有128個(gè)字節(jié)的RAM數(shù)據(jù)存儲(chǔ)器和4KB的程序存儲(chǔ)器,當(dāng)不夠使用時(shí),可分別擴(kuò)展為64KB外部RAM存儲(chǔ)器和64KB外部程序存儲(chǔ)器。程序存儲(chǔ)器是可讀不可寫的,用于存放編好的程序和表格常數(shù)。數(shù)據(jù)存儲(chǔ)器是既可讀也可寫的,用于存放運(yùn)算的中間結(jié)果,進(jìn)行數(shù)據(jù)暫存及數(shù)據(jù)緩沖等。2.18051單片機(jī)的結(jié)構(gòu)3.I/O端口

8051單片機(jī)對(duì)外部電路進(jìn)行控制或交換信息都是通過I/O端口進(jìn)行的。單片機(jī)的I/O端口分為并行I/O端口和串行I/O端口,它們的結(jié)構(gòu)和作用并不相同。

(1)并行I/O端口

8051有四個(gè)8位并行雙向I/O端口(P0口、P1口、P2口和P3口),每一條I/O線都能獨(dú)立地用作輸入或輸出。P0口為三態(tài)雙向口,能帶8個(gè)LSTTL電路。P1口、P2口和P3口為準(zhǔn)雙向口(在用作輸入線時(shí),口鎖存器必須先寫入“1”,故稱為準(zhǔn)雙向口),負(fù)載能力為4個(gè)LSTTL電路。

(2)串行I/O端口

8051有一個(gè)全雙工的可編程串行I/O端口,實(shí)現(xiàn)單片機(jī)與其它數(shù)據(jù)設(shè)備之間的串行數(shù)據(jù)傳遞。2.18051單片機(jī)的結(jié)構(gòu)4.定時(shí)器/計(jì)數(shù)器

8051內(nèi)部有兩個(gè)16位可編程定時(shí)器/計(jì)數(shù)器,簡(jiǎn)稱為定時(shí)器0(T0)和定時(shí)器1(T1),T0和T1分別由兩個(gè)8位寄存器構(gòu)成,其中T0由TH0(高8位)和TL0(低8位)構(gòu)成,T1由TH1(高8位)和TL1(低8位)構(gòu)成。TH0、TL0、TH1、TL1都是SFR中的特殊功能寄存器(見表2-4)。

T0和T1在定時(shí)器控制寄存器TCON和定時(shí)器方式選擇寄存器TMOD的控制下(TCON、TMOD為特殊功能寄存器),可選擇工作在定時(shí)器模式或計(jì)數(shù)器模式下,每種模式下又有不同的工作方式。2.18051單片機(jī)的結(jié)構(gòu)5.中斷控制系統(tǒng)單片機(jī)中的中斷是指CPU暫停正在執(zhí)行的原程序轉(zhuǎn)而為中斷源服務(wù)(執(zhí)行中斷服務(wù)程序),在執(zhí)行完中斷服務(wù)程序后再回到原程序繼續(xù)執(zhí)行。中斷系統(tǒng)是指能夠處理上述中斷過程所需要的部分電路。

MCS-51設(shè)有五個(gè)中斷源(外中斷兩個(gè),定時(shí)/計(jì)數(shù)中斷兩個(gè),串行中斷1個(gè)),二級(jí)優(yōu)先級(jí),可實(shí)現(xiàn)二級(jí)中斷嵌套。2.18051單片機(jī)的結(jié)構(gòu)

6.內(nèi)部總線總線是用于傳送信息的公共途徑。總線可分為數(shù)據(jù)總線、地址總線、控制總線。單片機(jī)內(nèi)的CPU、存儲(chǔ)器、I/O接口等單元部件都是通過總線連接到一起的。采用總線結(jié)構(gòu)可以減少信息傳輸線的根數(shù),提高系統(tǒng)可靠性,增強(qiáng)系統(tǒng)靈活性。地址總線AB(AddressBus):傳遞訪問對(duì)象的地址信息。

數(shù)據(jù)總線DB(DataBus):傳遞數(shù)據(jù)。控制總線CB(ControlBus):傳遞控制信息。2.28051單片機(jī)引腳

8051單片機(jī)內(nèi)部總線是單總線結(jié)構(gòu),即數(shù)據(jù)總線和地址總線是公用的。8051有40條引腳,與其他51系列單片機(jī)引腳是兼容的。這40條引腳可分為I/O端口線、電源線、控制線、外接晶體線四部分。其封裝形式有兩種:雙列直插封裝(DIP)形式和方形封裝形式,如圖2-5所示。2.28051單片機(jī)引腳

圖2-58051封裝和引腳分配圖(a)雙列直插式封裝;(b)方形封裝

MCS-51單片機(jī)的引腳配置圖P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1VSS12345678910111213141516171819208031805187514039383736353433323130292827262521222324VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0

返回本節(jié)2.28051單片機(jī)引腳P0.3地址鎖存器CBI/OA15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0DBABP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RESETP3.0P3.1P3.3P3.4P3.5P3.6P3.7VSSVCCP0.0P0.1P0.2P0.5P0.6P0.7EAALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P3.2MCS-51片外總線結(jié)構(gòu)示意圖下一頁(yè)圖2.2MCS-51系列單片機(jī)引腳及總線結(jié)構(gòu)2.28051單片機(jī)引腳1.電源線8051單片機(jī)的電源線有以下兩種:(1)VCC:+5V電源線。(2)VSS:接地線。2.外接晶體引腳8051單片機(jī)的外接晶體引腳有以下兩種:(1)XTAL1:片內(nèi)振蕩器反相放大器的輸入端和內(nèi)部時(shí)鐘工作的輸入端。采用內(nèi)部振蕩器時(shí),它接外部石英晶體和微調(diào)電容的一個(gè)引腳。(2)XTAL2:片內(nèi)振蕩器反相放大器的輸出端,接外部石英晶體和微調(diào)電容的另一端。采用外部振蕩器時(shí),該引腳懸空.2.28051單片機(jī)引腳3、控制線:8051單片機(jī)的控制線有以下幾種:(1)RST/VPD:RST是復(fù)位輸入端,高電平有效。當(dāng)單片機(jī)運(yùn)行時(shí),在次引腳加上持續(xù)時(shí)間大于兩個(gè)機(jī)器周期(24個(gè)時(shí)鐘振蕩周期)的高電平,就可以完成復(fù)位操作。

VPD為本引腳的第二功能,即備用電源的輸入端。當(dāng)主電源Vcc發(fā)生故障,降低到某一規(guī)定的低電平時(shí),將+5V的電源自動(dòng)接入RST端,為內(nèi)部RAM提供備用電源,以保證片內(nèi)RAM中的信息不丟失,使單片機(jī)在復(fù)位后能繼續(xù)運(yùn)行。2.28051單片機(jī)引腳3、控制線:(2)ALE/PROG:地址鎖存允許/編程線。ALE為地址鎖存允許信號(hào),當(dāng)單片機(jī)上電正常工作后,ALE引腳不斷輸出正脈沖信號(hào)。當(dāng)訪問單片機(jī)外部存儲(chǔ)器時(shí),ALE輸出信號(hào)的負(fù)跳沿用作8位地址的鎖存信號(hào),即使不訪問外部存儲(chǔ)器,ALE端仍有正脈沖信號(hào)輸出,該頻率為時(shí)鐘振蕩器頻率fOSC1/6.PROG指對(duì)片內(nèi)EPROM型單片機(jī)(例8751)編程寫入時(shí),此引腳作為編程脈沖輸入端。(3)PSEN:外部程序存儲(chǔ)器的讀選通線。在單片機(jī)訪問外部程序存儲(chǔ)器時(shí),此引腳輸出的負(fù)脈沖作為讀外部程序存儲(chǔ)器的選通信號(hào)。此腳接外部程序存儲(chǔ)器的OE(輸出允許)端。(4)EA/VPP:片外ROM允許訪問端/編程電源端。

2.28051單片機(jī)引腳4.I/O端口組成(32根I/O口線)及功能(1)P0口

P0口有八條端口線(P0.0~P0.7),其中P0.0為低位,P0.7為高位。每條線的結(jié)構(gòu)組成如圖2-6所示。它由一個(gè)輸出鎖存器,兩個(gè)三態(tài)緩沖器,輸出驅(qū)動(dòng)電路和輸出控制電路組成。P0口是一個(gè)三態(tài)雙向I/O口,它有兩種不同的功能,用于不同的工作環(huán)境。P0口位結(jié)構(gòu)圖見2-6.2.28051單片機(jī)引腳圖2-6P0口位結(jié)構(gòu)圖P0口的功能與驅(qū)動(dòng)能力P0口可以作為通用的I/O口;P0口可以作為單片機(jī)系統(tǒng)的地址/數(shù)據(jù)線使用;P0口可以驅(qū)動(dòng)8個(gè)標(biāo)準(zhǔn)的TTL負(fù)載電路。注意在P0口作為通用的I/O口時(shí),必須外接上拉電阻(如下圖)。2.28051單片機(jī)引腳(2)P1口

P1口有八條端口線(P1.0~P1.7),每條線的結(jié)構(gòu)組成如圖2-7所示。P1口是一個(gè)準(zhǔn)雙向口,只作普通的I/O口使用,其功能與P0口的第一功能相同。作輸出口使用時(shí),由于其內(nèi)部有上拉電阻,所以不需外接上拉電阻;作輸入口使用時(shí),必須先向鎖存器寫入“1”,使場(chǎng)效應(yīng)管T截止,然后才能讀取數(shù)據(jù)。2.28051單片機(jī)引腳圖2-7P1口位結(jié)構(gòu)圖

P1口電路中包含有一個(gè)數(shù)據(jù)輸出鎖存器、一個(gè)三態(tài)數(shù)據(jù)輸入緩沖器、一個(gè)數(shù)據(jù)輸出的驅(qū)動(dòng)電路。P1口的功能和驅(qū)動(dòng)能力P1口只可以作為通用的I/O口使用;P1可以驅(qū)動(dòng)4個(gè)標(biāo)準(zhǔn)的TTL負(fù)載電路;注意在P1口作為通用的I/O口使用時(shí),在從I/O端口讀入數(shù)據(jù)時(shí),應(yīng)該首先向相應(yīng)的I/O口內(nèi)部鎖存器寫“1”。舉例:從P1口的低四位輸入數(shù)據(jù)

MOVP1,#00001111b;;先給P1口低四位寫1MOVA,P1;;再讀P1口的低四位2.28051單片機(jī)引腳(3)P2口

P2口有八條端口線(P2.0~P2.7),每條線的結(jié)構(gòu)如圖2-8所示。P2口也是一個(gè)準(zhǔn)雙向口,它有兩種使用功能:一種是當(dāng)系統(tǒng)不擴(kuò)展外部存儲(chǔ)器時(shí),作普通I/O口使用,其功能和原理與P0口第一功能相同,只是作為輸出口時(shí)不需外接上拉電阻;另一種是當(dāng)系統(tǒng)外擴(kuò)存儲(chǔ)器時(shí),P2口作系統(tǒng)擴(kuò)展的地址總線口使用,輸出高8位的地址A7~A15,與P0口第二功能輸出的低8位地址相配合,共同訪問外部程序或數(shù)據(jù)存儲(chǔ)器(64KB),但它只確定地址并不能像P0口那樣還可以傳送存儲(chǔ)器的讀寫數(shù)據(jù)。2.28051單片機(jī)引腳圖2-8P2口位結(jié)構(gòu)圖2.28051單片機(jī)引腳(4)P3口P3口有八條端口線,命名為P3.0~P3.7,每條線的結(jié)構(gòu)如圖2-9所示。P3口是一個(gè)多用途的準(zhǔn)雙向口。第一功能是作普通I/O口使用,其功能和原理與P1口相同。第二功能是作控制和特殊功能口使用,這時(shí)八條端口線所定義的功能各不相同,如表2-4示。2.28051單片機(jī)引腳圖2-9P3口位結(jié)構(gòu)圖2.28051單片機(jī)引腳表2-4P3口各位的第二功能P3口各位第二功能P3.0RXD(串行數(shù)據(jù)接收)P3.1TXD(串行數(shù)據(jù)發(fā)送)P3.2INT0(外中斷0輸入)P3.3INT1(外中斷1輸入)P3.4T0(計(jì)數(shù)器0計(jì)數(shù)輸入)P3.5T1(計(jì)數(shù)器1計(jì)數(shù)輸入)P3.6WR(外RAM寫選通信號(hào))P3.7RD(外RAM讀選通信號(hào))單燈左移電路圖

2.38051單片機(jī)存儲(chǔ)器

8051存儲(chǔ)器可以分成兩大類:﹡

RAM,CPU在運(yùn)行時(shí)能隨時(shí)進(jìn)行數(shù)據(jù)的寫入和讀出,但在關(guān)閉電源時(shí),其所存儲(chǔ)的信息將丟失。它用來存放暫時(shí)性的輸入輸出數(shù)據(jù)、運(yùn)算的中間結(jié)果或用作堆棧。﹡ROM是一種寫入信息后不易改寫的存儲(chǔ)器。斷電后,ROM中的信息保留不變。用來存放固定的程序或數(shù)據(jù),如系統(tǒng)監(jiān)控程序、常數(shù)表格等。

1、普林斯頓結(jié)構(gòu)

一般微機(jī)通常只有一個(gè)邏輯空間,可以隨意安排ROM或RAM。當(dāng)訪問存儲(chǔ)器時(shí),同一地址對(duì)應(yīng)唯一的存儲(chǔ)單元,可以是ROM也可以是RAM,并用同類訪問指令。這種結(jié)構(gòu)稱為普林斯頓結(jié)構(gòu)。

2、哈佛結(jié)構(gòu)◆

8051單片機(jī)與一般微機(jī)的存儲(chǔ)器配置方式很不相同。

51單片機(jī)的存儲(chǔ)器在物理結(jié)構(gòu)上分為程序存儲(chǔ)空間和數(shù)據(jù)存儲(chǔ)空間,共有四個(gè):片內(nèi)和片外程序存儲(chǔ)空間以及片內(nèi)和片外數(shù)據(jù)存儲(chǔ)空間,這種在物理結(jié)構(gòu)上把程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開的結(jié)構(gòu)形式稱為哈佛結(jié)構(gòu)。2.38051單片機(jī)存儲(chǔ)器兩種結(jié)構(gòu)的區(qū)別2.38051單片機(jī)存儲(chǔ)器8051單片機(jī)存儲(chǔ)器結(jié)構(gòu)采用哈佛型結(jié)構(gòu),即將程序存儲(chǔ)器(ROM)和數(shù)據(jù)存儲(chǔ)器(RAM)分開,它們有各自獨(dú)立的存儲(chǔ)空間、尋址機(jī)構(gòu)和尋址方式。其典型結(jié)構(gòu)下圖所示。2.38051單片機(jī)存儲(chǔ)器圖2-108051存儲(chǔ)器結(jié)構(gòu)圖★8051在邏輯空間上,即從用戶角度上8051有三個(gè)存儲(chǔ)空間:

(1)片內(nèi)外統(tǒng)一編址(0000H—FFFFH)的程序存儲(chǔ)器,用16位地址尋址;(2)256B片內(nèi)數(shù)據(jù)存儲(chǔ)器地址空間,地址為:00H—FFH,8位地址尋址;(3)64KB的片外數(shù)據(jù)存儲(chǔ)器地址空間,地址從0000H—FFFFH,16位地址尋址。2.38051單片機(jī)存儲(chǔ)器2.38051單片機(jī)存儲(chǔ)器區(qū)分:

上述的3個(gè)存儲(chǔ)空間是重疊的,為了用戶能夠正確使用這3個(gè)邏輯空間,8051指令系統(tǒng)設(shè)計(jì)了不同的數(shù)據(jù)傳送指令符號(hào):

(1)CPU訪問片內(nèi)、片外程序存儲(chǔ)器時(shí),指令為MOVC:

例:MOVCA,@A+PC;(2)CPU訪問片內(nèi)數(shù)據(jù)存儲(chǔ)器時(shí),指令為MOV:例:MOVA,R1;(3)CPU訪問片外數(shù)據(jù)存儲(chǔ)器時(shí),指令為MOVX:

例:MOVXA,@DPTR;2.38051單片機(jī)存儲(chǔ)器3、8051程序存儲(chǔ)器空間

(1)8051、8031與8751的區(qū)別:

8051內(nèi)部有4KB的ROM,8031沒有ROM,8751片內(nèi)有4KB的EPROM。

8051有64KB程序存儲(chǔ)器尋址區(qū),其中0000H—0FFFH的4KB的地址空間可以為片內(nèi)和片外公用。區(qū)分:

8051提供了一條專用的控制引腳EA(第31腳)若EA=1,則8051使用片內(nèi)4KB的程序存儲(chǔ)器。若EA=0,則8051自動(dòng)使用片外ROM。不論EA接高電平還是低電平,當(dāng)訪問地址超過4KB時(shí),自動(dòng)轉(zhuǎn)到片外ROM.(2)程序的7個(gè)特殊入口地址表2.5MCS-51單片機(jī)復(fù)位、中斷入口地址操作入口地址復(fù)位0000H外部中斷00003H定時(shí)器/計(jì)數(shù)器0溢出000BH外部中斷10013H定時(shí)器/計(jì)數(shù)器1溢出001BH串行口中斷0023H定時(shí)器/計(jì)數(shù)器0溢出或T2EX端負(fù)跳變(52子系列)002BH2.38051單片機(jī)存儲(chǔ)器4、數(shù)據(jù)存儲(chǔ)器的地址空間(1)低128RAM區(qū)①工作寄存器區(qū):00H~1FH這32個(gè)單元為工作寄存器區(qū),分為四組,每組占八個(gè)RAM單元,地址由小到大分別用代號(hào)R0~R7表示。通過設(shè)置程序狀態(tài)字PSW中的RS1、RS0狀態(tài)來決定哪一組寄存器工作,如表2-5所示。②位尋址區(qū):20H~2FH這16個(gè)單元為位尋址區(qū)。它有雙重尋址功能,既可以進(jìn)行位尋址操作,也可以同普通RAM單元一樣按字節(jié)尋址操作。③普通RAM區(qū):30H~7FH這80個(gè)單元為普通RAM區(qū)。用于存放用戶數(shù)據(jù),只能按字節(jié)存取。堆棧:堆棧是片內(nèi)RAM存儲(chǔ)器中的特殊群體。表2-58051內(nèi)部RAM空間分配7FH堆棧和數(shù)據(jù)緩沖區(qū)……30H2FH7F7E7D7C7B7A7978位尋址區(qū)2EH77767574737271702DH6F6E6D6C6B6A69682CH67666564636261602BH5F5E5D5C5B5A59582AH575655545352515029H4F4E4D4C4B4A494828H474645444342414027H3F3E3D3C3B3A393826H373635343332313025H2F2E2D2C2B2A292824H272625242322212023H1F1E1D1C1B1A191822H171615141312111021H0F0E0D0C0B0A090820H07060504030201001FH3組(R0~R7)工作寄存器區(qū)……18H17H2組(R0~R7)……10H0FH1組(R0~R7)……08H07H0組(R0~R7)……00H位尋址——(P.48)指令中直接給出了操作數(shù)所在的位地址。例:CLRP1.0;(P1.0)←0SETBACC.7;(ACC.7)←1CPLC;(C)←NOT(C)注意:

1)位地址里的數(shù)據(jù)只可能是一個(gè)

0或12)有的位地址十分明確,如P1.0,ACC.7等,

有的位地址則“不太明確”,如:

[MOVA,17H;(A)←(17H),17H是字節(jié)地址]MOVACC.0,17H;(ACC.0)←(17H),這里ACC.0

是位地址所以該指令中的17H是22H單元的第7位2.38051單片機(jī)存儲(chǔ)器(2)專用寄存器區(qū):片內(nèi)80H~FFH這一區(qū)間,8051集合了一些特殊用途的寄存器,一般稱之為特殊功能寄存器SFR(SpecialFunctionRegister)。每個(gè)SFR占有一個(gè)RAM單元。它們離散地分布在80H~FFH地址范圍內(nèi),如表2-6所示。沒有被SFR占據(jù)的地址可能在片內(nèi)并不存在。對(duì)這些地址讀出時(shí),通常會(huì)得到隨機(jī)的數(shù)據(jù),而寫入時(shí)將會(huì)有不確定的效應(yīng),因此軟件設(shè)計(jì)時(shí)不要使用這些單元。特殊功能寄存器通常用寄存器尋址,但也可以用直接尋址方式進(jìn)行字節(jié)訪問。其中11個(gè)寄存器還可進(jìn)行位尋址(表2-4中帶*號(hào)的寄存器)操作,其位地址的分配如表2-7所示。表2-68051特殊功能寄存器SFR一覽表PSW表2-7SFR中的位地址分配寄存器符號(hào)位地址字節(jié)地址D7D6D5D4D3D2D1D0BF7F6F5F4F3F2F1F0F0HACCE7E6E5E4E3E2E1E0E0HPSWD7D6D5D4D3D2D1D0D0HIPBCBBBAB9B8B8HP3B7B6B5B4B3B2B1B0B0HIEAFACABAAA9A8A8HP2A7A6A5A4A3A2A1A0A0HSCON9F9E9D9C9B9A999898HP1979695949392919090HTCON8F8E8D8C8B8A898888HP0878685848382818080H片內(nèi)RAM高128單元:SFR(80H ~FFH)低128單元(00H~7FH)堆棧和數(shù)據(jù)緩沖區(qū)(30H~7FH)位尋址區(qū)(20H~2FH)通用寄存器區(qū)(00H~1FH)00H-7FH堆棧:

在片內(nèi)RAM中,常常要指定一個(gè)專門的區(qū)域來存放某些特別的數(shù)據(jù),它遵循順序存取和后進(jìn)先出(LIFO/FILO)的原則,這個(gè)RAM區(qū)叫堆棧。功用:1)子程序調(diào)用和中斷服務(wù)時(shí)CPU自動(dòng)將當(dāng)前PC

值壓棧保存,返回時(shí)自動(dòng)將PC值彈棧。2)保護(hù)現(xiàn)場(chǎng)/恢復(fù)現(xiàn)場(chǎng)3)數(shù)據(jù)傳輸00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)

SP棧頂下一個(gè)進(jìn)棧的數(shù)據(jù)將存在此數(shù)據(jù)進(jìn)棧已經(jīng)進(jìn)棧的數(shù)據(jù)存放在此初始SP復(fù)位后SP=07H,數(shù)據(jù)進(jìn)棧時(shí):首先SP+1指向08H單元,第一個(gè)放進(jìn)堆棧的數(shù)據(jù)將放進(jìn)08H單元,然后SP再自動(dòng)增1,仍指著棧頂……堆棧區(qū)由特殊功能寄存器堆棧指針SP管理堆棧區(qū)可以安排在RAM區(qū)任意位置,一般不安排在工作寄存器區(qū)和可按位尋址的RAM區(qū),通常放在RAM區(qū)的靠后的位置。從堆棧取出數(shù)據(jù)時(shí):取出的數(shù)據(jù)是最近放進(jìn)去的一個(gè)數(shù)據(jù),也就是當(dāng)前棧頂?shù)臄?shù)據(jù)。然后SP再自動(dòng)減1,仍指著棧頂……00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)

SP棧頂當(dāng)前要出棧的數(shù)據(jù)數(shù)據(jù)出棧SP-1指向下一個(gè)將要出棧的數(shù)據(jù)初始SP堆棧區(qū)由特殊功能寄存器堆棧指針SP管理堆棧區(qū)可以安排在RAM區(qū)任意位置,一般不安排在工作寄存器區(qū)和可按位尋址的RAM區(qū),通常放在RAM區(qū)的靠后的位置。從堆棧取出數(shù)據(jù)時(shí):取出的數(shù)據(jù)是最近放進(jìn)去的一個(gè)數(shù)據(jù),也就是當(dāng)前棧頂?shù)臄?shù)據(jù)。然后SP再自動(dòng)減1,仍指著棧頂……00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)SP-1指向新的棧頂,也就是下一個(gè)將要出棧的數(shù)據(jù)數(shù)據(jù)出棧初始SP堆棧區(qū)由特殊功能寄存器堆棧指針SP管理

堆棧區(qū)可以安排在RAM區(qū)任意位置,一般不安排在工作寄存器區(qū)和可按位尋址的RAM區(qū),通常放在RAM區(qū)的靠后的位置。

數(shù)據(jù)指針DPTR數(shù)據(jù)指針DPTR是唯一1個(gè)16位的可尋址的專用寄存器;由兩個(gè)8位寄存器DPH和DPL而成,其中DPH為DPTR的高8位,DPL為DPTR的低8位。它既可作為一個(gè)16位寄存器來使用,也可作為2個(gè)獨(dú)立的8位寄存器(DPH和DPL)來使用。DPTR主要是用來保存16位地址,當(dāng)對(duì)64kB外部數(shù)據(jù)存儲(chǔ)器尋址時(shí),可作為間址寄存器使用,此時(shí),使用如下兩條指令:

MOVX

A,

@DPTR

MOVX

@DPTR,

A例:MOVDPTR,#2000HMOVXA,@DPTR;將外RAM2000H單元內(nèi)容→A在訪問程序存儲(chǔ)器時(shí),DPTR可用來作基址寄存器,采用基址+變址尋址方式訪問程序存儲(chǔ)器,這條指令常用于讀取程序存儲(chǔ)器內(nèi)的表格數(shù)據(jù)。MOVCA,@A+DPTR ;訪問ROM指令2.48051單片機(jī)工作方式2.4.1復(fù)位方式單片機(jī)在開機(jī)時(shí)或在工作中因干擾而使程序失控或工作中程序處于某種死循環(huán)狀態(tài)等情況下都需要復(fù)位。復(fù)位的作用是使中央處理器CPU以及其他功能部件都恢復(fù)到一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。8051單片機(jī)的復(fù)位靠外部電路實(shí)現(xiàn),信號(hào)由RESET(RST)引腳輸入,高電平有效,在振蕩器工作時(shí),只要保持RST引腳高電平兩個(gè)機(jī)器周期,單片機(jī)即復(fù)位。復(fù)位后,PC程序計(jì)數(shù)器的內(nèi)容為0000H,其他特殊功能寄存器的復(fù)位狀態(tài)如表2-4所示。片內(nèi)RAM中內(nèi)容不變。復(fù)位電路一般有上電復(fù)位、手動(dòng)開關(guān)復(fù)位和自動(dòng)復(fù)位電路三種,如圖2-11所示。2.48051單片機(jī)工作方式圖2-11單片機(jī)復(fù)位電路圖實(shí)驗(yàn)中的復(fù)位電路及時(shí)鐘電路

MCS-51單片機(jī)各寄存器的復(fù)位狀態(tài)

00HTCON0000HPC

00HTMOD0×××0000BPCON0×000000BIE不定SBUF

××000000BIP00HSCON0FFHP0~P300HTH10000HDPTR00HTL107HSP00HTH000HPSW00HTL000HACC復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)寄存器2.48051單片機(jī)工作方式2.4.2程序執(zhí)行方式程序執(zhí)行方式可以分為單步操作和連續(xù)執(zhí)行兩種工作方式。1、單步操作方式。單步操作方式是使程序的執(zhí)行處于外加脈沖(通常由一個(gè)按鍵產(chǎn)生)的控制下,一條指令一條指令的執(zhí)行。單步操作方式特別適合于用戶程序的調(diào)試階段。單步操作方式是通過單片機(jī)的中斷控制系統(tǒng)來實(shí)現(xiàn)的。具體方法如下:將外加脈沖(按鍵)接到INT0引腳輸入,當(dāng)它被按下時(shí)相應(yīng)電路就產(chǎn)生一個(gè)負(fù)脈沖(即中斷請(qǐng)求信號(hào))送到單片機(jī)的INT0引腳。MCS-51單片機(jī)在INT0上負(fù)脈沖作用下,啟動(dòng)一次中斷處理過程,CPU執(zhí)行一條程序指令。2.程序連接執(zhí)行方式。程序執(zhí)行方式是單片機(jī)的基本工作方式。所執(zhí)行的程序?qū)懭氤绦虼鎯?chǔ)器后,接通單片機(jī)電源,此時(shí)單片機(jī)復(fù)位使(PC)=0000H,CPU將從程序的起始地址0000H單元開始,連續(xù)執(zhí)行事先存放在程序存儲(chǔ)器中的程序。2.48051單片機(jī)工作方式2.4.3省電方式8051系列單片機(jī)提供了兩種通過軟件編程來實(shí)現(xiàn)的省電運(yùn)行方式,即空閑方式和掉電方式。省電方式可以使單片機(jī)在供電困難的環(huán)境中功耗最小,僅在需要正常工作時(shí)才正常運(yùn)行。單片機(jī)正常工作時(shí)消耗10~20mA電流,空閑方式工作時(shí)消耗1.75mA電流,掉電方式工作時(shí)消耗5~50μA電流,可見在省電方式下單片機(jī)耗能很小。在空閑和掉電方式下,單片機(jī)內(nèi)部硬件控制電路如圖2-12所示。

2.48051單片機(jī)工作方式圖2-12空閑和掉電方式內(nèi)部電路圖2.48051單片機(jī)工作方式2.4.4EPROM編程和校驗(yàn)方式1.簽名字節(jié)的讀出簽名字節(jié)是生產(chǎn)廠家在生產(chǎn)MCS-51系列單片機(jī)時(shí)寫入到存儲(chǔ)器中的信息。信息內(nèi)容包括生產(chǎn)廠家、編程電壓和單片機(jī)型號(hào)。2.Flash存儲(chǔ)器編程方式這里的編程是指利用特殊手段將用戶編寫好的程序代碼寫入8051片內(nèi)4KB字節(jié)Flash存儲(chǔ)器的過程(89

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論