嵌入式——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使用 |
3. 存儲器的結構
總體框架
單片機的存儲器可以分爲三個部分:程序存儲器(64KB),內部數據存儲器(256B),外部數據存儲器(64KB)
(存儲器及其大小的理解,以程序存儲器爲例子,程序存儲器就相當於一棟大樓,這棟大樓一共有64K()個房間,每個房間可以存放一個字節(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是準雙向口
- P1口是專供用戶使用的IO口
- P2可以做並行IO口,當有外部拓展時,充當地址總線感8位
- P3還是雙功能口,每個口都有第二功能
5.單片機的引腳與功能
5.1 總覽
引腳 | 功能 |
---|---|
端口線(4*8) | 前面的IO端口介紹 |
電源線 | VCC電源線,VSS接地線 |
控制線(6條) | 進行一些控制 |
5.2 控制線
符號 | 名稱 |
---|---|
地址鎖存允許/編程線 | |
允許訪問片外存儲器/變成電源線 | |
片外ROM選通線 | |
復位/備用電源線 | |
片內震盪電路輸入輸出線 |
6. 單片機的基本時序
6.1 機器週期和指令週期
- 振盪週期,也稱時鐘週期,是指爲單排年級提供時鐘振盪信號的振盪源的週期
- 狀態週期:每個狀態週期是時鐘週期的兩倍,每個狀態週期由兩個節拍P1,P2組成
- 機器週期:一個機器週期包含6個狀態週期,也就是12個時鐘週期,在一個機器週期內,單片機可以完成一個獨立的操作
- 指令週期:CPU執行一條指令所需要的時間叫做一個指令週期,由一個或是幾個機器週期組成
因爲重點關注硬件結構,時序暫時不作深入瞭解