




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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線(xiàn)等一臺(tái)計(jì)算機(jī)的需要的基本功能部件。主要包括:一個(gè)8位CPU;一個(gè)片內(nèi)振蕩器及時(shí)鐘電路;128字節(jié)RAM;4KBROM;兩個(gè)16位定時(shí)/計(jì)數(shù)器;32條可編程的I/O線(xiàn);一個(gè)可編程的全雙工串行口;具有五個(gè)中斷源、兩個(gè)中斷優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)。圖2-4是8051單片機(jī)的內(nèi)部結(jié)構(gòu)框圖。它包含了作為微型計(jì)算機(jī)所必需的基本功能部件,各功能部件通過(guò)片內(nèi)單一總線(xiàn)連成一個(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)算器用來(lái)完成算術(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)算;布爾處理器主用來(lái)處理位操作。它是以進(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):用來(lái)存放參與算術(shù)運(yùn)算和邏輯運(yùn)算的一個(gè)操作數(shù)或運(yùn)算的結(jié)果。在運(yùn)算時(shí)將一個(gè)操作數(shù)經(jīng)暫存器送至ALU,與另一個(gè)來(lái)自暫存器的操作數(shù)在ALU中進(jìn)行運(yùn)算,運(yùn)算后的結(jié)果又送回累加器A。8051單片機(jī)在結(jié)構(gòu)上是以累加器A為中心,大部分指令的執(zhí)行都要通過(guò)累加器A進(jìn)行。
2.18051單片機(jī)的結(jié)構(gòu)(3)暫存寄存器(TMP1、TMP2):用來(lái)存放參與算術(shù)運(yùn)算和邏輯運(yùn)算的另一個(gè)操作數(shù),它對(duì)用戶(hù)不開(kāi)放。(4)寄存器B:
在乘、除運(yùn)算時(shí)用來(lái)存放一個(gè)操作數(shù),也用來(lái)存放運(yùn)算后的一部分結(jié)果,在不進(jìn)行乘、除運(yùn)算時(shí),可以作為通用的寄存器使用。2.18051單片機(jī)的結(jié)構(gòu)(5)狀態(tài)寄存器(PSW):
PSW是一個(gè)8位標(biāo)志寄存器,用來(lái)存放ALU操作結(jié)果特征和處理器狀態(tài)。這些特征和狀態(tài)可以作為控制程序轉(zhuǎn)移的條件,供程序查詢(xú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)算過(guò)程中其最高位A7有無(wú)進(jìn)位或借位。②輔助進(jìn)位標(biāo)志位AC:表示累加器A在加減運(yùn)算時(shí)低4位(A3)有無(wú)向高4位(A4)進(jìn)位或借位。③用戶(hù)標(biāo)志位F0:是用戶(hù)定義的一個(gè)狀態(tài)標(biāo)志位,根據(jù)需要可以用軟件來(lái)使它置位或清除。2.18051單片機(jī)的結(jié)構(gòu)④寄存器選擇位RS1、RS0:8051共有四組,每組八個(gè)工作寄存器R0~R7。編程時(shí)用于存放數(shù)據(jù)或地址。但每組工作寄存器在內(nèi)部RAM中的物理地址不同。RS1和RS0的四種狀態(tài)組合就是用來(lá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)。主要用來(lái)表示帶符號(hào)數(shù)加、減運(yùn)算溢出與否。可用雙高位法進(jìn)行溢出判別。當(dāng)次高位D6向最高位D7有進(jìn)位,而最高位D7無(wú)進(jìn)位;或者當(dāng)次高位D6向最高位D7無(wú)進(jìn)位,而最高位D7有進(jìn)位,則表示發(fā)生溢出,OV=1;否則清零。 乘法和除法也會(huì)影響OV標(biāo)志。當(dāng)乘法的積>255時(shí),OV=1,表示積超過(guò)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ù)傳輸非常有用,通過(guò)奇偶校驗(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是專(zhuān)門(mén)用于存放下一條將要執(zhí)行指令的16位地址,由8位計(jì)數(shù)器PCH(高8位)和PCL(低8位)組成。CPU就是根據(jù)PC中的地址到ROM中去讀取程序指令碼和數(shù)據(jù)。其基本的工作過(guò)程是:讀指令時(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í)行有條件或無(wú)條件轉(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),來(lái)執(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ǔ)單元或固定用途單元,包括通用寄存器組和專(zhuān)用寄存器組。通用寄存器組用來(lái)存放過(guò)渡性的數(shù)據(jù)和地址,提高CPU的運(yùn)行速度。專(zhuān)用寄存器組主要用來(lái)指示當(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ǔ)器是可讀不可寫(xiě)的,用于存放編好的程序和表格常數(shù)。數(shù)據(jù)存儲(chǔ)器是既可讀也可寫(xiě)的,用于存放運(yùn)算的中間結(jié)果,進(jìn)行數(shù)據(jù)暫存及數(shù)據(jù)緩沖等。2.18051單片機(jī)的結(jié)構(gòu)3.I/O端口
8051單片機(jī)對(duì)外部電路進(jìn)行控制或交換信息都是通過(guò)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線(xiàn)都能獨(dú)立地用作輸入或輸出。P0口為三態(tài)雙向口,能帶8個(gè)LSTTL電路。P1口、P2口和P3口為準(zhǔn)雙向口(在用作輸入線(xiàn)時(shí),口鎖存器必須先寫(xiě)入“1”,故稱(chēng)為準(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)稱(chēng)為定時(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中的特殊功能寄存器(見(jiàn)表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)是指能夠處理上述中斷過(guò)程所需要的部分電路。
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)部總線(xiàn)總線(xiàn)是用于傳送信息的公共途徑??偩€(xiàn)可分為數(shù)據(jù)總線(xiàn)、地址總線(xiàn)、控制總線(xiàn)。單片機(jī)內(nèi)的CPU、存儲(chǔ)器、I/O接口等單元部件都是通過(guò)總線(xiàn)連接到一起的。采用總線(xiàn)結(jié)構(gòu)可以減少信息傳輸線(xiàn)的根數(shù),提高系統(tǒng)可靠性,增強(qiáng)系統(tǒng)靈活性。地址總線(xiàn)AB(AddressBus):傳遞訪(fǎng)問(wèn)對(duì)象的地址信息。
數(shù)據(jù)總線(xiàn)DB(DataBus):傳遞數(shù)據(jù)??刂瓶偩€(xiàn)CB(ControlBus):傳遞控制信息。2.28051單片機(jī)引腳
8051單片機(jī)內(nèi)部總線(xiàn)是單總線(xiàn)結(jié)構(gòu),即數(shù)據(jù)總線(xiàn)和地址總線(xiàn)是公用的。8051有40條引腳,與其他51系列單片機(jī)引腳是兼容的。這40條引腳可分為I/O端口線(xiàn)、電源線(xiàn)、控制線(xiàn)、外接晶體線(xiàn)四部分。其封裝形式有兩種:雙列直插封裝(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片外總線(xiàn)結(jié)構(gòu)示意圖下一頁(yè)圖2.2MCS-51系列單片機(jī)引腳及總線(xiàn)結(jié)構(gòu)2.28051單片機(jī)引腳1.電源線(xiàn)8051單片機(jī)的電源線(xiàn)有以下兩種:(1)VCC:+5V電源線(xiàn)。(2)VSS:接地線(xiàn)。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、控制線(xiàn):8051單片機(jī)的控制線(xiàn)有以下幾種:(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、控制線(xiàn):(2)ALE/PROG:地址鎖存允許/編程線(xiàn)。ALE為地址鎖存允許信號(hào),當(dāng)單片機(jī)上電正常工作后,ALE引腳不斷輸出正脈沖信號(hào)。當(dāng)訪(fǎng)問(wèn)單片機(jī)外部存儲(chǔ)器時(shí),ALE輸出信號(hào)的負(fù)跳沿用作8位地址的鎖存信號(hào),即使不訪(fǎng)問(wèn)外部存儲(chǔ)器,ALE端仍有正脈沖信號(hào)輸出,該頻率為時(shí)鐘振蕩器頻率fOSC1/6.PROG指對(duì)片內(nèi)EPROM型單片機(jī)(例8751)編程寫(xiě)入時(shí),此引腳作為編程脈沖輸入端。(3)PSEN:外部程序存儲(chǔ)器的讀選通線(xiàn)。在單片機(jī)訪(fǎng)問(wèn)外部程序存儲(chǔ)器時(shí),此引腳輸出的負(fù)脈沖作為讀外部程序存儲(chǔ)器的選通信號(hào)。此腳接外部程序存儲(chǔ)器的OE(輸出允許)端。(4)EA/VPP:片外ROM允許訪(fǎng)問(wèn)端/編程電源端。
2.28051單片機(jī)引腳4.I/O端口組成(32根I/O口線(xiàn))及功能(1)P0口
P0口有八條端口線(xiàn)(P0.0~P0.7),其中P0.0為低位,P0.7為高位。每條線(xiàn)的結(jié)構(gòu)組成如圖2-6所示。它由一個(gè)輸出鎖存器,兩個(gè)三態(tài)緩沖器,輸出驅(qū)動(dòng)電路和輸出控制電路組成。P0口是一個(gè)三態(tài)雙向I/O口,它有兩種不同的功能,用于不同的工作環(huán)境。P0口位結(jié)構(gòu)圖見(jiàn)2-6.2.28051單片機(jī)引腳圖2-6P0口位結(jié)構(gòu)圖P0口的功能與驅(qū)動(dòng)能力P0口可以作為通用的I/O口;P0口可以作為單片機(jī)系統(tǒng)的地址/數(shù)據(jù)線(xiàn)使用;P0口可以驅(qū)動(dòng)8個(gè)標(biāo)準(zhǔn)的TTL負(fù)載電路。注意在P0口作為通用的I/O口時(shí),必須外接上拉電阻(如下圖)。2.28051單片機(jī)引腳(2)P1口
P1口有八條端口線(xiàn)(P1.0~P1.7),每條線(xiàn)的結(jié)構(gòu)組成如圖2-7所示。P1口是一個(gè)準(zhǔn)雙向口,只作普通的I/O口使用,其功能與P0口的第一功能相同。作輸出口使用時(shí),由于其內(nèi)部有上拉電阻,所以不需外接上拉電阻;作輸入口使用時(shí),必須先向鎖存器寫(xiě)入“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)部鎖存器寫(xiě)“1”。舉例:從P1口的低四位輸入數(shù)據(jù)
MOVP1,#00001111b;;先給P1口低四位寫(xiě)1MOVA,P1;;再讀P1口的低四位2.28051單片機(jī)引腳(3)P2口
P2口有八條端口線(xiàn)(P2.0~P2.7),每條線(xiàn)的結(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ò)展的地址總線(xiàn)口使用,輸出高8位的地址A7~A15,與P0口第二功能輸出的低8位地址相配合,共同訪(fǎng)問(wèn)外部程序或數(shù)據(jù)存儲(chǔ)器(64KB),但它只確定地址并不能像P0口那樣還可以傳送存儲(chǔ)器的讀寫(xiě)數(shù)據(jù)。2.28051單片機(jī)引腳圖2-8P2口位結(jié)構(gòu)圖2.28051單片機(jī)引腳(4)P3口P3口有八條端口線(xiàn),命名為P3.0~P3.7,每條線(xiàn)的結(jié)構(gòu)如圖2-9所示。P3口是一個(gè)多用途的準(zhǔn)雙向口。第一功能是作普通I/O口使用,其功能和原理與P1口相同。第二功能是作控制和特殊功能口使用,這時(shí)八條端口線(xiàn)所定義的功能各不相同,如表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寫(xiě)選通信號(hào))P3.7RD(外RAM讀選通信號(hào))單燈左移電路圖
2.38051單片機(jī)存儲(chǔ)器
8051存儲(chǔ)器可以分成兩大類(lèi):﹡
RAM,CPU在運(yùn)行時(shí)能隨時(shí)進(jìn)行數(shù)據(jù)的寫(xiě)入和讀出,但在關(guān)閉電源時(shí),其所存儲(chǔ)的信息將丟失。它用來(lái)存放暫時(shí)性的輸入輸出數(shù)據(jù)、運(yùn)算的中間結(jié)果或用作堆棧。﹡ROM是一種寫(xiě)入信息后不易改寫(xiě)的存儲(chǔ)器。斷電后,ROM中的信息保留不變。用來(lái)存放固定的程序或數(shù)據(jù),如系統(tǒng)監(jiān)控程序、常數(shù)表格等。
1、普林斯頓結(jié)構(gòu)
一般微機(jī)通常只有一個(gè)邏輯空間,可以隨意安排ROM或RAM。當(dāng)訪(fǎng)問(wèn)存儲(chǔ)器時(shí),同一地址對(duì)應(yīng)唯一的存儲(chǔ)單元,可以是ROM也可以是RAM,并用同類(lèi)訪(fǎng)問(wèn)指令。這種結(jié)構(gòu)稱(chēng)為普林斯頓結(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ǔ)器分開(kāi)的結(jié)構(gòu)形式稱(chēng)為哈佛結(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)分開(kāi),它們有各自獨(dú)立的存儲(chǔ)空間、尋址機(jī)構(gòu)和尋址方式。其典型結(jié)構(gòu)下圖所示。2.38051單片機(jī)存儲(chǔ)器圖2-108051存儲(chǔ)器結(jié)構(gòu)圖★8051在邏輯空間上,即從用戶(hù)角度上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ǔ)空間是重疊的,為了用戶(hù)能夠正確使用這3個(gè)邏輯空間,8051指令系統(tǒng)設(shè)計(jì)了不同的數(shù)據(jù)傳送指令符號(hào):
(1)CPU訪(fǎng)問(wèn)片內(nèi)、片外程序存儲(chǔ)器時(shí),指令為MOVC:
例:MOVCA,@A+PC;(2)CPU訪(fǎng)問(wèn)片內(nèi)數(shù)據(jù)存儲(chǔ)器時(shí),指令為MOV:例:MOVA,R1;(3)CPU訪(fǎng)問(wèn)片外數(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沒(méi)有ROM,8751片內(nèi)有4KB的EPROM。
8051有64KB程序存儲(chǔ)器尋址區(qū),其中0000H—0FFFH的4KB的地址空間可以為片內(nèi)和片外公用。區(qū)分:
8051提供了一條專(zhuān)用的控制引腳EA(第31腳)若EA=1,則8051使用片內(nèi)4KB的程序存儲(chǔ)器。若EA=0,則8051自動(dòng)使用片外ROM。不論EA接高電平還是低電平,當(dāng)訪(fǎng)問(wèn)地址超過(guò)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表示。通過(guò)設(shè)置程序狀態(tài)字PSW中的RS1、RS0狀態(tài)來(lái)決定哪一組寄存器工作,如表2-5所示。②位尋址區(qū):20H~2FH這16個(gè)單元為位尋址區(qū)。它有雙重尋址功能,既可以進(jìn)行位尋址操作,也可以同普通RAM單元一樣按字節(jié)尋址操作。③普通RAM區(qū):30H~7FH這80個(gè)單元為普通RAM區(qū)。用于存放用戶(hù)數(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)專(zhuān)用寄存器區(qū):片內(nèi)80H~FFH這一區(qū)間,8051集合了一些特殊用途的寄存器,一般稱(chēng)之為特殊功能寄存器SFR(SpecialFunctionRegister)。每個(gè)SFR占有一個(gè)RAM單元。它們離散地分布在80H~FFH地址范圍內(nèi),如表2-6所示。沒(méi)有被SFR占據(jù)的地址可能在片內(nèi)并不存在。對(duì)這些地址讀出時(shí),通常會(huì)得到隨機(jī)的數(shù)據(jù),而寫(xiě)入時(shí)將會(huì)有不確定的效應(yīng),因此軟件設(shè)計(jì)時(shí)不要使用這些單元。特殊功能寄存器通常用寄存器尋址,但也可以用直接尋址方式進(jìn)行字節(jié)訪(fǎng)問(wèn)。其中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è)專(zhuān)門(mén)的區(qū)域來(lái)存放某些特別的數(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位的可尋址的專(zhuān)用寄存器;由兩個(gè)8位寄存器DPH和DPL而成,其中DPH為DPTR的高8位,DPL為DPTR的低8位。它既可作為一個(gè)16位寄存器來(lái)使用,也可作為2個(gè)獨(dú)立的8位寄存器(DPH和DPL)來(lái)使用。DPTR主要是用來(lái)保存16位地址,當(dāng)對(duì)64kB外部數(shù)據(jù)存儲(chǔ)器尋址時(shí),可作為間址寄存器使用,此時(shí),使用如下兩條指令:
MOVX
A,
@DPTR
MOVX
@DPTR,
A例:MOVDPTR,#2000HMOVXA,@DPTR;將外RAM2000H單元內(nèi)容→A在訪(fǎng)問(wèn)程序存儲(chǔ)器時(shí),DPTR可用來(lái)作基址寄存器,采用基址+變址尋址方式訪(fǎng)問(wèn)程序存儲(chǔ)器,這條指令常用于讀取程序存儲(chǔ)器內(nèi)的表格數(shù)據(jù)。MOVCA,@A+DPTR ;訪(fǎng)問(wèn)ROM指令2.48051單片機(jī)工作方式2.4.1復(fù)位方式單片機(jī)在開(kāi)機(jī)時(shí)或在工作中因干擾而使程序失控或工作中程序處于某種死循環(huán)狀態(tài)等情況下都需要復(fù)位。復(fù)位的作用是使中央處理器CPU以及其他功能部件都恢復(fù)到一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開(kā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)開(kāi)關(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í)行。單步操作方式特別適合于用戶(hù)程序的調(diào)試階段。單步操作方式是通過(guò)單片機(jī)的中斷控制系統(tǒng)來(lái)實(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)一次中斷處理過(guò)程,CPU執(zhí)行一條程序指令。2.程序連接執(zhí)行方式。程序執(zhí)行方式是單片機(jī)的基本工作方式。所執(zhí)行的程序?qū)懭氤绦虼鎯?chǔ)器后,接通單片機(jī)電源,此時(shí)單片機(jī)復(fù)位使(PC)=0000H,CPU將從程序的起始地址0000H單元開(kāi)始,連續(xù)執(zhí)行事先存放在程序存儲(chǔ)器中的程序。2.48051單片機(jī)工作方式2.4.3省電方式8051系列單片機(jī)提供了兩種通過(guò)軟件編程來(lái)實(shí)現(xiàn)的省電運(yùn)行方式,即空閑方式和掉電方式。省電方式可以使單片機(jī)在供電困難的環(huán)境中功耗最小,僅在需要正常工作時(shí)才正常運(yùn)行。單片機(jī)正常工作時(shí)消耗10~20mA電流,空閑方式工作時(shí)消耗1.75mA電流,掉電方式工作時(shí)消耗5~50μA電流,可見(jiàn)在省電方式下單片機(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ǎng)家在生產(chǎn)MCS-51系列單片機(jī)時(shí)寫(xiě)入到存儲(chǔ)器中的信息。信息內(nèi)容包括生產(chǎn)廠(chǎng)家、編程電壓和單片機(jī)型號(hào)。2.Flash存儲(chǔ)器編程方式這里的編程是指利用特殊手段將用戶(hù)編寫(xiě)好的程序代碼寫(xiě)入8051片內(nèi)4KB字節(jié)Flash存儲(chǔ)器的過(guò)程(89
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 軍事理論-綜合版(舊版)知到智慧樹(shù)答案
- 漢字一到十的課件
- 2024年秋新北師大版數(shù)學(xué)一年級(jí)上冊(cè)課件 第一單元 生活中的數(shù) 第2課時(shí) 走進(jìn)美麗鄉(xiāng)村
- 水閘防洪防汛安全知識(shí)培訓(xùn)
- 通風(fēng)系統(tǒng)安裝與調(diào)試方案
- 水畫(huà)課件觀(guān)看體驗(yàn)
- 用戶(hù)體驗(yàn)設(shè)計(jì)55課件
- 二零二五年度地下工程照明設(shè)備采購(gòu)合同范本
- 2025版附還款來(lái)源保證的流動(dòng)資金借款合同
- 二零二五年度電子商務(wù)平臺(tái)建設(shè)合同補(bǔ)充協(xié)議
- QC新老七大工具培訓(xùn)課件
- SX-22163-QR345工裝維護(hù)保養(yǎng)記錄
- JJF 2025-2023高動(dòng)態(tài)精密離心機(jī)校準(zhǔn)規(guī)范
- 2023年航空職業(yè)技能鑒定考試-候機(jī)樓服務(wù)技能考試題庫(kù)(含答案)
- 醫(yī)院腹腔鏡手術(shù)知情同意書(shū)
- p型半導(dǎo)體和n型半導(dǎo)體課件
- GB/T 748-2005抗硫酸鹽硅酸鹽水泥
- 走好群眾路線(xiàn)-做好群眾工作(黃相懷)課件
- 混凝土結(jié)構(gòu)設(shè)計(jì)原理教學(xué)教案
- 民間文學(xué)(全套課件)
- 專(zhuān)升本00465心理衛(wèi)生與心理輔導(dǎo)歷年試題題庫(kù)(考試必備)
評(píng)論
0/150
提交評(píng)論