51单片机的结构

一、mcs-51 的核心电路
单片机 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
1
rs
0
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