- 單片機原理與應用:基于Keil+Proteus
- 陳志英 徐敏主編
- 2304字
- 2022-12-14 19:54:30
2.1 MCS-51單片機內部結構和引腳功能
掌握51單片機,應首先了解51單片機的片內硬件結構及引腳,熟悉51單片機內部有哪些硬件資源供用戶使用,牢記51單片機各引腳的功能。
2.1.1 MCS-51單片機內部結構
MCS-51單片機硬件結構與微型計算機類似,它主要由微處理器(含運算器和控制器)、存儲器(程序存儲器和數據存儲器)、I/O接口(P0、P1、P2、P3口)、串行口、定時/計數器、中斷系統及特殊功能寄存器(Special Function Register, SFR)、時鐘電路等組成。其片內結構如圖2.1所示,各個功能部件都是通過片內總線連接到CPU,CPU通過該總線控制SFR從而控制各個功能部件的運行。
下面對各個功能部件作進一步說明。
(1)CPU(微處理器)
作為MCS-51單片機核心部分的微處理器是一個8位高性能中央處理器(CPU)。它的作用是讀入并分析每條指令,根據各指令的功能控制單片機各功能部件執行指令指定的運算或操作,它不僅可處理字節數據,也可進行位變量的處理。
(2)程序存儲器(ROM/EPROM/FLASH)
程序存儲器是用來存儲用戶程序的部件。8031無此部件,51系列容量為4KB,52系列容量為8KB。程序存儲器的具體類型可以是ROM、EPROM或FLASH,如8051為ROM,8751為EPROM,89C51/89S51為FLASH,其中FLASH存儲器在線可擦寫次數達千次以上,受到了工程設計人員的青睞,因此現今單片機應用系統設計大都采用FLASH型。另外,如果片內程序存儲器的容量不夠時,則需擴展片外程序存儲器,片外最多可擴展至64KB。

圖2.1 MCS-51單片機內部硬件原理結構框圖
(3)數據存儲器(RAM)
數據存儲器是用來存儲單片機運行期間的工作變量、運算的中間結果、數據暫存和緩沖、標志位等。51系列片內為128B(52系列片內為256B),片外最多可擴展至64KB。
(4)中斷系統
中斷系統是1個可管理5個中斷源,2級優先級嵌套的中斷管理系統。
(5)定時/計數器
2個16位的定時/計數器(52系列有3個16位的定時/計數器),具有4種工作方式。可用來實現精確的定時或對外部事件脈沖進行計數。
(6)串行口
1個全雙工的異步串行口,具有4種工作方式。可用來進行串行通信,或擴展并行I/O端口。
(7)輸入輸出端口
4個并行8位I/O口,分別為P0口、P1口、P2口、P3口,既可以作為輸入使用,也可以作為輸出使用,其中部分口線具有第二功能。
(8)特殊功能寄存器(SFR)
共有21個,實際上是一些控制寄存器和狀態寄存器,是一個具有特殊功能的RAM區,用于CPU對片內各功能部件進行管理、控制、監視。
(9)時鐘電路
1個提供單片機工作的片內時鐘振蕩器及時鐘發生器。
(10)總線
內部含有8根數據總線,16根地址總線,若干控制總線,所有的片內功能部件均通過總線與CPU連接。
2.1.2 MCS-51單片機的引腳功能
MCS-51單片機采用雙列直插封裝(DIP)、QFP44(quad flat pack)和LCC(leaded chip carrier)形式引腳封裝。這里僅介紹常用DIP40引腳封裝,如圖2.2所示。40只引腳按功能可分為3類:
● 電源及時鐘引腳:VCC、VSS;XTAL1、XTAL2。
● 控制引腳:、
、ALE、RST。
● I/O口引腳:P0、P1、P2、P3為4個8位I/O口的外部引腳。

圖2.2 MCS-51單片機引腳
a)引腳符號 b)邏輯符號
1.電源及時鐘引腳
(1)電源引腳(2個)
1)VCC(40腳):芯片電源,接+5V電源。
2)GND(20腳):接地端。
(2)時鐘引腳(2個)
1)XTAL1(19腳):片內振蕩器反相放大器和時鐘發生器電路的輸入端。當使用片內振蕩器時,該引腳接外部晶體的一端(如果采用外部振蕩器時,此引腳應接地)。
2)XTAL2(18腳):片內振蕩器反相放大器的輸出端。當使用片內振蕩器時,該引腳接外部晶體的另一端(如果采用外部振蕩器時,此引腳作為外部振蕩器信號的輸入端)。
2.控制引腳(4個)
控制引腳提供控制信號,有的引腳還具有復用功能。
1)RST/VPD(9腳):復位與備用電源。正常工作時,RST端為復位信號輸入端,只要在該引腳上連續保持2個機器周期以上高電平,MCS-51單片機即實現復位操作,復位后單片機從程序存儲器0000H重新開始執行程序;在VCC掉電情況下,該引腳還可接上備用電源,由VPD向內RAM供電,以保持內RAM中的數據不丟失。
2)(30腳):ALE引腳第一功能為地址鎖存允許,當單片機上電正常工作后,ALE引腳不斷輸出正脈沖信號。當單片機訪問外部存儲器時,ALE輸出信號的負跳沿用于單片機發出的低8位地址經外部鎖存器的鎖存控制信號。即使不訪問外部鎖存器,ALE仍有正脈沖信號輸出,此頻率為時鐘振蕩器頻率fosc的1/6。若想初步判斷單片機芯片的好壞,可用示波器觀察ALE引腳是否有正脈沖信號輸出。如果有信號輸出,基本可判定單片機是好的。
需要指出,當CPU訪問外部數據存儲器時(即執行MOVX指令),在兩個機器周期中ALE只出現1次,即丟失1個ALE脈沖。
ALE引腳可驅動8個LS型TTL負載。
為本引腳的第二功能,為編程脈沖輸入端。
3)(29腳):讀外部程序存儲器的選通信號。當單片機訪問外部程序存儲器時,此引腳輸出脈沖負跳沿作為讀外部程序存儲器的選通信號。當讀內ROM或外RAM時,該引腳無效。
可以驅動8個LS型TTL負載。
4)(Enable Address/Voltage Pulse of Programing,31腳):
為內外程序存儲器選擇控制端。
,訪問片內程序存儲器,即復位后,CPU從內部程序存儲器0000H開始執行指令,但在PC(程序計數器)值超過0FFFH(對于51系列)時,即超出片內程序存儲器的4K字節地址范圍時,將自動轉向執行外部程序存儲器內的程序。
,單片機則只訪問外部程序存儲器,即復位后,CPU從外部程序存儲器0000H開始執行指令。
VPP為本引腳的第二功能。用于施加編程電壓(例如+21V或+12V)。對89C51,加在VPP腳的編程電壓為+12V或+5V。
3.I/O口引腳(32個)
1)P0口:雙向8位三態I/O口,此口也可作為地址總線(低8位)及數據總線分時復用口。當作為總線使用時,先輸出地址后輸出數據。P0可驅動8個LS型TTL負載。
2)P1口:8位準雙向I/O口,可驅動4個LS型TTL負載。
3)P2口:8位準雙向I/O口,與地址總線(高8位)復用,可驅動4個LS型TTL負載。
4)P3口:8位準雙向I/O口,可作為一般I/O口使用,也可用于第二功能,如表2.1所示。P3口可驅動4個LS型TTL負載。
表2.1 P3口的第二功能定義
