8051单片机原理学习

单片机结构框图

51单片机的结构框图如下所示
8051单片机原理学习
51单片机主要组成部件有:

  • 8bit微处理器(CPU): 主要进行算术运行和逻辑控制
  • 片内4KB程序存储器(4KB ROM): 用以可执行程序,只读数据和表格
  • 片内256B数据存储器(256B RAM): 用于存放可读写数据,如算术运行的中间值和最终值等
  • 4个8位并行I/O口(输入/输出口) P0 ~ P3: 每个并口可以用作输入,也可以用作输出
  • 2个定时/计数器:每个定时/计数器可以设置为计数方式,也可以设置为定时方式,计数方式用于对外部事件进行技术。定时方式根据计数或者定时的结果进行相应的周期性处理。
  • 1个全双工串口通信I/O口:用于实现单片机与其他外围设备进行串口通信
  • 片内振荡器和时钟产生电路:需外借晶振和电容给单片机提供原始时钟
  • 5个中断源的中断控制系统:

单片机内部结构图

单片机内部的详细组件图如下所示
8051单片机原理学习
看上图似乎非常的复杂,不过主要分为四大部分,如下图不同颜色框出来的所示
8051单片机原理学习

  • 运算单元(红色框图):主要进行算术运算(加减乘除)和逻辑运行(与,或,非)
  • 控制单元(蓝色框图):控制单片机的各种操作
  • 存储单元(粉色框图):主要有ROM和RAM,其中ROM用于存储程序,RAM用于存储定义的变量等。
    注: 可以通过code这个指令来将定义的变量放在ROM,而不是RAM中,节省RAM资源
  • 外部接口(绿色框图):主要是对外部设备的I/O控制接口

51单片机存储单元结构

单片机中执行的程序先保存在存储单元中,然后才能被执行,因此先对单片机中的存储单元结构进行介绍。
51单片机的存储单元结构如下:

  • 内置4KB大小的ROM
  • 内置256B大小的RAM
  • 可以外接64K的ROM和64K的RAM
    因此,从物理结构角度看,51单片机的存储系统分为4个存储空间:
  • 片内ROM
  • 片内RAM
  • 片外ROM
  • 片外RAM

从单片机执行程序角度看,51单片机的存储系统实际上分为3个存储空间

  • 片内RAM
  • 片外RAM
  • 片内ROM或者片外ROM(由引脚EA电平来确定,EA = 1选择片内ROM, EA = 0选择片外ROM)

8051单片机原理学习ROM中存储的是程序,常量或者表格等,当执行程序时,由EA引脚的电平来决定是从片内ROM中取指令执行还是从片外ROM中取指令执行。
EA = 1时,CPU执行片内ROM中的程序
EA = 0时,CPU执行片外ROM中的程序

无论从片内ROM还是片外ROM中的程序,都是从ROM的地址0000H处开始执行。

虽然系统可能同时具备片内ROM和外部ROM,但是在一般正常使用时,通过/EA引脚的电平来选择其一(或者使用内部ROM,或者使用外部ROM)。

由于片内ROM的大小是4KB,那么当程序大小超过4KB时,有如下两种使用ROM的方式

  • 方式1:设置EA = 0,直接使用片外ROM,从地址0000H开始
  • 方式2:设置EA = 1,使用片内4KB ROM(从0000H地址开始)和片外64KB ROM(片外ROM从1000H地址开始

如下图所示

8051单片机原理学习需要特别注意的地方时, ROM中有6个地址空间位置具有特定的功能

  • 0000H地址:上电或者复位时,程序计数器PC所指向的单元,用来存放程序的第一条指令
  • 0003H地址:外部中断/INT0的向量入口地址
  • 000BH地址:定时器T0溢出中断的向量入口地址
  • 0013H地址:外部中断/INT1的向量入口地址
  • 001BH地址:定时器T1的溢出中断向量入口地址
  • 0023H地址:串行口接收、发送的中断向量入口地址

向量入口地址,指的是当中断产生时,调用的入口函数所在的存储位置。

因此,程序在ROM中布局结构如下图
8051单片机原理学习从上图可知,单片机在上电开机或者复位后的第一条指令存储在0000H地址处,该地址处的指令是一条跳转指令,直接跳转到0100H地址处, 而0100H地址处才是真正的主程序入口地址。

参考