单片机 8051 内部结构框图
一个8位CPU;
一个片内振荡器和时钟电路;
4K字节片内部程序存储器ROM ;
128字节片内部数据存储器RAM ;
可寻址64K外部程序存储器;
可寻址64K外部数据存储器;
21个特殊功能寄存器 (专用寄存) ;
32条可编程的 I/O 线(4个8 位并行I/O端口);
两个16位定时器/计数器;
一个可编程全双工串行口;
具有5个中断源,两个优先级嵌套中断结构。
单片机各功能部件由内部总线联系在一起。简化结构如下图所示
MCS-51 单片机结构框图
二、中央处理单元CPU
CPU 是单片机的核心部件,如上图所示,各方框表示功能部件,可以看出本单片机是 8 位数据宽度的处理器,能处理 8 位二进制数据或代码, CPU 负责控制、指挥和调度整个单元系统协调的工作,完成各种运算,实现对单片机各功能部件的指挥和控制任务,它是由运算器和控制器等部件组成的。各功能部件实际上是 CPU 的有机组成部分,各功能部件通过运行程序相联系
(1)运算器
运算器的功能是进行算术运算和逻辑运算,它还包含一个布尔处理器,用来处理位的操作。运算器模块包括算术和逻辑运算部件 ALU、布尔处理器,累加器 ACC、 B 寄存器、暂存器 TMP1 和 TMP2、程序状态字寄存器 PSW 和十进制数调整电路等。
1、累加器 ACC 是一个最常用的专用寄存器。大部分单操作数据指令的操作数取自累加器。很多双操作数指令中的一个操作数也取自累加器。加、减、乘、除算术运算指令的运算结果都存放在累加器 A 或 AB 寄存器对中。指令系统中用 A 作为累加器的助记符。
2、B 寄存器
3、程序状态字 PSW
程序状态字记录程序状态信息,反映程序运算结果的特征,它是一个 8 位寄存器。其中 PSW 的 1 位未用,格式如下:(按 D7 ~ D0 顺序排列)
Cy |
Ac |
F0 |
RS |
RS |
OV |
- |
P |
① Cy (PSW.7) — 进位标志。在执行某些算术和逻辑指令时,当运算结果的最高位有进位或借位时, Cy 将被硬件置位,否则就被清零。不同的是在布尔处理机中,它被认为是位累加器,可由软件置位或清零。
② AC (PSW.6) — 辅助进位标志。在进行加法或减法操作中,当低 4 位数向高 4 位数有进位或借位时, AC 将被硬件置位,否则就被清零。 AC 被用于十进制调整。
③ FO (PSW.5) — 用户定义标志。可由用户让其记录程序状态,用作标记,即用软件使其置位或复位。
④ RS1、RS0(PSW.4,PSW.3) — 工作寄存器组选择控制位。可以用软件置位或清零,以确定当前工作寄存器组。
⑤ OV(PSW.2 —溢出标志位。在对有符号数作加减运算时,用 C6 表示 D6 位向 D7 位的进位或借位,用C7表示D7位向更高位的进位或借位,则 OV 标志可由下式求得: OV=C6 ⊕ C7。 OV=1 表示加减运算的结果超出了目的寄存器 A 所能表示的带符号数的范围(-128 ~ +127)。
无符号数乘法指令 MUL 的执行结果也会影响溢出标志。若置于累加器 A 和寄存器 B 的两个数的乘积超过 255 时(8位数), OV=1 ,否则 OV=0 。此积的高 8 位放在 B 内,低 8 位放在 A 内。因此, OV=0 时,只要从 A 中取得乘积即可,否则还要从 B 中取得乘积的高 8 位。
除法指令 DIV 也会影响溢出标志,当除数为 0 时, OV=1 ,否则 OV=0 。
⑥ (PSW.0) — 奇偶标志。每个指令周期都由硬件来置位或清零,以表示累加器 A 中有 1 的位数的奇偶数。若 1 的位数为奇数,则 P 置位,否则清零。该标志位对串行通信中的数据传输有重要意义。和数学中的数据本身的奇偶性有区别。当 A=10101000B 时,因数中是三个 1 使 P 置位。在数据传输时,当把一批数的 P 位和原 8 位放在一起构成 9 位数,这批 9 位数中 1 的个数应全为偶数。接收端如收到的数没有偶数个 1 则认为出错。
(2)控制器
控制器部件是由指令寄存器、程序计数器 PC ,定时与控制电路等组成的。
① 指令寄存器和译码
指令寄存器中存放指令代码。
② 程序计数器 PC
程序计数器 PC 用来存放即将要执行的指令地址,共 16 位,可对 64K 程序存储器直接寻址。
③ 定时与控制电路
定时与控制电路是产生 CPU 操作时序的,它是单片机的心脏。控制各种操作的时间。
8051 芯片内部有一个反向放大器所构成的振荡电路, XTAL1 和 XTAL2 分别为振荡电路的输入端和输出端。放大器可以产生自激振荡,此时时钟由内部方式产生。当 XTAL1 接地, XTAL2 接外部振荡器时,时钟由外部方式产生。
三、8051 内部 ROM 存储器
ROM: Read Only Memory
一般用于存放程序和表格等不常改变的数据
8051单片机的 ROM 是掩摸 ROM
容 量:4096byte(212)
地址范围:0000H ~ 1FFFH
四、8051 内部的 RAM 存储器
RAM : Random Access Memory
一般用于存放程序执行过程中产生的大量的临时数据,相当于 PC 的内存。
8051 单片机的内部 RAM :
容 量: 128 字节
地址范围: 00H~7FH