第二章51結構與時序_第1頁
第二章51結構與時序_第2頁
第二章51結構與時序_第3頁
第二章51結構與時序_第4頁
第二章51結構與時序_第5頁
已閱讀5頁,還剩71頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第二章MCS—51單片機結構與時序

12.1MCS—51系列單片機內部結構2.1.1MCS-51單片機內部結構

MCS-51單片機的系統結構框圖如圖2.1所示。

251單片機結構框圖MCS-51CPU振蕩器和時序OSC64KB總線擴展控制器數據存儲器128BRAM/SFR2×16位定時器/計數器可編程I/O程序存儲器4KBROM可編程全雙工串行口外中斷內中斷控制并行口串行通信外部時鐘源外部事件計數返回由圖2.1可以看出,單片機內部主要包含下列幾個部件:u

一個8位CPU;u

一個時鐘電路;u

4Kbyte程序存儲器;u

128byte數據存儲器;u

兩個16位定時/計數器;u

64Kbyte擴展總線控制電路;u

四個8-bit并行I/O端口;u

一個可編程串行接口;五個中斷源,其中包括兩個優先級嵌套中斷

4二、結構組成(一)、中央處理單元(CPU)(二)、存儲器(三)、I/O接口返回5(一)、中央處理單元(CPU)1.運算器返回2.控制器61.運算器(1)8位的ALU(算術邏輯運算單元):返回(2)8位累加器ACC(A):(3)8位程序狀態寄存器PSW:(4)8位寄存器B:(5)布爾處理器:(6)2個8位暫存器:71.運算器可對4位、8位、16位數據進行操作。能做加減乘除、加1、減1、BCD數十進制調整和比較等算術運算和“與”、‘或’、‘異或’、‘求補’機循環移位等邏輯操作返回(1)8位的ALU:81.運算器(2)8位累加器ACC(A):它經常作為一個運算數經暫存器2進入ALU的輸入端,與另一個來自暫存器1的運算數進行運算,運算結果又送回ACC。經常作為數據傳送的中轉站,是最忙碌的一個寄存器,指令中用A來表示。返回91.運算器指示指令執行后的狀態信息,相當于一般的微處理器的標志寄存器。PSW中各位狀態供程序查詢和判別用。(3)8位程序狀態寄存器PSW:返回10CY(PSW.7):進位標志位。在執行加法(或減法)運算指令時,如果運算結果最高位(位7)向前有進位(或借位),則CY位由硬件自動置1;如果運算結果最高位無進位(或借位),則CY清0。CY也是89C51在進行位操作(布爾操作)時的位累加器,在指令中用C代替CY。AC(PSW.6):半進位標志位,也稱輔助進位標志。當執行加法(或減法)操作時,如果運算結果(和或差)的低半字節向高半字節有半進位(或借位),則AC位將被硬件自動置1;否則AC被自動清0。F0(PSW.5):用戶標志位。用戶可以根據自己的需要對F0位賦予一定的含義,由用戶置位或復位,以作為軟件標志。11RS0和RS1(PSW.3和PSW.4):工作寄存器組選擇控制位。這兩位的值可決定選擇哪一組工作寄存器為當前工作寄存器組。通過用戶用軟件改變RS1和RS0值的組合,以切換當前選用的工作寄存器組。其組合關系如表2-7所列。89C51上電復位后,RS1=RS0=0,CPU自動選擇第0組為當前工作寄存器組。根據需要,可利用傳送指令對PSW整字節操作或用位操作指令改變RS1和RS0的狀態,以切換當前工作寄存器組。這樣的設置為程序中保護現場提供了方便。12OV(PSW.2):溢出標志位。當進行補碼運算時,如有溢出,即當運算結果超出-128~+127的范圍時,OV位由硬件自動置1;無溢出時,OV=0。PSW.1:為保留位。89C51未用,89C52為F1用戶標志位。P(PSW.0):奇偶校驗標志位。每條指令執行完后,該位始終跟蹤指示累加器A中1的個數。如結果A中有奇數個1,則置P=1;否則P=0。常用于校驗串行通信中的數據傳送是否出錯。131.運算器(4)8位寄存器B:

在乘除運算時,用來存放一個操作數也用來存放運算后的一部分結果;如不做乘除運算時,作為通用寄存器。141.運算器(5)布爾處理器:專門用于處理位操作的,以PSW中的CY(指令中用C代替CY)為其累加器。返回151.運算器(6)2個8位暫存器:ALU的兩個入口處。返回162.控制器(1)程序計數器PC(16位)(2)指令寄存器IR及指令譯碼器ID(3)振蕩器和定時電路返回(4)控制器電路還包括數據指針DPTR、堆棧指針SP、緩沖器以及定時與控制電路等。17(1)程序計數器PC(16位)由兩個8位計數器PCH、PCL組成。PC是程序的字節地址計數器,PC內容為將要執行的指令地址。改變PC內容,改變執行的流向。PC可對64KB的ROM直接尋址返回18(2)指令寄存器IR及指令譯碼器ID由PC中的內容指定ROM地址,取出來的指令經IR送至ID,由ID對指令譯碼產生一定序列的控制信號,以執行指令所規定的操作。返回19(3)振蕩器和定時電路89C51單片機片內有振蕩電路,只需外接石英晶體和頻率微調電容(2個30pF左右),其頻率范圍為1.2MHz~12MHz。該信號作為89C51工作的基本節拍即時間的最小單位。返回20堆棧指針SP(StackPointor)符合“先入后出”或“后入先出”規則的存儲區。SP的值始終指向棧頂。操作用PUSH和POP

如PUSHACC;SP先加1后存數

POPACC;SP先取數后減1

21數據指針DPTR

數據指針DPTR為一個16位的專用寄存器,其高位用DPH表示,其低位用DPL表示,它即既可以作為一個16位的寄存器來使用,也可作為兩個8位的的寄存器DPH和DPL使用。DPTR在訪問外部數據存儲器時既可用來存放16位地址,也可作地址指針使用。如MOVX@DPTR,A

表示A的值送入外部DPTR所對應的RAM地址中22(二)、存儲器1、程序存儲器(ROM)2、數據存儲器(RAM)返回233.MCS-51單片機系列

MCS-51可分為兩個子系列和4種類型,如表1-1所示。按資源的配置數量,MCS-51系列分為51和52兩個子系列,其中51子系列是基本型,而52子系列屬于增強型。MCS-51系列單片機分類241、程序存儲器(片內ROM)地址從0000H開始。用于存放程序和表格常數。在8051中,其片內有4K字節的ROM存儲單元,地址為0000H~0FFFH。8751有4K字節的EPROM,而8052和8752則有8K字節的片內存儲器。8031和8032無片內程序存儲器,所以片內程序存儲器的有無是區分芯片的主要標志。在程序存儲器中,以下6個單元具有特殊含義:返回25

0000H:單片機復位后,PC=0000H,程序從0000H開始執行指令。

0003H:外部中斷0入口地址。

000BH:定時器0中斷入口地址。

0013H:外部中斷1入口地址。

001BH:定時器1中斷入口地址。

0023H:串行口中斷入口地址。

002BH:定時器2中斷入口地址。

在系統中斷相應之后,將自動轉各中斷入口地址處執行程序,而中斷服務程序一般無法存放于幾個單元之內,因此在中斷入口地址處往往存放一條無條件轉移指令進行跳轉,以便執行中斷服務程序。

26存儲器的結構圖

272、數據存儲器(片內RAM)地址為00H~FFH。用于存放運算的中間結果、數據暫存以及數據緩沖等。返回281.

存儲器地址分配(片內ROM、片外RAM、片內RAM)圖2.3MCS-51的存儲器結構如2.1.2存儲器結構292.片內RAM圖2.4MCS-51片內RAM的空間分配30存儲器的結構圖

31

低128單元是單片機的真正RAM存儲器。1、內部數據存儲器低128單元51子系列32分為三個區域:A、寄存器區:

4組寄存器(寄存器陣列)。即4個工作寄存器0區~3區。每組

8個寄存單元(每單元8位),以R0~R7作寄存器名,暫存運算數據和中間結果。字節地址為00H~1FH。B、位尋址區:

字節地址為20H~2FH,既可作RAM,也可位操作。共有16個RAM單元,共128位,位地址為00H~7FH。C、用戶RAM區:

32個單元,地址為30H~7FH,在一般應用中常作堆棧區。用PSW中的兩位PSW.4和PSW.3來切換工作寄存器區,選用一個工作寄存器區進行讀寫操作。33圖2-8低128字節RAM區圖2-9高128字節RAM區(SFR區,特殊功能寄存器區)3435

在工作寄存器后的16個數據單元(20H~2FH),它們既可以作為一般的數據單元使用,也可以按位對每個單元進行操作,因此這16個數據單元又稱作位尋址區。位尋址區共計128位,其位地址為00H~7FH。位地址的表示方法是采用字節地址和位數相結合的方法。如位地址00H可以表示為20H.0(見表2-4)

剩余的80個數據單元即30H~7FH為真正的用戶RAM區,對于這些區域,用戶只能以存儲單元的形式來使用,通常在應用中也把堆棧開辟在這段區域。36圖2-8低128字節RAM區圖2-9高128字節RAM區(SFR區,特殊功能寄存器區)37(2).

內部數據存儲器高128單元SFR內部數據存儲器的高128個單元是為專用寄存器提供的,因此該區也稱作特殊功能寄存器區(SFR)它們主要用于存放控制命令、狀態或數據。除去程序計數器PC外,還有21個特殊功能寄存器,其地址空間為80H~FFH。這21個寄存器中有11個特殊功能寄存器具有位尋址能力,它們的字節地址剛好能被8整除。8952的SFR見表2-338圖2-8低128字節RAM區圖2-9高128字節RAM區(SFR區,特殊功能寄存器區)3940堆棧和數據緩沖實際應用中,往往需要一個先進后出的RAM緩沖器用于保護CPU現場,這種后進先出的緩沖器稱為堆棧。51的堆棧原則上可設在內部RAM(0-7F或0-FF)的任意區域。但由于00-2FH區域的特殊功能,堆棧一般設在30H-7FH或30H-FFH范圍內。內部RAM中除了作為工作寄存器、位標志、堆棧區以外的單元都可以作為數據緩沖器使用。41(1)累加器ACC(E0H)累加器ACC是89C51最常用、最忙碌的8位特殊功能寄存器,許多指令的操作數取自于ACC,許多運算中間結果也存放于ACC。在指令系統中用A作為累加器ACC的助記符。42(2)寄存器B(F0H)在乘、除指令中,用到了8位寄存器B。乘法指令的兩個操作數分別取自A和B,乘積存于B和A兩個8位寄存器中。除法指令中,A中存放被除數,B中放除數,商存放于A,B中存放余數。在其他指令中,B可作為一般通用寄存器或一個RAM單元使用。43(3)程序狀態寄存器PSW(D0H)PSW是一個8位特殊功能寄存器,它的各位包含了程序執行后的狀態信息,供程序查詢或判別之用。各位的含義及其格式如表2-6所列。PSW除有確定的字節地址(D0H)外,每一位均有位地址.44(4)棧指針SP(81H)堆棧指針SP為8位特殊功能寄存器,SP的內容可指向89C51片內00H~7FHRAM的任何單元。系統復位后,SP初始化為07H,即指向07H的RAM單元。45SP的操作規則堆棧指針SP(8位):MCS—51系列的堆棧是按“先進后出”原則存取數據的存儲區。MCS—51堆棧設在片內RAM區。數據入棧時:先SP自動加1,后寫入數據,SP始終指向棧頂地址。

——“先加后壓”數據出棧時:先讀出數據,后SP自動減1,SP始終指向棧頂地址。

——“先彈后減”46在圖2-10中,假若有8個RAM單元,每個單元都在其右面編有地址,棧頂由堆棧指針SP自動管理。每次進行壓入或彈出操作以后,堆棧指針便自動調整以保持指示堆棧頂部的位置。這些操作可用圖2-10說明。圖2-10堆棧的壓入與彈出(5)數據指針DPTR(83H,82H)DPTR是一個16位的特殊功能寄存器,其高位字節寄存器用DPH表示(地址83H),低位字節寄存器用DPL表示(地址82H)。DPTR既可以作為一個16位寄存器來處理,也可以作為兩個獨立的8位寄存器DPH和DPL使用。DPTR主要用于存放16位地址,以便對64KB片外RAM作間接尋址。48(6)I/O端口P0~P3(80H,90H,A0H,B0H)P0~P3為4個8位特殊功能寄存器,分別是4個并行I/O端口的鎖存器。它們都有字節地址,每一個口鎖存器還有位地址,每一條I/O線均可獨立用作輸入或輸出。用作輸出時,可以鎖存數據;用作輸入時,數據可以緩沖。圖2-11所示為各個SFR所在的字節地址位置。空格部分為未來設計新型芯片可定義的SFR位置。49圖2-11特殊功能寄存器SFR的位置501.并行I/O口

MCS-51單片機共有4個8位的I/O口(P0、P1、P2和P3),每一條I/O線都能獨立地用作輸入或輸出。P0口為三態雙向口,能帶8個TTL門電路,P1、P2和P3口為準雙向口,負載能力為4個TTL門電路。使用時注意P3口的第二功能,P0口應外接上拉電阻。

2.1.3I/O端口準雙向口:I/O口操作時做數據輸入時需要對其置1,否則若前一位為低電平,后一位輸入的電平為高則MOS管拉不起來導致出錯。而雙向口則不需要做此動作,因為雙向口有懸浮態。準雙向口就是做輸入用的時候要有向鎖存器寫1的這個準備動作,所以叫準雙向口。真正的雙向口不需要任何預操作可直接讀入讀出。51

P3口還具有第二功能,其引腳描述如表2-2。表2-2P3口特殊功能522.串行I/O口

MCS-51單片機具有一個采用通用異步工作方式的全雙工串行通信接口,可以同時發送和接收數據。由RXD和TXD收發數據(存入緩沖寄存器SBUF中)。532.1.4定時器/計數器

在MCS-51中,除8032/8052外都只有兩個16位定時器/計數器T0和T1,它們由兩個相互獨立的8位寄存器組成TH和TL,共有四個獨立的寄存器TH0、TL0、TH1和TL1,只可對這四個寄存器獨立尋址,而不能作為一個16位寄存器來尋址。

52系列增加了一個多功能定時器,相應增加了6個特殊功能寄存器54

51子系列共有5個中斷源,即外中斷2個,定時/計數中斷2個,串行中斷1個。中斷系統主要有IE中斷允許控制器和中斷優先級控制器IP等電路組成。2.1.5中斷系統552.2MCS—51單片機引腳功能圖2.9為MCS-51系列單片機引腳圖及邏輯符號,它們為標準的40腳DIP封裝。

圖2.9MCS-51系列單片機引腳圖及邏輯符號56

電源引腳Vcc和VssVcc:電源端,接+5V。Vss:接地端。

時鐘電路引腳XTAL1和XTAL2XTAL1:接外部晶振和微調電容的一端,在片內它是振蕩器倒相放大器的輸入,若使用外部TTL時鐘時,該引腳必須接地。XTAL2:接外部晶振和微調電容的另一端,在片內它是振蕩器倒相放大器的輸出,若使用外部TTL時鐘時,該引腳為外部時鐘的輸入端。

地址鎖存允許ALE/PROG系統擴展時,ALE用于控制地址鎖存器鎖存P0口輸出的低8位地址,從而實現數據與低位地址的復用。PROG:是對片內flash編程寫入時的編程脈沖輸入端。

57

外部ROM讀選通信號/PSEN

是讀外部程序存儲器的選通信號,低電平有效。在訪問片外ROM時,定時輸出負脈沖作為讀片外ROM的選通信號,接片外ROM的OE端。允許訪問片外存儲器

EA/VPP

當為高電平時,CPU執行片內程序存儲器指令,但當PC中的值超過0FFFH時,將自動轉向執行片外程序存儲器指令。當為低電平時,CPU只執行片外程序存儲器指令。Flash編程方式時,該引腳費編程電源輸入端Vpp復位信號RST

該信號高電平有效,在輸入端保持兩個機器周期的高電平后,就可以完成復位操作。輸入/輸出口引腳P0、P1、P2和P3582.2.28051對片外存儲器的連接在MCS-51中,其片外存儲器與片內存儲器空間0000H~FFFFH部分是重疊的。在8051單片機中采用MOV和MOVX兩種指令來區分片內外RAM空間,其中片內RAM使用MOV指令,片外RAM使用MOVX指令。用MOVC對ROM空間進行操作。如:MOVCA,@A+DPTRMOVX@DPTR,AMOVXA,@DPTR59

2.3MCS-51單片機工作方式

2.3.1復位方式

A.復位

在復位輸入端加上高電平,MCS-51將被初始化復位,

此時有關寄存器狀態如下:

PC:0000H

SP:07H

PO-P3:FFH

A.B.PSW.IP.IE:00H

TMOD.TCON.TH0.TL0.TH1.TL1.SCON:00H

DPTR:0000H

RES端由高變低后,MCS-51將退出復位,從0000H開始

執行程序。

60B.復位電路

上電復位電路:手動復位電路:61

系統復位電路:

專用芯片有MAX708。

62

C.看門狗電路

看門狗電路是一個定時產生復位信號的電路。在正

常工作情況下,軟件不斷產生復位定時器信號,看

門狗電路無輸出;一旦單片機由于干擾進入程序死

循環后,看門狗電路將定時輸出一RES信號,使系統

復位,從而使程序脫離死循環。

555單穩態觸發器單穩態輸出低電平632.3.2程序執行方式1.單步執行方式利用單片機外部中斷功能實現的。2.連續執行方式(正常工作時)從PC=0000H開始一條一條的執行。完成取指令,譯指令,執行三個過程。642.3.3單片機的低功耗方式對于MCS-51系列機型來說,它們有待機方式和掉電保護方式兩種低功耗方式。通過設置電源控制寄存器PCON的相關位可以確定當前的低功耗方式。PCON寄存器格式如下:

其中SMOD:波特率倍增位

GF0,GF1:通用標志位

PD:掉電方式位,PD=1為掉電方式

IDL:待機方式位,IDL=1為待機方式6589c51單片機的低功耗工作方式89C51提供兩種節電工作方式,即空閑(等待、待機)方式和掉電(停機)工作方式圖2-17所示為實現這兩種方式的內部電路。由圖2-17可見,若IDL=0,則89C51將進入空閑運作方式。在這種方式下,振蕩器仍繼續運行,但IDL封鎖了去CPU的“與”門,故CPU此時得不到時鐘信號。而中斷、串行口和定時器等環節卻仍在時鐘控制下正常運行。掉電方式下(PD=0),振蕩器凍結。圖2-17中,PD和IDL均為PCON中PD和IDL觸發器的輸出端。661.

待機方式將PCON寄存器的IDL位置“1”,單片機則進入待機方式。通常在待機方式下,單片機的中斷仍然可以使用,這樣可以通過中斷觸發方式退出待機模式。2.

掉電保護方式將PCON寄存器的PD位置“1”,單片機則進入掉電保護方式。如果單片機檢測到電源電壓過低,此時除進行信息保護外,還需將PD位被置“1”,使單片機進入掉電保護方式。退出掉電保護只能是外部復位.672.4MCS-51單片機時序1.時鐘電路根據硬件電路的不同,單片機的時鐘連接方式可分為內部時鐘方式和外部時鐘方式,如圖2.7所示。

(a)內部方式時鐘電路

(b)外接時鐘電路

圖2.11時鐘電路

電容器C1和C2通常取30pF左右,可穩定頻率并對振蕩頻率有微調作用。振蕩脈沖頻率范圍為fOSC=0~60MHz。68

89C51的片內振蕩器及時鐘發生器691.節拍與狀態周期時鐘發生器是一個2分頻的觸發器電路,它將振蕩器的信號頻率fOSC除以2,向CPU提供兩相時

溫馨提示

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

最新文檔

評論

0/150

提交評論