第2章 MCS-51單片機的內(nèi)部結(jié)構(gòu) 安徽理工大學_第1頁
第2章 MCS-51單片機的內(nèi)部結(jié)構(gòu) 安徽理工大學_第2頁
第2章 MCS-51單片機的內(nèi)部結(jié)構(gòu) 安徽理工大學_第3頁
第2章 MCS-51單片機的內(nèi)部結(jié)構(gòu) 安徽理工大學_第4頁
第2章 MCS-51單片機的內(nèi)部結(jié)構(gòu) 安徽理工大學_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章MCS-51單片機的硬件結(jié)構(gòu)2.1MCS-51單片機的硬件結(jié)構(gòu)CPU運算部件控制部件BRAMP0口P2口ROM(EPROM)串行口

C/T中斷系統(tǒng)SFRP1口8P3口888XTAL1XTAL2PSENALEEARESETVccVss按功能可分成8個部件,通過片內(nèi)單一總線連接起來1.微處理器2.數(shù)據(jù)存儲器3.程序存儲器4.I/O口5.串行口6.定時/計數(shù)器7.中斷系統(tǒng)8.特殊功能寄存器控制方式:SFR對各功能部件集中控制片內(nèi)總線各功能部件:1.CPU(微處理器)2.數(shù)據(jù)存儲器(RAM)片內(nèi)為128個字節(jié)(52子系列的為256個字節(jié))3.程序存儲器(ROM/EPROM)

8031:無此部件;8051:4K字節(jié)ROM;8751:4K字節(jié)EPROM;

89C51/89C52/89C55:4K/8K/20K字節(jié)閃存。4.P1口、P2口、P3口、P0口:為4個并行8位I/O口。5.串行口1個全雙工的異步串行口6.定時器/計數(shù)器7.中斷系統(tǒng)

8.特殊功能寄存器(SFR)共有21個,是一個具有特殊功能的RAM區(qū)。

2.2MCS-51的引腳

40只引腳雙列直插封裝(DIP)44只引腳方形封裝方式(4只未用)引腳邏輯圖8051單片機為40條引腳雙列直插式封裝引腳可分為三個部分控制引腳并行I/O口引腳電源及時鐘引腳(1)電源及時鐘引腳:Vcc、Vss;XTAL1、XTAL2。(2)控制引腳:PSEN*、EA*、ALE、RESET

(3)I/O口引腳:P0、P1、P2、P3,4個8位I/O口2.2.1電源及時鐘引腳

1.電源引腳

(1)Vcc(40腳):+5V電源;(2)Vss(20腳):接地。2.時鐘引腳

(1)XTAL1(19腳):采用外接晶體振蕩器時,此引腳應(yīng)接地。(2)XTAL2(18腳):接外部晶體的另一端。2.2.2控制引腳

(1)RST/VPD(9腳):復位與備用電源(2)ALE/PROG*(30腳):第一功能ALE:地址鎖存允許第二功能PROG*:編程脈沖輸入端。(3)PSEN*(29腳):讀外部程序存儲器的選通信號??梢则?qū)動8個LS型TTL負載。(4)EA*/VPP(31腳):EA*為內(nèi)外程序存儲器選擇控制EA*=1,訪問片內(nèi)程序存儲器,EA*=0,單片機則只訪問外部程序存儲器。第二功能VPP,用于施加編程電壓。2.2.3I/O口引腳(1)P0口:雙向8位三態(tài)I/O口,地址總線(低8位)及數(shù)據(jù)總線分時復用口,可驅(qū)動8個LS型TTL負載。(2)P1口:8位準雙向I/O口,可驅(qū)動4個LS型TTL負載。(3)P2口:8位準雙向I/O口,與地址總線(高8位)復用,可驅(qū)動4個LS型TTL負載。(4)P3口:8位準雙向I/O口,雙功能復用口,可驅(qū)動4個LS型TTL負載。注意:準雙向口與雙向三態(tài)口的差別。當3個準雙向I/O口作輸入口使用時,要向該口先寫“1”,另外準雙向I/O口無高阻的“浮空”狀態(tài)。2.3MCS-51的CPU

由運算器和控制器所構(gòu)成2.3.1運算器

對操作數(shù)進行算術(shù)、邏輯運算和位操作。1.算術(shù)邏輯運算單元ALU2.累加器A

使用最頻繁的寄存器,可寫為Acc。A的作用:(1)是ALU單元的輸入之一,又是運算結(jié)果存放單元。(2)數(shù)據(jù)傳送大多都通過累加器A。(3)A的進位標志Cy同時又是位處理機的位累加器。3、寄存器B

為了執(zhí)行乘法和除法操作設(shè)置。4、位處理器

所有具有位處理能力的寄存器。3.程序狀態(tài)字寄存器PSW

(1)Cy(PSW.7)進位標志位(2)Ac(PSW.6)輔助進位標志位(3)F0(PSW.5)標志位由用戶使用的一個狀態(tài)標志位。(4)RS1、RS0(PSW.4、PSW.3):4組工作寄存器區(qū)選擇控制位1和位0。工作寄存器區(qū)的選擇18~1FH3區(qū)1110~17H2區(qū)1008~0FH1區(qū)0100~07H0區(qū)00R0~R7地址寄存器組RS1RS0(5)OV(PSW.2)溢出標志位

指示運算是否產(chǎn)生溢出。各種算術(shù)運算指令對該位的影響情況較復雜,將在第3章介紹。(6)PSW.1位:保留位,未用(7)P(PSW.0)奇偶標志位

P=1,A中“1”的個數(shù)為奇數(shù) P=0,A中“1”的個數(shù)為偶數(shù)2.3.2控制器

單片機的指揮控制部件任務(wù):識別指令,根據(jù)指令的性質(zhì)控制單片機各功能部件,保證單片機自動協(xié)調(diào)的工作。工作流程:

首先,從程序存儲器中讀出指令,送指令寄存器保存。然后,送指令譯碼器進行譯碼,結(jié)果送定時控制邏輯電路,由定時控制邏輯產(chǎn)生各種定時信號和控制信號最后,送到單片機各個部件進行相應(yīng)操作。

1.程序計數(shù)器PC(ProgramCounter)存放下一條要執(zhí)行的指令在程序存儲器中的地址?;竟ぷ鬟^程:讀指令時,PC將其中的數(shù)作為所取指令的地址,輸出給程序存儲器,然后程序存儲器按此地址輸出指令字節(jié),同時PC本身自動加1,指向下一條指令在程序存儲器中的地址

基本工作方式:

(1)程序計數(shù)器自動加1

(2)執(zhí)行有條件或無條件轉(zhuǎn)移指令時,程序計數(shù)器將被置入新的數(shù)值,從而使程序的流向發(fā)生變化。(3)執(zhí)行子程序調(diào)用或中斷調(diào)用時完成下列操作: ①PC的當前值保護②將子程序入口地址或中斷向量的地址送入PC。2.指令寄存器IR、指令譯碼器及控制邏輯電路

2.4MCS-51存儲器的結(jié)構(gòu)哈佛結(jié)構(gòu)(Harvard):哈佛結(jié)構(gòu)是一種并行體系結(jié)構(gòu)將程序和數(shù)據(jù)存儲在不同的存儲空間中,即程序存儲器和數(shù)據(jù)存儲器是兩個獨立的存儲器,每個存儲器獨立編址、獨立訪問。

存儲器空間可劃分為5類:1.程序存儲器空間8031無內(nèi)部程序存儲器。2.內(nèi)部數(shù)據(jù)存儲器空間3.特殊功能寄存器4.位地址空間

211個可尋址位。5.外部數(shù)據(jù)存儲器空間片外可擴展64K字節(jié)RAM。

內(nèi)部數(shù)據(jù)存儲器(a)外部數(shù)據(jù)存儲器(b)MCS-51單片機存儲器空間分配特殊功能寄存器00H1FH20H2FH30H7FH80HFFH80H88H90H98HA0HA8HB0HB8HD0HE0HF0H特殊功能寄存器中位尋址外部ROM內(nèi)部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH外部RAM(I/O口地址)0000HFFFFH程序存儲器(c)工作寄存器區(qū)位尋址區(qū)通用

RAM區(qū)返回2.4.1程序存儲器(片內(nèi)0000H~0FFFH)8051單片機內(nèi)部有4KB的掩膜ROM、8751單片機內(nèi)部有4KB的EPROM,而8031內(nèi)部沒有程序存儲器,必須外接程序存儲器。當引腳接高電平時,CPU將首先訪問內(nèi)部程序存儲器,在PC超過0FFFH單元時,CPU將自動轉(zhuǎn)入訪問外部程序存儲器。當引腳接低電平時,所有取指操作均指向外部程序存儲器。對于8031/8032,必須接低電平(接地)。從0003H~002AH單元被保留專用于中斷服務(wù)程序。

存放應(yīng)用程序和表格之類的固定常數(shù)。分為片內(nèi)和片外兩部分,由EA*引腳上所接電平確定

程序存儲器中的0000H地址是系統(tǒng)程序的啟動地址

一些單元具有特殊用途1)0000H-0002H2)5個中斷源地址區(qū)

表2-15種中斷源的中斷入口地址 外中斷00003H 定時器T0000BH 外中斷10013H 定時器T1001BH 串行口0023H2.4.2內(nèi)部數(shù)據(jù)存儲器

共256個單元,低128單元:00H~7FH高128單元:80H~FFH00H~1FH:32個單元,是4組通用工作寄存器區(qū)20H~2FH:16個單元,可進行128位的位尋址30H~7FH:用戶RAM區(qū),只能進行字節(jié)尋址,用作數(shù)據(jù)緩沖區(qū)以及堆棧區(qū)。工作寄存器區(qū)一共4組,編號:工作寄存器組0~4一組8個字節(jié),用同一組編號R0~R7表示,某一時刻只能選用一組作為當前工作寄存器,由RS1,RS0決定。地址:00H~1FH(32個字節(jié))兩種使用方法:MOVA,R0或MOVA,00H(1)內(nèi)部數(shù)據(jù)存儲區(qū)低128單元位尋址區(qū)字節(jié)地址:20H~2FH(16個字節(jié))位地址:00H~7FH(為位操作指令準備,是位處理器的數(shù)據(jù)存儲空間)例如:清除位地址00H單元 CLR 00H而對片內(nèi)的00H字節(jié)清零,則 MOV 00H,#00H或 ANL 00H,#00H用戶RAM區(qū)供用戶使用的一般RAM區(qū),30H~7FH。字節(jié)地址使用,堆棧區(qū)一般常開辟在這個區(qū)內(nèi)?!敬鎯ζ鲄^(qū)的低128字節(jié)】2.4.3特殊功能寄存器(SFR)CPU對各種功能部件的控制采用特殊功能寄存器集中控制方式,共21個。有的SFR可進行位尋址,其字節(jié)地址的末位是0H或8H。表2-2SFR的名稱及其分布

SFR中的某些寄存器1.堆棧指針SP

指示出堆棧頂部在內(nèi)部RAM塊中的位置

復位后,SP中的內(nèi)容為07H。

(1)保護斷點 (2)現(xiàn)場保護 堆棧向上生長2.數(shù)據(jù)指針DPTR

16位特殊功能寄存器,高位字節(jié)寄存器用DPH表示,低位字節(jié)寄存器用DPL表示。

3.程序計數(shù)器PC

16位,控制程序的順序執(zhí)行。地址不在SFR,不計做專用寄存器。

4.寄存器B為執(zhí)行乘法和除法操作設(shè)置的。在不執(zhí)行乘、除的情況下,可當作一個普通寄存器來使用。5.累加器A8位,最常用,功能強大,可放操作數(shù)或中間結(jié)果。6.程序狀態(tài)字PSW8位,存放程序運行中的各種狀態(tài)信息。某些位根據(jù)程序結(jié)果又硬件自動設(shè)置,有些使用軟件設(shè)定。7.I/O端口P0~P3

8.串行數(shù)據(jù)緩沖器SBUF

存放欲發(fā)送或已接收的數(shù)據(jù),一個字節(jié)地址,物理上是由兩個獨立的寄存器組成,一個是發(fā)送緩沖器,另一個是接收緩沖器。9.定時器/計數(shù)器

兩個16位定時器/計數(shù)器T1和T0,各由兩個獨立的8位寄存器組成:TH1、TL1、TH0、TL0,只能字節(jié)尋址,但不能把T1或T0當作一個16位寄存器來尋址訪問。

2.4.4位地址空間

211個(128個+83個)尋址位。位地址范圍為:00H~FFH。內(nèi)部RAM的可尋址位128個(字節(jié)地址20H~2FH)。特殊功能寄存器SFR為83個可尋址位。表2-3內(nèi)部的可尋址位及位地址表2-4SFR中的位地址分布2.4.5外部數(shù)據(jù)存儲器由于MCS-51系列單片機內(nèi)部數(shù)據(jù)存儲器只有128字節(jié),往往不夠用,這就需要擴展外部數(shù)據(jù)存儲器,外部數(shù)據(jù)存儲器最多可擴至64KB。外部數(shù)據(jù)存儲器的訪問地址可由工作寄存器Ri(8位)或數(shù)據(jù)指針DPTR(16位)提供,前者的尋址空間256字節(jié),后者可尋址64KB。Ri由P0口輸出;DPTR的DPL由P0口輸出,DPH由P2口輸出。讀/寫操作的數(shù)據(jù)由P0口輸入/輸出,P0口為分時復用。最多可外擴64K字節(jié)的RAM或I/O。幾點注意:(1)地址的重疊性程序存儲器與數(shù)據(jù)存儲器全部64K字節(jié)地址空間重疊程序存儲器與數(shù)據(jù)存儲器在使用上是嚴格區(qū)分的(3)位地址空間共有兩個區(qū)域(4)片外與片內(nèi)數(shù)據(jù)存儲器由指令來區(qū)分(5)片外數(shù)據(jù)存儲區(qū)中,RAM與I/O端口統(tǒng)一編址。 所有外圍I/O端口的地址均占用RAM地址單元,使用與訪問外部數(shù)據(jù)存儲器相同的傳送指令。內(nèi)部數(shù)據(jù)存儲器(a)外部數(shù)據(jù)存儲器(b)MCS-51單片機存儲器空間分配特殊功能寄存器00H1FH20H2FH30H7FH80HFFH80H88H90H98HA0HA8HB0HB8HD0HE0HF0H特殊功能寄存器中位尋址外部ROM內(nèi)部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH外部RAM(I/O口地址)0000HFFFFH程序存儲器(c)工作寄存器區(qū)位尋址區(qū)通用

RAM區(qū)返回數(shù)據(jù)存儲器和程序存儲器分開,各有自己的尋址系統(tǒng)、控制信號和功能。存儲器有內(nèi)外之分。分開的存儲結(jié)構(gòu)更有效地使用較大而固定的程序和頻繁地處理大量的數(shù)據(jù)或變量。MCS-51單片機系統(tǒng)的存儲器結(jié)構(gòu)特點多路開關(guān)功能:用于控制選通I/O方式還是地址/數(shù)據(jù)輸出方式方式控制:由內(nèi)部控制信號產(chǎn)生輸入鎖存器兩個輸入緩沖器(BUF1和BUF2)推拉式I/O驅(qū)動器2.5并行I/O端口共有4個8位雙向I/O口,共32口線。每位均有自己的鎖存器、輸出驅(qū)動器和輸入緩沖器。2.5.1P0口位圖內(nèi)部結(jié)構(gòu)BUF2BUF15、P0R2為讀引腳信號,執(zhí)行“MOVA,P0”時該信號有效6、讀引腳(端口)時,輸出鎖存器應(yīng)為“1”說明:1、當控制信號為0時,P0口做雙向I/O口,為漏極開路(三態(tài))2、控制信號為1時,P0口為地址/數(shù)據(jù)復用總線(用于口擴展)3、P0W為端口輸出寫信號,用于鎖存輸出狀態(tài)4、P0R1為讀鎖存器信號,執(zhí)行“ANLP0,#0FH”時該信號有效QQDCVcc控制AD0P0R1

P0R2D0P0W圖1、P0口內(nèi)部結(jié)構(gòu)讀鎖存器讀引腳鎖存器內(nèi)部總線寫鎖存器地址/數(shù)據(jù)P00多路開關(guān)102.5.2P1口內(nèi)部結(jié)構(gòu)P1口內(nèi)部結(jié)構(gòu)如圖2所示輸出部分有內(nèi)部上拉電阻R*約為20K。其他部分與P0端口使用相類似(讀引腳時先寫入1)。寫數(shù)據(jù)讀端口2.5.3P2口內(nèi)部結(jié)構(gòu)2、當控制信號為1時P2口輸出地址信息,此時單片機完成外部的取指操作或?qū)ν獠繑?shù)據(jù)存儲器16位地址的讀寫操作。3、當P2口作為普通I/O口使用時用法和P1口類似。說明:1、P2可以作為通用的I/O,也可以作為高8位地址輸出。2.5.4P3口內(nèi)部結(jié)構(gòu)說明:1、做普通端口使用時,第二功能應(yīng)為“1”。2、使用第二功能時,輸出端口鎖存器應(yīng)為“1”。3、變異功能()P3.0TXDP3.4T0P3.1RXDP3.5T1P3.2INT0P3.6WRP3.3INT1P3.7RD1輸出I/O口1讀I/O口112.5.5P0~P3端口功能總結(jié)使用中應(yīng)注意的問題:P0~P3口都是并行I/O口,但P0口和P2口還可用來構(gòu)建數(shù)據(jù)總線和地址總線,所以電路中有一個MUX,進行轉(zhuǎn)換。而P1口和P3口無構(gòu)建系統(tǒng)的數(shù)據(jù)總線和地址總線的功能,因此,無需轉(zhuǎn)接開關(guān)MUX。只有P0口是一個真正的雙向口,P1~P3口都是準雙向口。原因:P0口作數(shù)據(jù)總線使用時,為保證數(shù)據(jù)正確傳送,需解決芯片內(nèi)外的隔離問題,即只有在數(shù)據(jù)傳送時芯片內(nèi)外才接通;否則應(yīng)處于隔離狀態(tài)。為此,P0口的輸出緩沖器應(yīng)為三態(tài)門。P3口具有第二功能。因此在P3口電路增加了第二功能控制邏輯。這是P3口與其它各口的不同之處。2.6時鐘電路與時序時鐘電路用于產(chǎn)生單片機工作所必需的時鐘控制信號。2.6.1時鐘電路時鐘頻率直接影響單片機的速度,電路的質(zhì)量直接影響系統(tǒng)的穩(wěn)定性。常用的時鐘電路有兩種方式:內(nèi)部時鐘方式和外部時鐘方式。一、內(nèi)部時鐘方式

內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,其輸入端:XTAL1,輸出端:XTAL2。

C1和C2典型值通常選擇為30pF左右。晶體的振蕩頻率在1.2MHz~12MHz之間。某些高速單片機芯片的時鐘頻率已達40MHz。二、外部時鐘方式

常用于多片MCS-51單片機同時工作。

2.6.2機器周期、指令周期與指令時序一、節(jié)拍與狀態(tài)節(jié)拍:振蕩脈沖的周期,時鐘周期狀態(tài):單片機時鐘信號的周期,振蕩脈沖二分頻二、機器周期CPU完成一個基本操作所需要的時間。執(zhí)行一條指令分為幾個機器周期。每個機器周期完成一個基本操作。MCS-51單片機每12個振蕩周期為一個機器周期,一個機器周期分為6個狀態(tài):S1~S6。每個狀態(tài)又分為兩拍:P1和P2。因此,一個機器周期中的12個振蕩周期表示為:S1P1、S1P2、S2P1、S2P2、…、S6P2。

三、指令周期執(zhí)行一條指令時,可分為取指令階段和指令執(zhí)行階段。取指令階段,PC中地址送到程序存儲器,并從中取出需要執(zhí)行指令的操作碼和操作數(shù)。指令執(zhí)行階段,對指令操作碼進行譯碼,以產(chǎn)生一系列控制信號完成指令的執(zhí)行。ALE信號是為地址鎖存而定義的,以時鐘脈沖1/6的頻率出現(xiàn),在一個機器周期中,ALE信號兩次有效(注意,在執(zhí)行訪問外部數(shù)據(jù)存儲器的指令MOVX時,將會丟失一個ALE脈沖)8051X2X1VssTTL外接時鐘源Vcc時鐘電路需外接晶振的頻率1.2~12MHZ,C1和C2取30±10PFX1X2C2

C1X

8051振蕩電路S1S2S3S4S5S6S1S2P1P2P1P2P1P2P1P2P1P2P1P2P1P2P1P2fosc一個狀態(tài)周期一個機器周期T=12*(1/fosc)X2CPU的時序(時鐘周期、狀態(tài)周期、機器周期)若外接晶振為12MHz時,則單片機的四個周期的具體值為:

時鐘周期=1/12MHz=1/12μs=0.0833μs

狀態(tài)周期=1/6μs=0.167μs

機器周期=1μs

指令周期=1~4μs可用于計算指令、程序的執(zhí)行時間,以及定時器的定時時間2.7復位操作和復位電路2.7.1復位操作單片機的初始化操作,擺脫死鎖狀態(tài)。

引腳RST加上大于2個機器周期(即24個時鐘振蕩周期)的高電平就可使MCS-51復位。復位時,PC初始化為0000H,使MCS-51單片機從0000H單元開始執(zhí)行程序。

除PC之外,復位操作還對其它一些寄存器有影響,見(P26)。SP=07H,P0-P3的引腳均為高電平。

在復位有效期間,ALE腳和PSEN*腳均為高電平,內(nèi)部RAM的狀態(tài)不受復位的影響。MCS-51單片機各寄存器的復位狀態(tài)

00HTCON0000HPC

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

×××00000BIP00HSCON0FFHP0~P300HTH10000HDPTR00HTL107HSP00HTH000HPSW00HTL000HACC復位狀態(tài)寄存器復位狀態(tài)寄存器2.7.2復位電路上電自動復位和按鈕復位

最簡單的上電自動復位電路:按鍵手動復位,有電平方式和脈沖方式兩種。電平方式脈沖方式作業(yè)2-22-42-71、單片微型計算機由CPU、存儲器和________三部分組成。2、MCS-51單片機內(nèi)部RAM的位尋址區(qū)為__________。3、MCS-51系統(tǒng)中,當信號有效時,表示

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論