MCS-51单片机硬件结构

  • 硬件结构
  • 微处理器
  • 数据存储器(RAM)
  • 程序存储器(ROM/EEPROM)
  • 中断系统
  • 定时器/计数器
  • 串行口
  • P1 P2 P3 P0
  • 特殊功能寄存器
  • 时钟、引脚
  • 控制引脚
  • RST/Vpd(9脚)
  • ALE/PROG
  • PSEN
  • EA/Vpp
  • IO口引脚
  • 51的微处理器
  • 运算器
  • 算术逻辑运算单元ALU
  • 累加器A
  • 寄存器B
  • 程序状态字寄存器PSW
  • 控制器
  • 程序计数器PC
  • 指令寄存器IR、指令译码器、控制逻辑电路
  • 51存储器结构
  • 程序存储器
  • 内部数据存储器
  • 特殊功能寄存器
  • 位地址空间
  • 外部数据寄存器
  • 程序存储器
  • 内部数据存储器
  • 特殊功能寄存器SFR
  • 堆栈指针SP
  • 数据指针DPTR
  • 端口P0~P3
  • 串行数据缓冲器SBUF
  • 定时器/计数器
  • 位地址空间
  • 外部数据存储器


本文不会详细的列举51单片机的内部所有功能,只是希望可以有一个直观的印象。

硬件结构

51单片机架构 51系列单片机系统结构_程序存储

微处理器

51单片机中有1个8位的微处理器,包含运算器和控制器。

数据存储器(RAM)

用来存储程序在运行期间的工作变量、运算中间结果、数据暂存和缓存、标志位。

程序存储器(ROM/EEPROM)

顾名思义

中断系统

具有5个中断源、2级中断优先权。

定时器/计数器

2个16位定时器/计数器,具有四种工作方式。

串行口

1个全双工的串行口,具有四种工作模式。
作用:串行通信,扩展并行IO,与多个单片机相连构成多机系统。

P1 P2 P3 P0

4个并行8位io

特殊功能寄存器

共21个,是一个具有特殊功能的RAM区。
作用:对各功能部件进行管理、控制、监视。

时钟、引脚

XTAL1、XTAL2外接晶体与片内的反相器构成了一个振荡器。
XTAL1(19脚):该引脚是内部反相放大器的输入端。这个反相放大器构成了片内振荡器。用外接晶体振荡器,此引脚接地。
XTAL2(18脚):该引脚是内部反相放大器的输出端。

控制引脚

RST/Vpd(9脚)

复位,高电平有效。持续时间大于两个机器周期,完成复位。

ALE/PROG

ALE地址锁存信号,当单片机上电正常工作后,ALE引脚不断输出正脉冲信号。
PROG为本引脚的第二功能,在对片内EPROM单片机编程写入时,此引脚作为编程脉冲输入端。

PSEN

程序存储器允许输出控制端。

EA/Vpp

EA功能为内外程序存储器控制端。
作用:EA为高,单片机访问内部程序存储器,但在PC(程序计数器)值超过0FFFH时,将自动转向外部程序存储器内的程序。低电平时,则只访问外部程序存储器。

IO口引脚

P0:双向8位三态io口,此口为地址总线(低8位)及数据总线分时复用口。
P1:8位准双向io
P2:8位准双向io,与==地址总线(高8位)==复用
P3:8位准双向io,双功能复用口。
P1P2P3内部均有固定的上拉电阻。

51的微处理器

51的微处理器由运算器和控制器所构成。

运算器

算术逻辑运算单元ALU

累加器A

寄存器B

程序状态字寄存器PSW

控制器

作用:识别指令,根据指令性质控制单片机各功能部件。
单片机执行一条指令原理:从程序存储器中读出指令,送指令寄存器保存,再送指令译码器译码,译码结果送到定时控制逻辑电路,由定时控制逻辑产生各种定时信号和控制信号,再送到单片机各个部件进行相应操作。
过程:程序存储器-指令寄存器-译码器-定时控制逻辑电路-各个部件
执行程序就是不断重复着过程。

程序计数器PC

是一个寄存器,是一个独立计数器,存放着下一条将要从程序存储器中取出的指令的地址。
是一个16位计数器:故可对64Kb 2的16次方位,进行寻址。

指令寄存器IR、指令译码器、控制逻辑电路

指令寄存器IR存放指令操作的专用寄存器。

51存储器结构

51单片机采用哈佛(Har - vard)结构,即程序存储空间与数据存储器空间截然分开,程序储存器和数据存储器各有自己的寻址方式、寻址空间、控制方式。

为什么是哈佛结构?

答:这种结构对于单片机面向控制的实际应用极为方便

51存储空间分为以下5种

程序存储器

内部数据存储器

特殊功能寄存器

位地址空间

在51单片机内共有211个可寻址位,他们存在内部RAM(共有128个)和特殊功能寄存器区(共有83个)中。

外部数据寄存器

51提供了可寻址的64k字节的外扩RAM能力。

程序存储器

可扩充的程序存储空间最大为64k字节。
注意:

1.EA引脚决定cpu访问片内和片外程序存储器。或PC值超过片内的ROM容量,会自动向片外程序存储器空间执行程序。
2.程序存储器的某些单元别固定用于中断源的中断服务程序的入口地址。

51单片机架构 51系列单片机系统结构_程序存储_02

单片机复位后pc内容为0000H,故系统从000H开始取指令,执行程序。0000H是系统程序的启动地址,一般在该单元存放一条绝对跳转指令,跳向用户设计的起始地址。
中断地址入口处都放一条绝对跳转指令
为什么?

因为两个中断入口间隔只有8个单元,存放中断服务函数往往是不够的 。

与外部程序存储器打交道的指令:

MOVC A,@A+DPTR
MOVC A,A+PC

内部数据存储器

51片内数据存储器RAM单元共有128个,字节地址为00H-7FH。

51单片机架构 51系列单片机系统结构_51单片机架构_03

特殊功能寄存器SFR

SFR就是一些具有特殊功能的片内RAM,字节的范围为80H-FFH。21个特殊功能寄存器离散的分布在该区域中。

51单片机架构 51系列单片机系统结构_51单片机架构_04

规律:凡是可进行为寻址,即具有位地址的sfr的字节。其16进制地址的末位,只能是0H或8H。
注意:128个字节的SFR块中仅有21个字节是有定义的。对于未定义的字节地址单元用户不能做寄存器使用。

堆栈指针SP

堆栈是在片内RAM中开辟的一个区域。

目的:为子程序调用,和中断操作设立。
功能:保护断点,保护现场(在子程序或中断中用寄存器单元,保存原有的数据)。无论是子程序还是执行中断最后都需要返回主程序。
堆栈指针sp:8位特殊功能寄存器,sp指向堆栈顶部在RAM中的位置。

堆栈操作:数据压入push和数据弹出pop
压入sp自动加一,弹出sp自动减一。
51是向上生长型堆栈。

数据指针DPTR

16位的sfr,其高位字节用DPH表示,低位字节寄存器用DPL表示。

端口P0~P3

特殊功能寄存器p0-p3,分别为io端口p0-p3的锁存器。即每一个8位io口都为RAM的一个单元。

串行数据缓冲器SBUF

串行数据缓冲器SBUF用于存放欲发送或已接收的数据。

定时器/计数器

有两个16位寄存器/计数器T1和T0。各由两个独立8位寄存器组成,共有4个独立寄存器:TH1、TL1、TH0、TL0,可以分别对这4个寄存器进行字节寻址,但不能把T1或T0当做一个16位寄存器来寻址

位地址空间

51单片机架构 51系列单片机系统结构_数据存储_05

外部数据存储器

注意:
地址的重叠性。数据存储器和程序存储器64k字节地址重叠。数据存储器中片内最低的128个字节地址重叠。

但是不会操作混乱。
原因:采用了不同的操作指令及EA的控制选择。

程序存储器ROM和数据存储器RAM在使用上严格区分,不同操作指令不得混用。

程序存储器只能放置程序指令及常数表格,除程序运行控制外,其操作指令不分片内外。数据存储器则存放数据,片内外操作指令不同。