1. 程式人生 > 實用技巧 >MCS-51硬體內部資源基礎

MCS-51硬體內部資源基礎

MCS-51硬體內部資源基礎

MCS-51微控制器基本組成

Micro Controller System

MCS-51是指由美國INTEL公司生產的一系列微控制器的總稱。這一系列微控制器包括了好些品種,如8031、8051、8751、8032等,其中8051是最早最典型的產品。該系列其它微控制器都是在8051的基礎上進行功能的增、減、改變而來的,所以人們習慣於用8051來稱呼MCS-51微控制器。

它由多個部件組成,即中央處理器(CPU)、程式儲存器(ROM / RPROM)、並行I/O口(P0~P3)、序列通訊口、定時器/計數器以及內外中斷系統。這些部件通過匯流排連線,並被整合在一塊半導體晶片上,即為微控制器。

一、中央處理器

中央處理器是微控制器的內部的核心部件,它決定了微控制器的主要功能特性,由運算器和控制器兩大部分組成。

  • 運算器

運算器是計算機的運算部件,用於實現算術邏輯運算為變數處理。移位和資料傳送等操作。它是由算術邏輯單元ALU為核心、加上累計器ACC、暫存器B、程式狀態字PSW、以及十進位制調整電路和專門用於位操作的布林處理器等組成的。

(1)算術邏輯單元ALU ( Arthmetic Logie Unit)

算術邏輯單元ALU (8位)用來完成二進位制數的四則運算和布林代數的邏輯運算。此外,通過對運算結果的判斷影響程式狀態標誌暫存器的有關標誌位。

(2)累加器ACC (Accumolaor)

累加器ACC為8位暫存器,是CPU中使用最頻繁的暫存器。它既可用於存放運算元,也可用來存放運算的中間結果。MCS-51 中大部分單操作機指令的運算元就取自ACC,許多雙運算元指令中的一個運算元也取自ACC。微控制器中的大部分資料操作都是通過ACC通過的進行的。

(3)暫存器B

暫存器B是個8位暫存器。是為ALU進行醫除運算設定的。在執行要乘法運算指令時,暫存器B用於存放其中一個乘數和乘積的高8位數;在執行除法運算時,暫存器B用於存放除數和餘數。此外,B暫存器也可作為一般的資料暫存器使用。

(4)程式狀態字PSW (Program Suatus Word)

PSW 是一個8位特殊功能暫存器,它的各位包含了程式執行的狀態資訊,以供程式查詢和判斷。PSW的格式和含義如下:

PSW位地址位元組地址DOH
D7HCY
D6HAC
D5HF0
D4HRS1
D3HRS0
D2HOV
D1HF1
D0HP
  1. CY (PSW. 7):進位標誌位。Cy是PSW中最常用的標誌位,由硬體或軟體置位和清零。它表示運算結果是否有進位(或借位)。如果運算結果在最高位有進位輸出( 加法時)或有借位輸人(臧法時),則Cy由硬體置“1”,否則Cy被清“0"。
  2. AC (PSW. 6):輔助進位(或稱半進位)標誌。當執行加減運算時,運算結果產生低4位向高4位進位或借位時,AC由硬體置“1";否則AC位被自動清"0" 。
  3. F0 (PSW.5):使用者標誌位使用者。使用者可根據自己的需要對F0位賦予定的含義, 由使用者置位或復位,作為軟體標誌。
  4. RSI和RSO (PSW.4, PsW.3):工作暫存器組選擇位。這兩位的值決定選擇哪一組工作暫存器為當前工作暫存器組。由使用者通過軟體改變RSI和RS0值的組合,以切換當前選用的工作暫存器組。其組合關係見表2-1:

工作暫存器組組合關係

RS1RS0暫存器組片內RAM地址
00第0組00H~07H
01第1組08H~0FH
10第2組10H~17H
11第3組18H~1FH
  1. OV (PSW 2):灌出標誌位,它反映運算結果是否溢位,溢位時則由硬體將OV位1"I", 否則置“0"。
  2. F1 (PSW.1):使用者標誌位,同F0 (PStW.5).
  3. P(PSW.0):此位為奇偶標誌位。P標誌表明ACC中“1”的個數的奇偶性。在條指令執行完後,微控制器根據ACC的內容對P位自動置位或復位。若ACC中有奇數“1",則P=1;若ACC中有偶數個“1”,則P=0。

(5)布林處理器

8051的CPU是8位微處理器,它還具有1位微處理器的功能。布林處理器具有較強的布林變數處理能力,以位(bit) 為單位進行運算和操作。它以進位標(Cy)作為累加位,以內部RAM中所有可位定址的位作為操作位或儲存位,以P0~P3的位作為I/O摳位,同時自己也有指令系統。

  • 控制器

控制器是計算機的控制部件,它對來自儲存器中的指令進行譯碼, 並通過定時和控制電路在規定的時刻發出各種操作所需要的控制訊號,使各部件協調工作,完成指令所規定的操作。

(1)程式計數器PC

PC是一個16位計數器,實際上PC是程式儲存器的位元組地址計數器, 其內容是將要執行的下一條指令的地址,定址範圍達64KB。PC具有自動加1功能,從而實現程式的順序執行。可以通過轉移、呼叫、返回等指令改變其內容,以實現程式的轉移。

(2)資料指標DPTR

DPTR為16位暫存器它的功能是存放16位的地址,作為訪問外部程式儲存器和外部資料儲存器時的地址。程式設計時,DPTR 既可按16位暫存器使用,也可以按兩個8位暫存器分開使用,即DPH為DPTR的高8位,DPL為DPTR的低8位。

二、儲存器結構

8051在系統結構上採用的哈佛型,與馮·諾依曼型結構( 程式和資料共用一個儲存器)的通用計算機不同,它將程式和資料分別儲存在兩個儲存器內,一個稱為程式儲存器(read only memery),另一個稱為資料儲存器(random access memory)。

物理結構上分:片內ROM、片外ROM、片外RAM,片內RAM。

邏輯結構上分:片內外統一編址64k的ROM(0000H~FFFFH)、256B的片內RAM(00H ~ FFH)、片外RAM(0000H ~ FFFFH)。

在這裡插入圖片描述

(1)ROM

為了讀取ROM中的指令,設定了一個專用暫存器 程式計數器(PC),用以存放要執行的指令地址。每取出指令的1個位元組後,其內容自動加1,指向下一位元組地址,依次使CPU從程式儲存器取指令並加以執行。定址程式儲存器的唯一方式是通過PC。由於51微控制器的程式計數器為16位,所以,可定址的程式儲存器地址空間為64KB。

片外程式儲存器與片內程式儲存器的編址是可以重疊的,通過EA的換接可實現分別訪問。當引腳A接高電平時,程式計數器PC在0000H ~ 0FFFH範圍內(即前4KB地址) 執行片內ROM中的程式,當指令地址超過0FFFH後,就自動地轉向片外ROM,從1000H開始取指令。當引腳EA接低電平,CPU只能從片外程式儲存器中取指令,地址從0000H開始,對於片內無程式儲存器的51微控制器如8031,EA應接低電平;對於片內有程式儲存的51微控制器,如果EA引腳接低電平,將強行執行片外ROM程式

(2)片內RAM

最大256B,分為低128B單元和高128B單元

  1. 低128B單元
    1、工作暫存器(00H~1FH)
    分期為四組暫存器單元,可以用PSW的RS1、RS0來決定那一組暫存器單元
    2、位定址區(20H~2FH)
    3、使用者RAM區(30H~7FH)
  2. 高128B單元
    除了程式計數器PC外,還有21個特殊功能暫存器,又稱專用暫存器SFR

在這裡插入圖片描述

在這裡插入圖片描述
(3)片外RAM

使用者可根據需要確定擴充套件儲存器的容量,8051 訪問片外RAM可用1個特殊功能暫存器資料指標暫存器 DPTR定址。由於DPTR為16位,可定址的範圍為0-64KB。因此,擴充套件片外RAM的最大容量是64KB,片外RAM地址範圍為0000H~OFFFH,其中在0000H-0FFFH區間與片內RAM的空間是重疊的。CPU 使用MOV指令和MOVX指令加以區分。

(4)堆疊和堆疊指標

堆疊是一種資料結構。 所謂堆疊就是隻允許在其一端進行資料插入和資料刪除操作的線性表。資料寫人堆疊稱為插入運算(PUSH), 也叫入棧。資料從堆疊中讀出稱為刪除運算(POP),也叫出棧。堆疊的最大特點就是“後進先出”,

1、堆疊的功能
堆疊是為程式呼叫和中斷操作而設立的,具體功能建保護斷點和保護現場。
2、堆疊指標SP
8051堆疊指標SP為8位。在程式設計時應注意SP的初化值。
3、堆疊使用方式
堆疊的使用有兩種方式。一種是自動方式。即在呼叫子程式時,斷點地址自動進棧,程式返回時,斷點地址再自動彈回PC。這種操作無需使用者干預。另一種是指令方式,即使用專用的堆疊操作指令,執行進出棧操作。