嵌入式——MCS-51單片機的硬件結構

1. 硬件結構整體概述

1.1 簡圖概述

單片機主要由:CPU,存儲器,IO接口三者構成
在這裏插入圖片描述
在這裏插入圖片描述

1.2 個人的總結看法

單片機結構 人體結構 詳情
CPU 大腦負責思考的部分 包括運算器和控制器
存儲器 大腦負責記憶的部分 包括數據存儲器和程序存儲器
時鐘與震盪器 相當於心臟 頻率與性能相關
IO接口 類似神經反射中的感受器和效應器 包括串行和並行接口
總線 人體的神經和血管 包括數據總線,地址總線,控制總線

1.3 詳細結構框圖

在這裏插入圖片描述
下面根據這個框圖對每個部分的結構進行講解

2. 中央處理器CPU

CPU內部的結構可以大致分成3個部分:運算器,控制器,和一些通用寄存器

2.1 運算器——進行運算

組成部件 描述
算術邏輯單元ALU 進行算術運算,邏輯運算
累加器ACC(8位) 需要ALU處理的數據和運算結果多經過A
寄存器B(8位) 與A配合執行乘除運算,也可以作爲通用寄存器
程序狀態字PSW(8位) 存放ALU運算過程的標誌轉檯CY,AC,F0,RS1,RS0,OV,F1,P

2.2 通用寄存器——暫時存放數據(這應該屬於存儲器部分)

工作寄存器R0-R7(8位)
暫時存儲運算數據和中間結果,有四個工作寄存器區,通過PSW.4(RS0)和PSW.3(RS1)來切換,選用
在這裏插入圖片描述

程序狀態字與工作寄存器組的對應關係

在這裏插入圖片描述

2.3 控制器——對指令進行處理

組成部分 描述
時鐘電路 分內部時鐘電路和外部震盪源
復位電路 使電路恢復稱起始狀態
指令寄存器 存放指令代碼
指令譯碼器 對指令進行譯碼,譯碼之後有定時和控制電路發出相應的控制信號
程序計數器PC(16位) PC用來存放CPU下一條要執行的指令地址,PC內容送到地址總線,CPU讀取指令,PC自動加1,復位時PC=0000H
堆棧指針SP(8位) MCS-51的堆棧設在片內RAM,用於子程序調用及返回中斷處理斷點的保護和返回數據入棧出棧時,SP自動加減1,其內容始終爲棧頂地址,復位時SP=07H
數據指針DPTR(16位) 存放片外存儲器地址,作爲片外存儲器的指針,可以分爲兩個八位寄存器DPH,DPL使用
來自wave仿真器的截圖

在這裏插入圖片描述

3. 存儲器的結構

總體框架

單片機的存儲器可以分爲三個部分:程序存儲器(64KB),內部數據存儲器(256B),外部數據存儲器(64KB)
(存儲器及其大小的理解,以程序存儲器爲例子,程序存儲器就相當於一棟大樓,這棟大樓一共有64K(2162^{16})個房間,每個房間可以存放一個字節(8個2進制數)的數據,相當於有8個牀位(有人是1,沒人是0)
在這裏插入圖片描述

3.1 程序存儲器

對於8051來說, 程序存儲器(ROM)的內部地址爲 0000H~0FFFH, 共 4 KB; 外部地址爲 1000H ~ FFFFH, 共 60 KB。 當程序計數器由內部 0FFFH執行到外部 1000H 時, 會自動跳轉。

按字節存放,64K的地址,存儲空間是64KB
也有一些沒有內部程序存儲器,如8031.

補充說明:ROM(read only menmory),這種存儲單元不會因爲掉電而消失,ROM有MASKROM.PROM,EPROM,EEPROM,FLASH,當需要需要頻繁的重寫,就要採用EEPROM,或是FLASH,因爲FLASH擦寫速度快,所以一般採用FLASH。

3.2 內部數據存儲器

從00H到0FFH一共256個字節,低128個字節(00H-7FH)爲整整的RAM區,高128字節(80H-FFH)爲特殊功能寄存器SFR

RAM區(低128字節)

3.2.1 (00H-1FH)通用工作寄存器

在低128個字節RAM中,00H-1FH共32個單元是4個通用工作寄存器區。每一個區有8個通用寄存器R0-R7,地址對應關係如下
在這裏插入圖片描述

3.2.2 (20H-2FH)位尋址區

可以當成一般的開放區使用,也可以通過地址映射表進行位操作

位尋址對應的地址圖

在這裏插入圖片描述

3.2.3 (30H-7FH)開放區

這部分區域“痛快的”開放給用戶使用,用戶直接對該區域進行寫入與讀取。

特殊功能寄存器SFR

各個特殊功能寄存器在內存(80H-0FFH)的分佈如下,但是要注意,這部分寄存器是分散地分佈,但是沒有被佔用的地址一般不會用作一般開放區,因爲這些地址有可能不存在。

各個特殊功能寄存器的分佈位置

在這裏插入圖片描述

各個寄存器的詳細信息

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

PSW程序狀態字的說明

位符號 名稱 功能
CY 進位標誌位 最高位向前進位借位時,CY爲1
AC 輔助進位標誌位 用於十進制調整,低四位向高四位進位借位時,AC爲1
F0 用戶標誌位 可以用指令置位,復位
RS1、RS0 寄存器組選擇位 選擇寄存器組
OV 溢出標誌位 帶符號加減運算,結果溢出,OV爲1,乘積超過255,OV爲1,出發無意義,OV爲1
/ 無定義
P 奇偶標誌位 累加器A中爲奇數,P爲1

3.3 外部數據存儲器

外部數據存儲器一般由靜態RAM構成,其容量大小由用戶根據需要而定, 最大可擴展到 64 KB RAM , 地址是 0000H~0FFFFH。
CPU通過MOVX指令訪問外部數據存儲器, 用間接尋址方式, R0、R1和 DPTR都可作間接寄存器。
注意, 外部RAM和擴展的I/O接口是統一編址的, 所有的外擴I/O 口都要佔用 64 KB中的地址單元。

4. 並行IO接口

·MCS-51單片機有4個雙向8位並行的IO口;P0-P3
·每一個口都是一個8位的鎖存器
·復位後狀態都是1

4.1 P0是三態雙向口

三態指0,1,高阻態
既可以作爲並行IO口,也可以作爲數據總線口
當外部拓展了存儲器或是IO端口,則只能作數據總線和地址總線低8位

4.2 P1 P2 P3是準雙向口

  1. P1口是專供用戶使用的IO口
  2. P2可以做並行IO口,當有外部拓展時,充當地址總線感8位
  3. P3還是雙功能口,每個口都有第二功能
    在這裏插入圖片描述

5.單片機的引腳與功能

5.1 總覽

在這裏插入圖片描述

引腳 功能
端口線(4*8) 前面的IO端口介紹
電源線 VCC電源線,VSS接地線
控制線(6條) 進行一些控制

5.2 控制線

符號 名稱
ALE/PROGALE/\overline{PROG} 地址鎖存允許/編程線
EA/VPP\overline{EA}/VPP 允許訪問片外存儲器/變成電源線
PSEN\overline{PSEN} 片外ROM選通線
RST/VPDRST/VPD 復位/備用電源線
XTAL1/XTAL2XTAL1/XTAL2 片內震盪電路輸入輸出線

6. 單片機的基本時序

6.1 機器週期和指令週期

  1. 振盪週期,也稱時鐘週期,是指爲單排年級提供時鐘振盪信號的振盪源的週期
單片機的時鐘電路

在這裏插入圖片描述

(a)內部時鐘電路 (b)外部振盪源
  1. 狀態週期:每個狀態週期是時鐘週期的兩倍,每個狀態週期由兩個節拍P1,P2組成
  2. 機器週期:一個機器週期包含6個狀態週期,也就是12個時鐘週期,在一個機器週期內,單片機可以完成一個獨立的操作
  3. 指令週期:CPU執行一條指令所需要的時間叫做一個指令週期,由一個或是幾個機器週期組成
例子及其關係

在這裏插入圖片描述
因爲重點關注硬件結構,時序暫時不作深入瞭解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章