MCS-51单片机概述
- 一个8位CPU
- 4KB程序存储器, 采用ROM或EPROM
- 128 B通用数据存储器
- 21个特殊功能寄存器(SFR)
- 4个8位并行口, 其中P0、 P2、 P3是复用口
- 一个可编程全双工串行口
- 具有5个中断源, 两个优先级嵌套结构
- 两个16位定时/计数器
- 一个片内振荡器与时钟电路
1、中央处理器(CPU)
单片机的CPU由以下三部分组成:
运算器
- 算数逻辑单元(ALU)
- 累加(ACC)
- 寄存器(B)
- 暂存器(TMP1和TMP2)
- 程序状态字(PSW)寄存器
控制器
- 定时控制逻辑
- 指令寄存器
- 数据指针(DPTR)
- 程序计数器(PC)
- 堆栈指针(SP)
- 地址寄存器
- 地址缓冲器
布尔(位)处理器
-
C
y
C_{y}
Cy?:进位标志位
- 位寻址RAM区
- 位寻址的并行I/O口
- 位操作指令系统
1.1、运算器
1.1.1、算数/逻辑部件
算术/逻辑部件ALU的作用是把送到微处理器的数据进行算术运算和逻辑运算。 运算的主要数据来源是累加器和数据寄存器, 进行运算时,这些数据存入暂存器1和暂存器2等待ALU接收
1.1.2、累加器
累加器是一个8位寄存器。是8051最常用、 最繁忙的特殊功能寄存器, 多用来存放操作数、 运算结果。 在指令系统中采用A作为累加器ACC的助记符。
1.1.3、B寄存器
在进行乘法、 除法运算时, B寄存器作为ALU的输入之一, 与ACC配合完成运算, 并存放运算结果。 在无乘除运算时, 它可作为内部RAM的一个单元
1.1.4、程序状态字寄存器
程序状态字寄存器PSW是一个8位寄存器,用来存放运算结果的一些特征。
D7 | D6 | D5 | D4 D3 | D2 | D1 | D0 |
---|
C
y
C_{y}
Cy? | AC | F0 | RS1 RS0 | OV | | P | 进位标志位 | 半进位标志位 | 用户自定义标志位 | 工作寄存器组选择位 | 溢出标志位 | | 奇偶校验标志位 |
-
C
y
C_{y}
Cy?(PSW.7):进位标志位。 在执行加、 减法指令时, 若运算结果的最高位( D7位) 有进位或借位,则
C
y
C_{y}
Cy?位被置1, 否则清零。
C
y
C_{y}
Cy?既可以作为条件转移指令中的条件, 也可用于十进制调整。
- AC( PSW.6) :半进位标志位。 在执行加、 减法指令时, 如果其低半字节向高半字节有进位或借位( D3位向D4位) , 则AC位被置1, 否则清零。AC也可用于十进制调整
- F0( PSW.5) :用户自定义标志位。 用户可用软件对F0赋以一定的含义, 决定程序的执行转向。
- RS1( PSW.4) 和RS0( PSW.3) :工作寄存器组选择位。 表2-2所示为RS1和RS0与片内工作寄存器组的对应关系。
RS1、RS0与片内工作寄存器组的对应关系如下表:
RS1 | RS0 | 寄存器组 | 片内RAM地址 | 通用寄存器名称 |
---|
0 | 0 | 0组 | 00H ~ 07H | R0 ~ R7 | 0 | 1 | 1组 | 08H ~ 0FH | R0 ~ R7 | 1 | 0 | 2组 | 10H ~ 17H | R0 ~ R7 | 1 | 1 | 3组 | 18H ~ 1FH | R0 ~ R7 |
- OV( PSW.2) :溢出标志位。 OV= 1表示带符号数加减运算的结果超出了目的寄存器A所能表示的带符号数( 2的补码) 的范围( -128~+127) ,若无溢出, 则OV位为0。 OV也可以作为条件转移指令中的条件。
- PSW.1:未定义位。
- P( PSW.0) :奇偶校验标志位。 单片机在指令执行后, 根据ACC中1的个数的奇偶性, 自动将该标志位置1或清零。 若1的个数为奇数, 则P=1, 否则P=0。 P也可以作为条件转移指令中的条件。
1.2、控制器
1.2.1、 程序计数器
程序计数器( Program Counter, PC) 用来存放下一条要执行指令的地址,当按照PC所指的地址从存储器中取出一条指令后,PC会自动加l, 即指向下一条指令。
1.2.2、 堆栈指针
堆栈指针(Stack Pointer,SP) 是指在片内RAM空间中开辟的堆栈区的栈顶地址, 并随时跟踪栈顶地址而变化。堆栈是按先进后出的原则存取数据的, 单片机复位后,SP内容为07H, 则以07H为栈底, 压栈的内容从08H单元开始存放。
1.2.3、指令寄存器和指令译码器
指令寄存器和指令译码器( IR, ID) 的功能是对将要执行的指令进行存储和译码。 当指令送入指令寄存器后, 指令译码器对其进行译码, 即把指令转变成所需的电平信号, CPU根据译码输出的电平信号, 使定时控制电路产生执行该指令所需的各种控制信号, 以便计算机能正确地执行指令所要求的操作。
1.2.4、数据指针(DRPT)
由于8051系列单片机可以外接64KB的数据存储器和I/O接口电路, 故在单片机内设置了16位的数据指针寄存器( Data Pointer) 。 它可以对64KB的外部数据存储器和I/O进行寻址, DPTR可分为高8位数据指针寄存器( DPH) 和低8位数据指针寄存器(DPL)。
2、存储器
存储器是计算机的记忆部件, CPU要执行的程序、 处理的数据、处理的中间结果都存在存储器中。 存储器的容量和存取时间是存储器的两项重要指标, 反映存储器记忆信息的多少和工作速度的快慢。 分为只读存储器( ROM)和可读写存储器(RAM), 闪存(Flash) 存储器。
- RAM又叫数据存储器, 能在存储器中任意给定的地方随时写入和读出信息, 当电源掉电后RAM中的内容就会消失。
- ROM只读存储器, 用以存放不变的信息。 当电源掉电后, 仍能保持内容不变, 不能修改其内容。 一般存放程序和一些固定的数据。 又有ROM、 PROM、 EPROM、 E2PROM。
- 闪存则是一种不挥发性内存, 在没有电流供应的条件下能够长久地保持数据, 任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。
- 8051在物理结构上有4个存储空间:
- 片内程序存储器(ROM)
- 片外程序存储器
- 片内数据存储器(RAM)
- 片外数据存储器
- 从用户使用的角度上, MSC-51有3个存储空间:
- 片内外统一编址的64KB程序存储器空间(用16位地址)
- 256 B片内数据存储器空间(用8位地址)
- 64KB片外数据存储器地址空间
三个存储空间地址是重叠的, 8051指令系统设计了不同的数据传送指令的符号:访问片内、 外ROM用MOVC,访问片外RAM用MOVX, 访问片内RAM用MOV
MSC-51 单片机存储器的结构
|