天天看點

8051單片機基礎2:核心和存儲器(RAM,Flash)架構一、CPU(運算器、控制器)二、存儲器(内部RAM、擴充RAM、Flash)三、特殊功能寄存器

文章目錄

  • 一、CPU(運算器、控制器)
    • 1. 運算器
      • 1)算術/邏輯單元 ALU
      • 2)累加器ACC
      • 3)寄存器B
      • 4)程式狀态字寄存器 PSW
    • 2. 控制器
      • 1)程式計數器 PC
      • 2)指令通道
        • a. 取指單元
        • b. 譯碼單元
        • c. 執行指令單元
      • 3)雙資料指針 DPTR
      • 4)堆棧指針 SP
  • 二、存儲器(内部RAM、擴充RAM、Flash)
    • 1. 内部RAM
    • 2. 擴充RAM
    • 3. 程式存儲器Flash
  • 三、特殊功能寄存器
    • 關于作者

參考資料:

① Keil > Help

②《STC單片機原理及應用——從器件、彙編、C到作業系統的分析和設計》何賓著

③《MCS-51系列單片機及其應用(第6版)》孫育才、孫華芳著

在8051單片機架構中,主要包含:

  1. CPU(運算器、控制器)
  2. 存儲器(内部RAM、擴充RAM、Flash)
  3. 特殊功能寄存器
  4. 其他:外設、時鐘系統等
8051單片機基礎2:核心和存儲器(RAM,Flash)架構一、CPU(運算器、控制器)二、存儲器(内部RAM、擴充RAM、Flash)三、特殊功能寄存器
經典8051單片機内部結構
8051單片機基礎2:核心和存儲器(RAM,Flash)架構一、CPU(運算器、控制器)二、存儲器(内部RAM、擴充RAM、Flash)三、特殊功能寄存器
8051存儲器結構和位址空間

一、CPU(運算器、控制器)

運算器和控制器構成了8051中央處理單元(Central Processing Unit, CPU)

1. 運算器

  單片機的運算器主要包括8位算術/邏輯運算部件、累加器A、寄存器B、程式狀态寄 存器等。其功能是實作資料的算術/邏輯運算(資料處理)和資料傳輸等操作。

1)算術/邏輯單元 ALU

  在8051 CPU内的運算器中,最核心的部件就是算術邏輯單元(Arithmetic and Logic Unit,ALU),ALU寬度為8位。它的主要功能是實作8位加、減、乘和除運算,“與”、“或”、“異或”邏輯運算,包括位操作以及循環、清“0”、置“1”、加“1”、 減“1”等若幹基本操作。

2)累加器ACC

  累加器(Accumulator,ACC)是一個常用的專用寄存器,指令系統中采用 A 作為累加器的助記符,常用于存放算術或邏輯運算的操作數及運算結果。

3)寄存器B

  寄存器B 在乘除法運算中需要和 ACC 配合使用,其他情況下,B寄存器還可以用作通用暫存寄存器。

4)程式狀态字寄存器 PSW

  在程式狀态字(Program Status Word,PSW)在 CPU 做算術運算或者邏輯運算時,對應的 PSW 狀态位會發生改變。

2. 控制器

1)程式計數器 PC

  程式計數器(Program Counter,PC),用于存放下一條即将從程式存儲器中讀取的指令的位址,不斷地從程式存儲器中讀取指令代碼,進而實作計算機自動而連續地執行指令、運作程式。PC中内容(位址碼)的變化決定程式運作的流向。

  程式計數器的寬度為16位,決定單片機對程式存儲器可以尋址的範圍,即可尋址的程式存儲器的容量最大為64KB。

  程式計數器并不能總是讓程式位址寄存器遞增。這是因為,機器指令可以分成順序執行和跳轉執行兩種情況。

2)指令通道

a. 取指單元

  根據PC所指向的存放指令程式存儲器的位址,取出指令。8051的機器指令有8位、16位或24位。

b. 譯碼單元

  根據取出指令的操作碼部分,轉換成 一系列的邏輯控制序列,這些控制序列将直接控制CPU内的運算單元。

c. 執行指令單元

  根據邏輯控制序列(微指令)所産生的邏輯行為,控制運算器單 元,進而完成指令需要實作的操作行為。

3)雙資料指針 DPTR

  雙資料指針(DPTR)是一個16位的專用寄存器,由DPL和DPH組成。它的主要功能是用來尋址外部資料存儲器的16位位址寄存器,也可尋址存放在64KB程式存儲器中固定資料。

4)堆棧指針 SP

  堆棧指針 SP 是一個 8 位專用寄存器,它訓示出堆棧頂部在内部 RAM 塊中的位置。

二、存儲器(内部RAM、擴充RAM、Flash)

  8051架構的單片機存儲器主要包括:内部RAM、擴充RAM、特殊功能寄存器和程式存儲器Flash。

1. 内部RAM

  内部RAM最大支援256位元組的存儲空間;讀取資料非常快,是因為可以通過8位位址直接通路;

  低128位元組可以直接尋址(data),也可以間接尋址(idata);其中的20H~2FH空間,可以通過位尋址;

  高128位元組隻能間接尋址;當直接尋址通路時,會自動映射到SFR空間;

  C51編譯器提供3種不同的記憶體類型來通路内部RAM空間:data, idata和bdata;

關鍵字 指向内部RAM區域 尋址方式
data 低128位元組 直接尋址
idata 所有256位元組 間接尋址
bdata 指向20H~2FH空間 可以按位讀寫

2. 擴充RAM

  通路擴充RAM區域時,通過一個資料指針寄存器進行間接通路,是以讀寫速度要比内部RAM區域慢。

  擴充RAM區域最大支援64K位元組存儲空間,但是這些位址不一定全部用于記憶體空間,一些8051單片機會把外設位址映射到擴充RAM區域。

  C51編譯器提供2中不同的記憶體類型來通路擴充RAM空間:xdata和pdata:

關鍵字 指向外部RAM區域 尋址方式
xdata 所有64K位元組空間 間接尋址
pdata 一個頁(256位元組)的空間 間接尋址

3. 程式存儲器Flash

  8051架構支援最大64K位元組的Flash空間。

  程式代碼是存儲在Flash空間的,8051隻能執行存儲在Flash中的代碼。常數變量也可以存儲在Flash空間。

  通路Flash空間的方式是使用MOVC指令間接尋址,不能直接尋址;

三、特殊功能寄存器

  8051架構提供128位元組的記憶體空間給特殊功能寄存器(SFR),SFR 和高 128 位元組内部 RAM 共用位址 80H ~ FFH, 隻能直接尋址。

  它是多個控制寄存器和狀态寄存器的集合,用于對單片機内的各個功能子產品進行管理、控制和監視。

本文完~

關于作者

微信公衆号:螢火蟲的電子筆記

分享嵌入式軟體、硬體知識;

關注8051單片機、STM32、Linux、AltiumDesigner、Vscode、Keil和物聯網等相關領域。

歡迎轉發,請注明出處及作者。關注微信公衆号,擷取最新文章動态。

8051單片機基礎2:核心和存儲器(RAM,Flash)架構一、CPU(運算器、控制器)二、存儲器(内部RAM、擴充RAM、Flash)三、特殊功能寄存器

繼續閱讀