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

下載本文檔

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

文檔簡(jiǎn)介

1、單片微型計(jì)算機(jī)概述資料第二章第二章-單片微型計(jì)算機(jī)概述資料圖2-4 MCS-51芯片內(nèi)部結(jié)構(gòu)框圖通道通道0驅(qū)動(dòng)器驅(qū)動(dòng)器通道通道2驅(qū)動(dòng)器驅(qū)動(dòng)器RAM地址鎖地址鎖存器存器RAM通道通道0鎖存鎖存器器通 道通 道 2 鎖 存鎖 存器器ROM/EPROMB寄存器寄存器程序地址寄存器程序地址寄存器緩沖器緩沖器PC遞增器遞增器程序計(jì)數(shù)器程序計(jì)數(shù)器PCDPTR指針指針VCCGNDPP堆棧指針堆棧指針SPACCTMP2PSW通道通道3鎖存器鎖存器通道通道1鎖存器鎖存器通道通道1驅(qū)動(dòng)器驅(qū)動(dòng)器通道通道3驅(qū)動(dòng)器驅(qū)動(dòng)器TMP1SCONTMODPCONTCONTL0TH1TH0TL1IESBUF(TX/RX)IP中斷、

2、串行口和定時(shí)器邏輯中斷、串行口和定時(shí)器邏輯振蕩器振蕩器PPRSTEAALEPSENXTAL2XTAL1ALU(+5V)指指令令寄寄存存器器定時(shí)定時(shí)和和控制控制邏輯邏輯指指令令譯譯碼碼器器PPPP返回本節(jié)2.1 80512.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) 1.中央處理器中央處理器(CPU) CPU是單片機(jī)內(nèi)部的核心部件,是一個(gè)是單片機(jī)內(nèi)部的核心部件,是一個(gè)8位位二進(jìn)制數(shù)的中央處理單元,主要由運(yùn)算器、二進(jìn)制數(shù)的中央處理單元,主要由運(yùn)算器、控制器和寄存器陣列構(gòu)成控制器和寄存器陣列構(gòu)成。CPU運(yùn)算器運(yùn)算器控制器控制器寄存器寄存器陣列陣列2.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) 1)運(yùn)算器)運(yùn)算器

3、 運(yùn)算器用來完成算術(shù)運(yùn)算、邏輯運(yùn)算、位變運(yùn)算器用來完成算術(shù)運(yùn)算、邏輯運(yùn)算、位變量處理和數(shù)據(jù)傳送等功能,它是量處理和數(shù)據(jù)傳送等功能,它是8051內(nèi)部處內(nèi)部處理各種信息的主要部件。運(yùn)算器主要包括:理各種信息的主要部件。運(yùn)算器主要包括: 算術(shù)邏輯單元算術(shù)邏輯單元(ALU)、 累加器累加器(ACC)、 暫存寄存器暫存寄存器(TMP1、TMP2)、 寄存器寄存器B、 程序狀態(tài)字寄存器程序狀態(tài)字寄存器(PSW)組成。組成。 2.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu)運(yùn)算器算術(shù)邏算術(shù)邏輯單元輯單元(ALU)寄存器寄存器B 程序狀態(tài)程序狀態(tài)字寄存器字寄存器(PSW )暫存暫存寄存器寄存器(TMP1、TMP2)

4、累加器累加器(ACC) 2.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) (1)算術(shù)邏輯單元)算術(shù)邏輯單元(ALU): 8051中中ALU由加法器和一個(gè)布爾處理器組成。主要是由加法器和一個(gè)布爾處理器組成。主要是實(shí)現(xiàn)實(shí)現(xiàn)8位數(shù)據(jù)的加、減、乘、除算術(shù)運(yùn)算和與、或、位數(shù)據(jù)的加、減、乘、除算術(shù)運(yùn)算和與、或、異或、循環(huán)、求補(bǔ)等邏輯運(yùn)算;布爾處理器主用來處異或、循環(huán)、求補(bǔ)等邏輯運(yùn)算;布爾處理器主用來處理位操作。它是以進(jìn)位標(biāo)志位理位操作。它是以進(jìn)位標(biāo)志位C為累加器的,可執(zhí)行為累加器的,可執(zhí)行置位、復(fù)位、取反、等于置位、復(fù)位、取反、等于1轉(zhuǎn)移、等于轉(zhuǎn)移、等于0轉(zhuǎn)移、等于轉(zhuǎn)移、等于1轉(zhuǎn)移且清轉(zhuǎn)移且清0以及進(jìn)位標(biāo)志位與其

5、他位尋址的位之間進(jìn)以及進(jìn)位標(biāo)志位與其他位尋址的位之間進(jìn)行數(shù)據(jù)傳送等位操作。也能使進(jìn)位標(biāo)志位與其他可位行數(shù)據(jù)傳送等位操作。也能使進(jìn)位標(biāo)志位與其他可位尋址的位之間進(jìn)行邏輯與、或操作。尋址的位之間進(jìn)行邏輯與、或操作。 2.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) (2) 累加器累加器(ACC): 用來存放參與算術(shù)運(yùn)算和邏輯運(yùn)算的一個(gè)操作數(shù)或運(yùn)算用來存放參與算術(shù)運(yùn)算和邏輯運(yùn)算的一個(gè)操作數(shù)或運(yùn)算的結(jié)果。在運(yùn)算時(shí)將一個(gè)操作數(shù)經(jīng)暫存器送至的結(jié)果。在運(yùn)算時(shí)將一個(gè)操作數(shù)經(jīng)暫存器送至ALU,與,與另一個(gè)來自暫存器的操作數(shù)在另一個(gè)來自暫存器的操作數(shù)在ALU中進(jìn)行運(yùn)算,運(yùn)算后中進(jìn)行運(yùn)算,運(yùn)算后的結(jié)果又送回累加器的結(jié)果又送

6、回累加器A。8051單片機(jī)在結(jié)構(gòu)上是以累加單片機(jī)在結(jié)構(gòu)上是以累加器器A為中心,大部分指令的執(zhí)行都要通過累加器為中心,大部分指令的執(zhí)行都要通過累加器A進(jìn)行。進(jìn)行。 2.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) (3) 暫存寄存器暫存寄存器(TMP1、TMP2): 用來存放參與算術(shù)運(yùn)算和邏輯運(yùn)算的另一個(gè)用來存放參與算術(shù)運(yùn)算和邏輯運(yùn)算的另一個(gè)操作數(shù),它對(duì)用戶不開放。操作數(shù),它對(duì)用戶不開放。 (4)寄存器寄存器B: 在乘、除運(yùn)算時(shí)用來存放一個(gè)操作數(shù),也在乘、除運(yùn)算時(shí)用來存放一個(gè)操作數(shù),也用來存放運(yùn)算后的一部分結(jié)果,在不進(jìn)行乘、用來存放運(yùn)算后的一部分結(jié)果,在不進(jìn)行乘、除運(yùn)算時(shí),可以作為通用的寄存器使用。除運(yùn)

7、算時(shí),可以作為通用的寄存器使用。2.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) (5)狀態(tài)寄存器狀態(tài)寄存器(PSW): PSW是一個(gè)是一個(gè)8位標(biāo)志寄存器,用來存放位標(biāo)志寄存器,用來存放ALU操作結(jié)果特操作結(jié)果特征和處理器狀態(tài)。這些特征和狀態(tài)可以作為控制程序轉(zhuǎn)移的征和處理器狀態(tài)。這些特征和狀態(tài)可以作為控制程序轉(zhuǎn)移的條件,供程序查詢和校驗(yàn)。如表?xiàng)l件,供程序查詢和校驗(yàn)。如表2-2所示。所示。表表2-2 PSW各位定義表各位定義表位編號(hào)位編號(hào)PSW7PSW6PSW5PSW4PSW3PSW2PSW1PSW0位定義位定義CYACF0RS1RS0OVP位地址位地址D7HD6HD5HD4HD3HD2HD1HD0H2

8、.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) 進(jìn)位標(biāo)志位進(jìn)位標(biāo)志位CY: 表示累加器表示累加器A在加減運(yùn)算過程中其最高位在加減運(yùn)算過程中其最高位A7有無進(jìn)位或借位。有無進(jìn)位或借位。 輔助進(jìn)位標(biāo)志位輔助進(jìn)位標(biāo)志位AC: 表示累加器表示累加器A在加減運(yùn)算時(shí)低在加減運(yùn)算時(shí)低4位位(A3)有無向有無向高高4位位(A4)進(jìn)位或借位。進(jìn)位或借位。 用戶標(biāo)志位用戶標(biāo)志位F0: 是用戶定義的一個(gè)狀態(tài)標(biāo)志位,根據(jù)需要可是用戶定義的一個(gè)狀態(tài)標(biāo)志位,根據(jù)需要可以用軟件來使它置位或清除。以用軟件來使它置位或清除。2.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) 寄存器選擇位寄存器選擇位RS1、RS0:8051共有四組,每組八個(gè)工作

9、寄存器共有四組,每組八個(gè)工作寄存器R0R7。編程時(shí)用于存放數(shù)據(jù)。編程時(shí)用于存放數(shù)據(jù)或地址。但每組工作寄存器在內(nèi)部或地址。但每組工作寄存器在內(nèi)部RAM中的物理地址不同。中的物理地址不同。RS1和和RS0的四種狀態(tài)組合就是用來確定四組工作寄存器的實(shí)際物理地址的四種狀態(tài)組合就是用來確定四組工作寄存器的實(shí)際物理地址的。的。RS1、RS0狀態(tài)與工作寄存器狀態(tài)與工作寄存器R0R7的物理地址關(guān)系如表的物理地址關(guān)系如表2-3所所示。示。RS1 RS0工作寄存器工作寄存器組號(hào)組號(hào)R0R7的的物理地址物理地址0 00 11 01 1012300H07H08H0FH10H17H18H1FH表表2-3 工作寄存器組工

10、作寄存器組R0R7的物理地址的物理地址2.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) 溢出標(biāo)志位溢出標(biāo)志位OV: 當(dāng)執(zhí)行算術(shù)指令時(shí),由硬件自動(dòng)置位或清零,表示累當(dāng)執(zhí)行算術(shù)指令時(shí),由硬件自動(dòng)置位或清零,表示累加器加器A的溢出狀態(tài)。主要用來表示帶符號(hào)數(shù)加、減運(yùn)的溢出狀態(tài)。主要用來表示帶符號(hào)數(shù)加、減運(yùn)算溢出與否。可用雙高位法進(jìn)行溢出判別。當(dāng)次高位算溢出與否。可用雙高位法進(jìn)行溢出判別。當(dāng)次高位D6向最高位向最高位D7有進(jìn)位,而最高位有進(jìn)位,而最高位D7無進(jìn)位;或者當(dāng)無進(jìn)位;或者當(dāng)次高位次高位D6向最高位向最高位D7無進(jìn)位,而最高位無進(jìn)位,而最高位D7有進(jìn)位,有進(jìn)位,則表示發(fā)生溢出,則表示發(fā)生溢出,OV=1;

11、否則清零。;否則清零。 乘法和除法也會(huì)影響乘法和除法也會(huì)影響OV標(biāo)志。當(dāng)乘法的積標(biāo)志。當(dāng)乘法的積255時(shí),時(shí),OV=1,表示積超過,表示積超過8位,否則位,否則OV=0。在除法運(yùn)算中,。在除法運(yùn)算中,OV=1表示被除數(shù)為表示被除數(shù)為0,除法不能進(jìn)行;反之,除法不能進(jìn)行;反之OV=0,除法可以正常進(jìn)行。除法可以正常進(jìn)行。 2.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) 奇偶標(biāo)志位奇偶標(biāo)志位P: 用于指示累加器用于指示累加器A中中1的個(gè)數(shù)的奇偶性,的個(gè)數(shù)的奇偶性,若若1的個(gè)數(shù)為奇數(shù),則的個(gè)數(shù)為奇數(shù),則P=1;若;若1的個(gè)數(shù)為的個(gè)數(shù)為偶數(shù),則偶數(shù),則P=0。此標(biāo)志對(duì)串行通信的數(shù)據(jù)。此標(biāo)志對(duì)串行通信的數(shù)據(jù)傳

12、輸非常有用,通過奇偶校驗(yàn)傳輸?shù)目蓚鬏敺浅S杏?,通過奇偶校驗(yàn)傳輸?shù)目煽啃浴?啃浴?2.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) 2)控制器)控制器 控制器是單片機(jī)內(nèi)部按一定時(shí)序協(xié)調(diào)工作的控制核心,控制器是單片機(jī)內(nèi)部按一定時(shí)序協(xié)調(diào)工作的控制核心,是分析和執(zhí)行指令的部件。控制器主要由程序計(jì)數(shù)是分析和執(zhí)行指令的部件??刂破髦饕沙绦蛴?jì)數(shù)器器PC、指令寄存器、指令寄存器IR、指令譯碼器、指令譯碼器ID、振蕩和定時(shí)、振蕩和定時(shí)控制邏輯電路等構(gòu)成??刂七壿嬰娐返葮?gòu)成。控制器控制器程序計(jì)數(shù)器程序計(jì)數(shù)器PC振蕩和振蕩和定時(shí)電路定時(shí)電路指令譯碼器指令譯碼器ID指令寄存器指令寄存器IR2.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)

13、的結(jié)構(gòu)程序計(jì)數(shù)器程序計(jì)數(shù)器PC是專門用于存放下一條將要執(zhí)行指令的是專門用于存放下一條將要執(zhí)行指令的16位地址,由位地址,由8位計(jì)數(shù)器位計(jì)數(shù)器PCH(高(高8位)和位)和PCL(低(低8位)組成。位)組成。CPU就是根據(jù)就是根據(jù)PC中的地址到中的地址到ROM中去讀取程序指令碼和數(shù)據(jù)。其基本的工作過程是:中去讀取程序指令碼和數(shù)據(jù)。其基本的工作過程是:讀指令時(shí),程序計(jì)數(shù)器將其中的數(shù)作為所取指令的地址輸出給程序讀指令時(shí),程序計(jì)數(shù)器將其中的數(shù)作為所取指令的地址輸出給程序存儲(chǔ)器,然后程序存儲(chǔ)器按此地址輸出指令字節(jié),同時(shí)程序計(jì)數(shù)器存儲(chǔ)器,然后程序存儲(chǔ)器按此地址輸出指令字節(jié),同時(shí)程序計(jì)數(shù)器本身自動(dòng)加本身自動(dòng)加

14、1,讀完本條指令,讀完本條指令,PC指向下一條指令在程序存儲(chǔ)器中指向下一條指令在程序存儲(chǔ)器中的地址。的地址。 程序計(jì)數(shù)器的基本工作方式有以下:程序計(jì)數(shù)器的基本工作方式有以下: (1)程序計(jì)數(shù)器自動(dòng)加)程序計(jì)數(shù)器自動(dòng)加1,這是最基本的工作方式。,這是最基本的工作方式。 (2)執(zhí)行有條件或無條件轉(zhuǎn)移指令時(shí),程序計(jì)數(shù)器將被植入新的數(shù))執(zhí)行有條件或無條件轉(zhuǎn)移指令時(shí),程序計(jì)數(shù)器將被植入新的數(shù)值,從而使程序的流向發(fā)生變化。值,從而使程序的流向發(fā)生變化。2.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) 指令寄存器指令寄存器IR用于存放用于存放CPU根據(jù)根據(jù)PC地址從地址從ROM中讀中讀出的指令操作碼,并送給出的指令

15、操作碼,并送給ID。 指令譯碼器指令譯碼器ID是用于分析指令操作的部件,指令操作碼經(jīng)譯是用于分析指令操作的部件,指令操作碼經(jīng)譯碼后送至定時(shí)控制電路,產(chǎn)生一定序列的脈沖信號(hào),來執(zhí)行碼后送至定時(shí)控制電路,產(chǎn)生一定序列的脈沖信號(hào),來執(zhí)行指令規(guī)定的操作。指令規(guī)定的操作。 振蕩器及定時(shí)控制邏輯電路,在它們外接石英晶體和微調(diào)振蕩器及定時(shí)控制邏輯電路,在它們外接石英晶體和微調(diào)電容(電容(230PF)后,即可產(chǎn)生)后,即可產(chǎn)生1.212MHZ的脈沖信號(hào),的脈沖信號(hào),作為作為MCS-51工作的基本節(jié)拍。工作的基本節(jié)拍。2.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) 3)寄存器陣列)寄存器陣列 寄存器陣列是單片機(jī)內(nèi)部的

16、臨時(shí)存儲(chǔ)單元或固定用途寄存器陣列是單片機(jī)內(nèi)部的臨時(shí)存儲(chǔ)單元或固定用途單元,包括通用寄存器組和專用寄存器組。單元,包括通用寄存器組和專用寄存器組。 通用寄存器組用來存放過渡性的數(shù)據(jù)和地址,提高通用寄存器組用來存放過渡性的數(shù)據(jù)和地址,提高CPU的的運(yùn)行速度。專用寄存器組主要用來指示當(dāng)前要執(zhí)行指令的運(yùn)行速度。專用寄存器組主要用來指示當(dāng)前要執(zhí)行指令的內(nèi)存地址,存放特定的操作數(shù),指示指令運(yùn)行的狀態(tài)等。內(nèi)存地址,存放特定的操作數(shù),指示指令運(yùn)行的狀態(tài)等。 2.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) 2存儲(chǔ)器存儲(chǔ)器 8051單片機(jī)內(nèi)部有單片機(jī)內(nèi)部有128個(gè)字節(jié)的個(gè)字節(jié)的RAM數(shù)據(jù)存數(shù)據(jù)存儲(chǔ)器和儲(chǔ)器和4KB的程序

17、存儲(chǔ)器,當(dāng)不夠使用時(shí),的程序存儲(chǔ)器,當(dāng)不夠使用時(shí),可分別擴(kuò)展為可分別擴(kuò)展為64 KB外部外部RAM存儲(chǔ)器和存儲(chǔ)器和64 KB外部程序存儲(chǔ)器。外部程序存儲(chǔ)器。 程序存儲(chǔ)器是可讀不可寫的,用于存放編好程序存儲(chǔ)器是可讀不可寫的,用于存放編好的程序和表格常數(shù)。的程序和表格常數(shù)。 數(shù)據(jù)存儲(chǔ)器是既可讀也可寫的,用于存放運(yùn)數(shù)據(jù)存儲(chǔ)器是既可讀也可寫的,用于存放運(yùn)算的中間結(jié)果,進(jìn)行數(shù)據(jù)暫存及數(shù)據(jù)緩沖等。算的中間結(jié)果,進(jìn)行數(shù)據(jù)暫存及數(shù)據(jù)緩沖等。2.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) 3I/O端口端口 8051單片機(jī)對(duì)外部電路進(jìn)行控制或交換信息都是通過單片機(jī)對(duì)外部電路進(jìn)行控制或交換信息都是通過I/O端口端口進(jìn)行的

18、。單片機(jī)的進(jìn)行的。單片機(jī)的I/O端口分為并行端口分為并行I/O端口和串行端口和串行I/O端口,端口,它們的結(jié)構(gòu)和作用并不相同。它們的結(jié)構(gòu)和作用并不相同。 (1)并行并行I/O端口端口 8051有四個(gè)有四個(gè)8位并行雙向位并行雙向I/O端口(端口(P0口、口、P1口、口、P2口和口和P3口),每一條口),每一條I/O線都能獨(dú)立地用作輸入或輸出。線都能獨(dú)立地用作輸入或輸出。P0口為三態(tài)口為三態(tài)雙向口,能帶雙向口,能帶8個(gè)個(gè)LSTTL電路。電路。P1口、口、P2口和口和P3口為準(zhǔn)雙向口為準(zhǔn)雙向口(在用作輸入線時(shí),口鎖存器必須先寫入口(在用作輸入線時(shí),口鎖存器必須先寫入“1”,故稱為準(zhǔn),故稱為準(zhǔn)雙向口)

19、,負(fù)載能力為雙向口),負(fù)載能力為4個(gè)個(gè)LSTTL電路。電路。 (2)串行串行I/O端口端口 8051有一個(gè)全雙工的可編程串行有一個(gè)全雙工的可編程串行I/O端口,實(shí)現(xiàn)單片機(jī)與其它端口,實(shí)現(xiàn)單片機(jī)與其它數(shù)據(jù)設(shè)備之間的串行數(shù)據(jù)傳遞。數(shù)據(jù)設(shè)備之間的串行數(shù)據(jù)傳遞。2.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) 4定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 8051內(nèi)部有兩個(gè)內(nèi)部有兩個(gè)16位可編程定時(shí)器位可編程定時(shí)器/計(jì)數(shù)器,簡(jiǎn)稱為定計(jì)數(shù)器,簡(jiǎn)稱為定時(shí)器時(shí)器0(T0)和定時(shí)器)和定時(shí)器1(T1),),T0和和T1分別由兩個(gè)分別由兩個(gè)8位位寄存器構(gòu)成,其中寄存器構(gòu)成,其中T0由由TH0(高高8位位)和和TL0(低低8位位)構(gòu)成,

20、構(gòu)成,T1由由TH1(高高8位位)和和TL1(低低8位位)構(gòu)成。構(gòu)成。TH0、TL0、TH1、TL1都是都是SFR中的特殊功能寄存器中的特殊功能寄存器(見表見表2-4)。 T0和和T1在定時(shí)器控制寄存器在定時(shí)器控制寄存器TCON和定時(shí)器方式選擇寄存和定時(shí)器方式選擇寄存器器TMOD的控制下的控制下(TCON、TMOD為特殊功能寄存器為特殊功能寄存器),可,可選擇工作在定時(shí)器模式或計(jì)數(shù)器模式下,每種模式下又有不選擇工作在定時(shí)器模式或計(jì)數(shù)器模式下,每種模式下又有不同的工作方式。同的工作方式。2.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) 5中斷控制系統(tǒng)中斷控制系統(tǒng) 單片機(jī)中的中斷是指單片機(jī)中的中斷是指CP

21、U暫停正在執(zhí)行的原程序暫停正在執(zhí)行的原程序轉(zhuǎn)而為中斷源服務(wù)轉(zhuǎn)而為中斷源服務(wù)(執(zhí)行中斷服務(wù)程序執(zhí)行中斷服務(wù)程序),在執(zhí)行完中,在執(zhí)行完中斷服務(wù)程序后再回到原程序繼續(xù)執(zhí)行。中斷系統(tǒng)是指斷服務(wù)程序后再回到原程序繼續(xù)執(zhí)行。中斷系統(tǒng)是指能夠處理上述中斷過程所需要的部分電路。能夠處理上述中斷過程所需要的部分電路。 MCS-51設(shè)有五個(gè)中斷源(外中斷兩個(gè),定時(shí)設(shè)有五個(gè)中斷源(外中斷兩個(gè),定時(shí)/計(jì)計(jì)數(shù)中斷兩個(gè),串行中斷數(shù)中斷兩個(gè),串行中斷1個(gè))個(gè)) ,二級(jí)優(yōu)先級(jí),可實(shí)現(xiàn),二級(jí)優(yōu)先級(jí),可實(shí)現(xiàn)二級(jí)中斷嵌套。二級(jí)中斷嵌套。2.1 8051單片機(jī)的結(jié)構(gòu)單片機(jī)的結(jié)構(gòu) 6內(nèi)部總線內(nèi)部總線 總線是用于傳送信息的公共途徑???/p>

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

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

24、8051封裝和引腳分配圖封裝和引腳分配圖(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.7

25、EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0 返回本節(jié)2.2 8051單片機(jī)引腳單片機(jī)引腳P0.3地址鎖存器CBI/OA15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0DBABP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RESETP3.0P3.1P3.3P3.4P3.5P3.6P3.7VSSVCC P0.0P0.1P0.2P0.5P0.6P0.7EAALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P3.2MCS-51片外總線結(jié)構(gòu)示意

26、圖 下一頁(yè)圖2.2 MCS-51系列單片機(jī)引腳及總線結(jié)構(gòu)2.2 8051單片機(jī)引腳單片機(jī)引腳1電源線電源線8051單片機(jī)的電源線有以下兩種:?jiǎn)纹瑱C(jī)的電源線有以下兩種: (1) VCC:+5 V電源線。電源線。 (2) VSS:接地線。:接地線。2外接晶體引腳外接晶體引腳8051單片機(jī)的外接晶體引腳有以下兩種:?jiǎn)纹瑱C(jī)的外接晶體引腳有以下兩種:(1) XTAL1:片內(nèi)振蕩器反相放大器的輸入端和內(nèi)部時(shí)鐘工作的輸入端。:片內(nèi)振蕩器反相放大器的輸入端和內(nèi)部時(shí)鐘工作的輸入端。采用內(nèi)部振蕩器時(shí),它接外部石英晶體和微調(diào)電容的一個(gè)引腳。采用內(nèi)部振蕩器時(shí),它接外部石英晶體和微調(diào)電容的一個(gè)引腳。 (2) XTAL2

27、:片內(nèi)振蕩器反相放大器的輸出端,接外部石英晶體和:片內(nèi)振蕩器反相放大器的輸出端,接外部石英晶體和微調(diào)電容的另一端。采用外部振蕩器時(shí),該引腳懸空微調(diào)電容的另一端。采用外部振蕩器時(shí),該引腳懸空. 2.2 8051單片機(jī)引腳單片機(jī)引腳 3、控制線:、控制線: 8051單片機(jī)的控制線有以下幾種:?jiǎn)纹瑱C(jī)的控制線有以下幾種: (1) RST/VPD:RST是復(fù)位輸入端,高電平有效。當(dāng)單片是復(fù)位輸入端,高電平有效。當(dāng)單片機(jī)運(yùn)行時(shí),在次引腳加上持續(xù)時(shí)間大于兩個(gè)機(jī)器周期機(jī)運(yùn)行時(shí),在次引腳加上持續(xù)時(shí)間大于兩個(gè)機(jī)器周期(24個(gè)時(shí)鐘振蕩周期)的高電平,就可以完成復(fù)位操作。個(gè)時(shí)鐘振蕩周期)的高電平,就可以完成復(fù)位操作。

28、 VPD為本引腳的第二功能,即備用電源的輸入端。當(dāng)主為本引腳的第二功能,即備用電源的輸入端。當(dāng)主電源電源Vcc發(fā)生故障,降低到某一規(guī)定的低電平時(shí),將發(fā)生故障,降低到某一規(guī)定的低電平時(shí),將+5V的電源自動(dòng)接入的電源自動(dòng)接入RST端,為內(nèi)部端,為內(nèi)部RAM提供備用電源,提供備用電源,以保證片內(nèi)以保證片內(nèi)RAM中的信息不丟失,使單片機(jī)在復(fù)位后中的信息不丟失,使單片機(jī)在復(fù)位后能繼續(xù)運(yùn)行。能繼續(xù)運(yùn)行。2.2 8051單片機(jī)引腳單片機(jī)引腳 3、控制線:、控制線: (2)ALE/PROG:地址鎖存允許:地址鎖存允許/編程線。編程線。ALE為地址鎖存為地址鎖存允許信號(hào),當(dāng)單片機(jī)上電正常工作后,允許信號(hào),當(dāng)單片

29、機(jī)上電正常工作后,ALE引腳不斷輸出引腳不斷輸出正脈沖信號(hào)。當(dāng)訪問單片機(jī)外部存儲(chǔ)器時(shí),正脈沖信號(hào)。當(dāng)訪問單片機(jī)外部存儲(chǔ)器時(shí),ALE輸出信號(hào)輸出信號(hào)的負(fù)跳沿用作的負(fù)跳沿用作8位地址的鎖存信號(hào),即使不訪問外部存儲(chǔ)位地址的鎖存信號(hào),即使不訪問外部存儲(chǔ)器,器,ALE端仍有正脈沖信號(hào)輸出,該頻率為時(shí)鐘振蕩器頻端仍有正脈沖信號(hào)輸出,該頻率為時(shí)鐘振蕩器頻率率fOSC1/6. PROG指對(duì)片內(nèi)指對(duì)片內(nèi)EPROM型單片機(jī)(例型單片機(jī)(例8751)編程寫入)編程寫入時(shí),此引腳作為編程脈沖輸入端。時(shí),此引腳作為編程脈沖輸入端。 (3)PSEN:外部程序存儲(chǔ)器的讀選通線。在單片機(jī)訪:外部程序存儲(chǔ)器的讀選通線。在單片機(jī)

30、訪問外部程序存儲(chǔ)器時(shí),此引腳輸出的負(fù)脈沖作為讀外問外部程序存儲(chǔ)器時(shí),此引腳輸出的負(fù)脈沖作為讀外部程序存儲(chǔ)器的選通信號(hào)。此腳接外部程序存儲(chǔ)器的部程序存儲(chǔ)器的選通信號(hào)。此腳接外部程序存儲(chǔ)器的OE(輸出允許)端。(輸出允許)端。 (4)EA/VPP:片外:片外ROM允許訪問端允許訪問端/編程電源端。編程電源端。 2.2 8051單片機(jī)引腳單片機(jī)引腳 4I/O端口組成(端口組成(32根根I/O口線)及功能口線)及功能 (1)P0口口 P0口有八條端口線(),其中為低位,口有八條端口線(),其中為低位,為高位。每條線的結(jié)構(gòu)組成如圖為高位。每條線的結(jié)構(gòu)組成如圖2-6所示。所示。它由一個(gè)輸出鎖存器,兩個(gè)三態(tài)

31、緩沖器,它由一個(gè)輸出鎖存器,兩個(gè)三態(tài)緩沖器,輸出驅(qū)動(dòng)電路和輸出控制電路組成。輸出驅(qū)動(dòng)電路和輸出控制電路組成。P0口口是一個(gè)三態(tài)雙向是一個(gè)三態(tài)雙向I/O口,它有兩種不同的功口,它有兩種不同的功能,用于不同的工作環(huán)境。能,用于不同的工作環(huán)境。P0口位結(jié)構(gòu)圖口位結(jié)構(gòu)圖見見2-6.2.2 8051單片機(jī)引腳單片機(jī)引腳圖圖2-6 P0口位結(jié)構(gòu)圖口位結(jié)構(gòu)圖P0口的功能與驅(qū)動(dòng)能力口的功能與驅(qū)動(dòng)能力P0口可以作為通用的口可以作為通用的I/O口;口;P0口可以作為單片機(jī)系統(tǒng)的地址口可以作為單片機(jī)系統(tǒng)的地址/數(shù)據(jù)線使用;數(shù)據(jù)線使用;P0口可以驅(qū)動(dòng)口可以驅(qū)動(dòng)8個(gè)標(biāo)準(zhǔn)的個(gè)標(biāo)準(zhǔn)的TTL負(fù)載電路。負(fù)載電路。v注意在注意在

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

33、,使場(chǎng)效應(yīng)管T截止,然后才能讀取數(shù)截止,然后才能讀取數(shù)據(jù)。據(jù)。2.2 8051單片機(jī)引腳單片機(jī)引腳圖2-7 P1口位結(jié)構(gòu)圖 P1P1口電路中包含有一個(gè)數(shù)據(jù)輸出鎖存器、一個(gè)三態(tài)數(shù)據(jù)輸入緩沖器、口電路中包含有一個(gè)數(shù)據(jù)輸出鎖存器、一個(gè)三態(tài)數(shù)據(jù)輸入緩沖器、一個(gè)數(shù)據(jù)輸出的驅(qū)動(dòng)電路。一個(gè)數(shù)據(jù)輸出的驅(qū)動(dòng)電路。P1P1口的功能和口的功能和驅(qū)動(dòng)能力驅(qū)動(dòng)能力P1P1口只可以作為通用的口只可以作為通用的I/OI/O口使用;口使用;P1可以驅(qū)動(dòng)可以驅(qū)動(dòng)4個(gè)標(biāo)準(zhǔn)的個(gè)標(biāo)準(zhǔn)的TTL負(fù)載電路;負(fù)載電路;v注意在注意在P1P1口作為通用的口作為通用的I/OI/O口使用時(shí),在從口使用時(shí),在從I/OI/O端口讀入數(shù)據(jù)端口讀入數(shù)據(jù)時(shí)

34、,應(yīng)該首先向相應(yīng)的時(shí),應(yīng)該首先向相應(yīng)的I/OI/O口內(nèi)部鎖存器寫口內(nèi)部鎖存器寫“1”1”。v舉例:從舉例:從P1P1口的低四位輸入數(shù)據(jù)口的低四位輸入數(shù)據(jù)v MOV P1,#00001111b ;MOV P1,#00001111b ;先給先給P1P1口低四位寫口低四位寫1 1v MOV A,P1 ; MOV A,P1 ;再讀再讀P1P1口的低四位口的低四位2.2 8051單片機(jī)引腳單片機(jī)引腳 (3)P2口口 P2口有八條端口線(),每條線的結(jié)構(gòu)如圖口有八條端口線(),每條線的結(jié)構(gòu)如圖2-8所示。所示。P2口也是一個(gè)準(zhǔn)雙向口,它有兩種使用功能:一種是當(dāng)口也是一個(gè)準(zhǔn)雙向口,它有兩種使用功能:一種是當(dāng)

35、系統(tǒng)不擴(kuò)展外部存儲(chǔ)器時(shí),作普通系統(tǒng)不擴(kuò)展外部存儲(chǔ)器時(shí),作普通I/O口使用,其功能和口使用,其功能和原理與原理與P0口第一功能相同,只是作為輸出口時(shí)不需外接口第一功能相同,只是作為輸出口時(shí)不需外接上拉電阻;另一種是當(dāng)系統(tǒng)外擴(kuò)存儲(chǔ)器時(shí),上拉電阻;另一種是當(dāng)系統(tǒng)外擴(kuò)存儲(chǔ)器時(shí),P2口作系統(tǒng)口作系統(tǒng)擴(kuò)展的地址總線口使用,輸出高擴(kuò)展的地址總線口使用,輸出高8位的地址位的地址A7A15,與,與P0口第二功能輸出的低口第二功能輸出的低8位地址相配合,共同訪問外部程位地址相配合,共同訪問外部程序或數(shù)據(jù)存儲(chǔ)器序或數(shù)據(jù)存儲(chǔ)器(64 KB),但它只確定地址并不能像,但它只確定地址并不能像P0口口那樣還可以傳送存儲(chǔ)器的

36、讀寫數(shù)據(jù)。那樣還可以傳送存儲(chǔ)器的讀寫數(shù)據(jù)。2.2 8051單片機(jī)引腳單片機(jī)引腳圖2-8 P2口位結(jié)構(gòu)圖2.2 8051單片機(jī)引腳單片機(jī)引腳 (4)P3口口 P3口有八條端口線,命名為,每條線的結(jié)構(gòu)如圖口有八條端口線,命名為,每條線的結(jié)構(gòu)如圖2-9所所示。示。P3口是一個(gè)多用途的準(zhǔn)雙向口。第一功能是作普通口是一個(gè)多用途的準(zhǔn)雙向口。第一功能是作普通I/O口使用,其功能和原理與口使用,其功能和原理與P1口相同。第二功能是作控口相同。第二功能是作控制和特殊功能口使用,這時(shí)八條端口線所定義的功能各不制和特殊功能口使用,這時(shí)八條端口線所定義的功能各不相同,如表相同,如表2-4示。示。2.2 8051單片機(jī)

37、引腳單片機(jī)引腳圖2-9 P3口位結(jié)構(gòu)圖2.2 8051單片機(jī)引腳單片機(jī)引腳表表2-4 P3口各位的第二功能口各位的第二功能P3口各位口各位第二功能第二功能P3.0RXD(串行數(shù)據(jù)接收)(串行數(shù)據(jù)接收)P3.1TXD(串行數(shù)據(jù)發(fā)送)(串行數(shù)據(jù)發(fā)送)P3.2INT0(外中斷(外中斷0輸入)輸入)P3.3INT1(外中斷(外中斷1輸入)輸入)P3.4T0(計(jì)數(shù)器(計(jì)數(shù)器0計(jì)數(shù)輸入)計(jì)數(shù)輸入)P3.5T1(計(jì)數(shù)器(計(jì)數(shù)器1計(jì)數(shù)輸入)計(jì)數(shù)輸入)P3.6WR(外(外RAM寫選通信號(hào))寫選通信號(hào))P3.7RD(外(外RAM讀選通信號(hào))讀選通信號(hào))單燈左移電路圖2.3 8051單片機(jī)存儲(chǔ)器單片機(jī)存儲(chǔ)器 805

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

39、 一般微機(jī)通常只有一個(gè)邏輯空間,可以隨意安一般微機(jī)通常只有一個(gè)邏輯空間,可以隨意安排排ROM或或RAM。當(dāng)訪問存儲(chǔ)器時(shí),同一地址對(duì)應(yīng)。當(dāng)訪問存儲(chǔ)器時(shí),同一地址對(duì)應(yīng)唯一的存儲(chǔ)單元,可以是唯一的存儲(chǔ)單元,可以是ROM也可以是也可以是 RAM,并,并用同類訪問指令。用同類訪問指令。這種結(jié)構(gòu)稱為普林斯頓結(jié)構(gòu)。這種結(jié)構(gòu)稱為普林斯頓結(jié)構(gòu)。 2 、哈佛結(jié)構(gòu)、哈佛結(jié)構(gòu) 8051單片機(jī)與一般微機(jī)的存儲(chǔ)器配置方式很不相單片機(jī)與一般微機(jī)的存儲(chǔ)器配置方式很不相同。同。 51單片機(jī)的存儲(chǔ)器在物理結(jié)構(gòu)上分為程序存單片機(jī)的存儲(chǔ)器在物理結(jié)構(gòu)上分為程序存儲(chǔ)空間和數(shù)據(jù)存儲(chǔ)空間,共有四個(gè):片內(nèi)和片外儲(chǔ)空間和數(shù)據(jù)存儲(chǔ)空間,共有四個(gè):

40、片內(nèi)和片外程序存儲(chǔ)空間以及片內(nèi)和片外數(shù)據(jù)存儲(chǔ)空間,這程序存儲(chǔ)空間以及片內(nèi)和片外數(shù)據(jù)存儲(chǔ)空間,這種在物理結(jié)構(gòu)上把程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開種在物理結(jié)構(gòu)上把程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開的結(jié)構(gòu)形式稱為哈佛結(jié)構(gòu)。的結(jié)構(gòu)形式稱為哈佛結(jié)構(gòu)。2.3 8051單片機(jī)存儲(chǔ)器單片機(jī)存儲(chǔ)器兩種結(jié)構(gòu)的區(qū)別兩種結(jié)構(gòu)的區(qū)別2.3 8051單片機(jī)存儲(chǔ)器單片機(jī)存儲(chǔ)器 8051單片機(jī)存儲(chǔ)器結(jié)構(gòu)采用哈佛型結(jié)構(gòu),單片機(jī)存儲(chǔ)器結(jié)構(gòu)采用哈佛型結(jié)構(gòu),即將程序存儲(chǔ)器即將程序存儲(chǔ)器(ROM)和數(shù)據(jù)存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器(RAM)分開,它們有各自獨(dú)立的存儲(chǔ)空分開,它們有各自獨(dú)立的存儲(chǔ)空間、尋址機(jī)構(gòu)和尋址方式。其典型結(jié)構(gòu)間、尋址機(jī)構(gòu)和尋址方式。其典型

41、結(jié)構(gòu)下圖所示。下圖所示。2.3 8051單片機(jī)存儲(chǔ)器單片機(jī)存儲(chǔ)器圖圖2-10 8051存儲(chǔ)器結(jié)構(gòu)圖存儲(chǔ)器結(jié)構(gòu)圖 8051在邏輯空間上,即從用戶角度上在邏輯空間上,即從用戶角度上8051有三有三個(gè)存儲(chǔ)空間:個(gè)存儲(chǔ)空間: (1)片內(nèi)外統(tǒng)一編址(片內(nèi)外統(tǒng)一編址(0000HFFFFH)的程序存的程序存儲(chǔ)器儲(chǔ)器,用用16位地址尋址位地址尋址; (2)256B片內(nèi)數(shù)據(jù)存儲(chǔ)器地址空間,地址為:片內(nèi)數(shù)據(jù)存儲(chǔ)器地址空間,地址為:00HFFH,8位地址尋址位地址尋址; (3)64KB的片外數(shù)據(jù)存儲(chǔ)器地址空間,地址從的片外數(shù)據(jù)存儲(chǔ)器地址空間,地址從0000HFFFFH,16位地址尋址。位地址尋址。2.3 8051單

42、片機(jī)存儲(chǔ)器單片機(jī)存儲(chǔ)器2.3 8051單片機(jī)存儲(chǔ)器單片機(jī)存儲(chǔ)器 區(qū)分:區(qū)分: 上述的上述的3個(gè)存儲(chǔ)空間是重疊的,為了用戶能夠正確使用這個(gè)存儲(chǔ)空間是重疊的,為了用戶能夠正確使用這3個(gè)邏輯個(gè)邏輯空間,空間,8051指令系統(tǒng)設(shè)計(jì)了不同的數(shù)據(jù)傳送指令符號(hào):指令系統(tǒng)設(shè)計(jì)了不同的數(shù)據(jù)傳送指令符號(hào): (1)CPU訪問片內(nèi)、片外程序存儲(chǔ)器時(shí),指令為訪問片內(nèi)、片外程序存儲(chǔ)器時(shí),指令為MOVC: 例:例:MOVC A,A+PC; (2) CPU訪問片內(nèi)數(shù)據(jù)存儲(chǔ)器時(shí),指令為訪問片內(nèi)數(shù)據(jù)存儲(chǔ)器時(shí),指令為MOV: 例:例:MOV A,R1; (3) CPU訪問片外數(shù)據(jù)存儲(chǔ)器時(shí),指令為訪問片外數(shù)據(jù)存儲(chǔ)器時(shí),指令為MOVX

43、: 例:例:MOVX A,DPTR;2.3 8051單片機(jī)存儲(chǔ)器單片機(jī)存儲(chǔ)器3、8051程序存儲(chǔ)器空間 (1) 8051、8031與與8751的區(qū)別:的區(qū)別: 8051內(nèi)部有內(nèi)部有4KB的的ROM,8031沒有沒有ROM,8751片內(nèi)有片內(nèi)有4KB的的EPROM。 8051有有64KB程序存儲(chǔ)器尋址區(qū),其中程序存儲(chǔ)器尋址區(qū),其中0000H0FFFH的的4KB的地址的地址空間可以為片內(nèi)和片外公用。區(qū)分:空間可以為片內(nèi)和片外公用。區(qū)分: 8051提供了一條專用的控制引腳提供了一條專用的控制引腳EA(第(第31腳)腳) 若若EA=1,則則8051使用片內(nèi)使用片內(nèi)4KB的程序存儲(chǔ)器。的程序存儲(chǔ)器。 若

44、若EA=0,則則8051自動(dòng)使用片外自動(dòng)使用片外ROM。 不論不論EA接高電平還是低電平,當(dāng)訪問地址超過接高電平還是低電平,當(dāng)訪問地址超過4KB時(shí),時(shí), 自動(dòng)轉(zhuǎn)到片自動(dòng)轉(zhuǎn)到片外外ROM.(2)程序的)程序的7個(gè)特殊入口地址個(gè)特殊入口地址表表2.5 MCS-51單片機(jī)復(fù)位、中斷入口地址單片機(jī)復(fù)位、中斷入口地址操操 作作入入 口口 地地 址址復(fù)位復(fù)位0000H外部中斷外部中斷00003H定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器0溢出溢出000BH外部中斷外部中斷10013H定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器1溢出溢出001BH串行口中斷串行口中斷0023H定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器0溢出或溢出或T2EX端負(fù)跳變端負(fù)跳變

45、(52子子系列系列)002BH2.3 8051單片機(jī)存儲(chǔ)器單片機(jī)存儲(chǔ)器 4、數(shù)據(jù)存儲(chǔ)器的地址空間、數(shù)據(jù)存儲(chǔ)器的地址空間 (1)低128RAM區(qū) 工作寄存器區(qū):工作寄存器區(qū):00H1FH這這32個(gè)單元為工作寄存器區(qū),分為個(gè)單元為工作寄存器區(qū),分為四組,每組占八個(gè)四組,每組占八個(gè) RAM單元,地址由小到大分別用代號(hào)單元,地址由小到大分別用代號(hào)R0R7表示。通過設(shè)置程序狀態(tài)字表示。通過設(shè)置程序狀態(tài)字PSW中的中的RS1、RS0狀態(tài)來決定哪一狀態(tài)來決定哪一組寄存器工作,如表組寄存器工作,如表2-5所示。所示。 位尋址區(qū):位尋址區(qū):20H2FH這這16個(gè)單元為位尋址區(qū)。它有雙重尋址功個(gè)單元為位尋址區(qū)。它

46、有雙重尋址功能,既可以進(jìn)行位尋址操作,也可以同普通能,既可以進(jìn)行位尋址操作,也可以同普通RAM單元一樣按字節(jié)尋單元一樣按字節(jié)尋址操作。址操作。 普通普通RAM區(qū):區(qū):30H7FH這這80個(gè)單元為普通個(gè)單元為普通RAM區(qū)。用于存放用戶數(shù)區(qū)。用于存放用戶數(shù)據(jù),只能按字節(jié)存取。據(jù),只能按字節(jié)存取。堆棧:堆棧是片內(nèi)堆棧:堆棧是片內(nèi)RAM存儲(chǔ)器中的特殊群體。存儲(chǔ)器中的特殊群體。表表2-5 8051內(nèi)部?jī)?nèi)部RAM空間分配空間分配7FH堆棧和數(shù)堆棧和數(shù)據(jù)緩沖區(qū)據(jù)緩沖區(qū)30H2FH7F7E7D7C7B7A7978位位尋尋址址區(qū)區(qū)2EH77767574737271702DH6F6E6D6C6B6A69682CH

47、67666564636261602BH5F5E5D5C5B5A59582AH575655545352515029H4F4E4D4C4B4A494828H474645444342414027H3F3E3D3C3B3A393826H373635343332313025H2F2E2D2C2B2A292824H272625242322212023H1F1E1D1C1B1A191822H171615141312111021H0F0E0D0C0B0A090820H07060504030201001FH3組(組(R0R7)工工作作寄寄存存器器區(qū)區(qū)18H17H2組(組(R0R7)10H0FH1組(組(R0R7

48、)08H07H0組(組(R0R7)00H位尋址位尋址(P.48)(P.48)指令中直接給出了操作數(shù)所在的位地址。指令中直接給出了操作數(shù)所在的位地址。例:例: CLR P1.0 CLR P1.0 ;(P1.0) 0(P1.0) 0 SETB ACC.7 SETB ACC.7 ;(ACC.7) 1(ACC.7) 1 CPL C CPL C ;( C ) NOT( C )( C ) NOT( C )注意注意: 1 1)位地址里的數(shù)據(jù)只可能是一個(gè))位地址里的數(shù)據(jù)只可能是一個(gè) 0 0 或或 1 1 2 2)有的位地址十分明確)有的位地址十分明確, ,如如 等等, , 有的位地址則有的位地址則“不太明確不

49、太明確”,如:,如: MOV AMOV A,17H ; (A)(17H),17H17H ; (A)(17H),17H是是字節(jié)地址字節(jié)地址 ,17H ;(ACC.0)(17H),17H ;(ACC.0)(17H),這里這里 是是位地址位地址所以該指令中的所以該指令中的17H17H是是22H22H單元的第單元的第7 7位位2.3 8051單片機(jī)存儲(chǔ)器單片機(jī)存儲(chǔ)器 (2) 專用寄存器區(qū):專用寄存器區(qū):片內(nèi)片內(nèi)80HFFH這一區(qū)間,這一區(qū)間,8051集合了一些特殊用途的寄存器,一集合了一些特殊用途的寄存器,一般稱之為特殊功能寄存器般稱之為特殊功能寄存器SFR(Special Function Regi

50、ster)。每個(gè))。每個(gè)SFR占有一個(gè)占有一個(gè)RAM單元。它們離散地分布在單元。它們離散地分布在80HFFH地址范圍地址范圍內(nèi),如表內(nèi),如表2-6所示。所示。 沒有被沒有被SFR占據(jù)的地址可能在片內(nèi)并不存在。對(duì)這些地址讀出占據(jù)的地址可能在片內(nèi)并不存在。對(duì)這些地址讀出時(shí),通常會(huì)得到隨機(jī)的數(shù)據(jù),而寫入時(shí)將會(huì)有不確定的效應(yīng),時(shí),通常會(huì)得到隨機(jī)的數(shù)據(jù),而寫入時(shí)將會(huì)有不確定的效應(yīng),因此軟件設(shè)計(jì)時(shí)不要使用這些單元。特殊功能寄存器通常用寄因此軟件設(shè)計(jì)時(shí)不要使用這些單元。特殊功能寄存器通常用寄存器尋址,但也可以用直接尋址方式進(jìn)行字節(jié)訪問。其中存器尋址,但也可以用直接尋址方式進(jìn)行字節(jié)訪問。其中11個(gè)個(gè)寄存器還可

51、進(jìn)行位尋址寄存器還可進(jìn)行位尋址(表表2-4中帶中帶*號(hào)的寄存器號(hào)的寄存器)操作,其位地址操作,其位地址的分配如表的分配如表2-7所示。所示。表2-6 8051特殊功能寄存器SFR一覽表PSW表表2-7 SFR中的位地址分配中的位地址分配寄存器符寄存器符號(hào)號(hào)位地址位地址字節(jié)地址字節(jié)地址D7D6D5D4D3D2D1D0BF7F6F5F4F3F2F1F0F0HACCE7E6E5E4E3E2E1E0E0HPSWD7D6D5D4D3D2D1D0D0HIPBCBBBAB9B8B8HP3B7B6B5B4B3B2B1B0B0HIEAFACABAAA9A8A8HP2A7A6A5A4A3A2A1A0A0HSCON

52、9F9E9D9C9B9A999898HP1979695949392919090HTCON8F8E8D8C8B8A898888HP0878685848382818080H片片內(nèi)內(nèi)RAM高高128單元:?jiǎn)卧篠FR(80HFFH)低低128單元單元(00H7FH)堆棧和數(shù)據(jù)緩沖區(qū)堆棧和數(shù)據(jù)緩沖區(qū)(30H7FH)位尋址區(qū)位尋址區(qū)(20H2FH)通用寄存器區(qū)通用寄存器區(qū)(00H1FH)00H-7FH堆棧: 在片內(nèi)在片內(nèi)RAM中,常常要指定一個(gè)專門的區(qū)域來存放中,常常要指定一個(gè)專門的區(qū)域來存放某些特別的數(shù)據(jù)某些特別的數(shù)據(jù),它遵循順序存取和后進(jìn)先出它遵循順序存取和后進(jìn)先出(LIFO/FILO)的原則)的原

53、則,這個(gè)這個(gè)RAM區(qū)叫堆棧。區(qū)叫堆棧。功用功用:1)子程序調(diào)用和中斷服務(wù)時(shí))子程序調(diào)用和中斷服務(wù)時(shí)CPU自動(dòng)將當(dāng)前自動(dòng)將當(dāng)前PC 值壓棧保存,返回時(shí)自動(dòng)將值壓棧保存,返回時(shí)自動(dòng)將PC值彈棧。值彈棧。2)保護(hù)現(xiàn)場(chǎng))保護(hù)現(xiàn)場(chǎng)/恢復(fù)現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng)3)數(shù)據(jù)傳輸)數(shù)據(jù)傳輸00H00H20H20H2FH2FH7FH7FH1FH1FH30H30H80H80HFFHFFH52子系列才有子系列才有的的RAM區(qū)區(qū)普通普通RAM區(qū)區(qū)位尋址區(qū)位尋址區(qū)工作寄存器區(qū)工作寄存器區(qū) SP棧棧頂頂下一個(gè)進(jìn)棧的數(shù)據(jù)下一個(gè)進(jìn)棧的數(shù)據(jù)將存在此將存在此數(shù)據(jù)數(shù)據(jù)進(jìn)棧進(jìn)棧已經(jīng)進(jìn)棧的數(shù)據(jù)已經(jīng)進(jìn)棧的數(shù)據(jù)存放在此存放在此初始初始 SP復(fù)位后復(fù)位后

54、 SP=07HSP=07H,數(shù)據(jù)進(jìn)棧時(shí):首先,數(shù)據(jù)進(jìn)棧時(shí):首先SP+1SP+1指向指向08H08H單元,第一個(gè)放進(jìn)堆棧的數(shù)據(jù)將單元,第一個(gè)放進(jìn)堆棧的數(shù)據(jù)將放進(jìn)放進(jìn)08H08H單元,然后單元,然后SPSP再自動(dòng)增再自動(dòng)增 1 1,仍指,仍指著棧頂著棧頂堆棧區(qū)由特殊功能寄存器堆棧區(qū)由特殊功能寄存器堆棧指針堆棧指針SPSP管理管理 堆棧堆棧區(qū)可以安排在區(qū)可以安排在 RAMRAM區(qū)任意位置,一般不安排在工作寄存器區(qū)任意位置,一般不安排在工作寄存器區(qū)和可按位尋址的區(qū)和可按位尋址的RAMRAM區(qū),通常放在區(qū),通常放在RAMRAM區(qū)的靠后的位置。區(qū)的靠后的位置。從堆棧取出數(shù)據(jù)時(shí):取出的數(shù)據(jù)是最近從堆棧取出數(shù)

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

56、RAMRAM區(qū)任意位置,一般不安排在工作寄存器區(qū)區(qū)任意位置,一般不安排在工作寄存器區(qū)和可按位尋址的和可按位尋址的RAMRAM區(qū),通常放在區(qū),通常放在RAMRAM區(qū)的靠后的位置。區(qū)的靠后的位置。從堆棧取出數(shù)據(jù)時(shí):取出的數(shù)據(jù)是最從堆棧取出數(shù)據(jù)時(shí):取出的數(shù)據(jù)是最近放進(jìn)去的一個(gè)數(shù)據(jù),也就是當(dāng)前棧近放進(jìn)去的一個(gè)數(shù)據(jù),也就是當(dāng)前棧頂?shù)臄?shù)據(jù)。然后頂?shù)臄?shù)據(jù)。然后SPSP再自動(dòng)減再自動(dòng)減1 1,仍指,仍指著棧頂著棧頂00H00H20H20H2FH2FH7FH7FH1FH1FH30H30H80H80HFFHFFH52子系列才有子系列才有的的RAM區(qū)區(qū)普通普通RAM區(qū)區(qū)位尋址區(qū)位尋址區(qū)工作寄存器區(qū)工作寄存器區(qū)SP-

57、1 指向新的棧指向新的棧頂頂,也就是下一個(gè)也就是下一個(gè)將要出棧的數(shù)據(jù)將要出棧的數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)出棧出棧初始初始 SP堆棧區(qū)由特殊功能寄存器堆棧指針SP管理 堆棧堆棧區(qū)可以安排在區(qū)可以安排在 RAMRAM區(qū)任意位置,一般不安排在工作寄存器區(qū)區(qū)任意位置,一般不安排在工作寄存器區(qū)和可按位尋址的和可按位尋址的RAMRAM區(qū),通常放在區(qū),通常放在RAMRAM區(qū)的靠后的位置。區(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位寄

58、存器(DPH和DPL)來使用。DPTR主要是用來保存16位地址,當(dāng)對(duì)64kB外部數(shù)據(jù)存儲(chǔ)器尋址時(shí),可作為間址寄存器使用,此時(shí),使用如下兩條指令: MOVX A, DPTR MOVX DPTR, A例:MOV DPTR,#202XH MOVX A,DPTR ;將外RAM202XH單元內(nèi)容A在訪問程序存儲(chǔ)器時(shí),DPTR可用來作基址寄存器,采用基址+變址尋址方式訪問程序存儲(chǔ)器,這條指令常用于讀取程序存儲(chǔ)器內(nèi)的表格數(shù)據(jù)。MOVC A, A+DPTR;訪問ROM指令 2.4 8051單片機(jī)工作方式單片機(jī)工作方式2.4.1 復(fù)位方式復(fù)位方式單片機(jī)在開機(jī)時(shí)或在工作中因干擾而使程序失控或工作中程序處于某種單片

59、機(jī)在開機(jī)時(shí)或在工作中因干擾而使程序失控或工作中程序處于某種死循環(huán)狀態(tài)等情況下都需要復(fù)位。復(fù)位的作用是使中央處理器死循環(huán)狀態(tài)等情況下都需要復(fù)位。復(fù)位的作用是使中央處理器CPU以及以及其他功能部件都恢復(fù)到一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。其他功能部件都恢復(fù)到一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。8051單片機(jī)的復(fù)位靠外部電路實(shí)現(xiàn),信號(hào)由單片機(jī)的復(fù)位靠外部電路實(shí)現(xiàn),信號(hào)由RESET(RST)引腳輸入,高)引腳輸入,高電平有效,在振蕩器工作時(shí),只要保持電平有效,在振蕩器工作時(shí),只要保持RST引腳高電平兩個(gè)機(jī)器周期,單引腳高電平兩個(gè)機(jī)器周期,單片機(jī)即復(fù)位。復(fù)位后,片機(jī)即復(fù)位。復(fù)位后,PC程序

60、計(jì)數(shù)器的內(nèi)容為程序計(jì)數(shù)器的內(nèi)容為0000H,其他特殊功能寄存,其他特殊功能寄存器的復(fù)位狀態(tài)如表器的復(fù)位狀態(tài)如表2-4所示。片內(nèi)所示。片內(nèi)RAM中內(nèi)容不變。復(fù)位電路一般有上電中內(nèi)容不變。復(fù)位電路一般有上電復(fù)位、手動(dòng)開關(guān)復(fù)位和自動(dòng)復(fù)位電路三種,如圖復(fù)位、手動(dòng)開關(guān)復(fù)位和自動(dòng)復(fù)位電路三種,如圖2-11所示。所示。2.4 8051單片機(jī)工作方式單片機(jī)工作方式圖2-11 單片機(jī)復(fù)位電路圖實(shí)驗(yàn)中的復(fù)位電路及時(shí)鐘電路實(shí)驗(yàn)中的復(fù)位電路及時(shí)鐘電路MCS-51單片機(jī)各寄存器的復(fù)位狀態(tài)單片機(jī)各寄存器的復(fù)位狀態(tài) 00HTCON0000HPC00HTMOD00000BPCON0 000000BIE不定不定SBUF 000

溫馨提示

  • 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)論