天天看点

96KB存储器的怎么算地址范围_8051单片机基础2:内核和存储器(RAM,Flash)架构

8051架构主要包含:

96KB存储器的怎么算地址范围_8051单片机基础2:内核和存储器(RAM,Flash)架构

1. CPU(运算器和控制器);

96KB存储器的怎么算地址范围_8051单片机基础2:内核和存储器(RAM,Flash)架构

2. 存储器(内部RAM、扩展RAM和Flash);

96KB存储器的怎么算地址范围_8051单片机基础2:内核和存储器(RAM,Flash)架构

3. 特殊功能寄存器;

96KB存储器的怎么算地址范围_8051单片机基础2:内核和存储器(RAM,Flash)架构

4. 其他:外设、时钟系统等;(注:本文略过)

经典8051单片机内部结构

96KB存储器的怎么算地址范围_8051单片机基础2:内核和存储器(RAM,Flash)架构

CPU(运算器和控制器)

运算器和控制器构成了8051中央处理单元(CPU)。

1

运算器

单片机的运算器主要包括8位算术/逻辑运算部件、累加器A、寄存器B、程序状态寄存器等。其功能是实现数据的算术/逻辑运算(数据处理)和数据传输等操作。

1)算术/逻辑单元 ALU

在8051 CPU内的运算器中,最核心的部件就是算术逻辑单元(Arithmetic and Logic Unit,ALU),ALU宽度为8位。它的主要功能是实现8位加、减、乘和除运算,“与”、“或”、“异或”逻辑运算,包括位操作以及循环、清“0”、置“1”、加“1”、 减“1”等若干基本操作。

2)累加器ACC

累加器(Accumulator,ACC)是一个常用的专用寄存器,指令系统中采用 A 作为累加器的助记符,常用于存放算术或逻辑运算的操作数及运算结果。

3)寄存器B

寄存器B 在乘除法运算中需要和 ACC 配合使用。其他情况下,B寄存器还可以用作通用暂存寄存器。

4)程序状态字寄存器 PSW

程序状态字(Program Status Word,PSW)在 CPU 做算术运算或者逻辑运算时,对应的 PSW 状态位会发生改变。

2

控制器

1)程序计数器 PC

NaN

程序计数器(Program Counter,PC),用于存放下一条即将从程序存储器中读取的指令的地址。它不断地从程序存储器中读取指令代码,从而实现计算机自动而连续地执行指令、运行程序。PC中内容(地址码)的变化决定程序运行的流向。

程序计数器的宽度为16位,决定单片机对程序存储器可以寻址的范围,即可寻址的程序存储器的容量最大为64KB。

程序计数器并不能总是让程序地址寄存器递增,这是因为机器指令可以分成顺序执行和跳转执行两种情况。

2)指令通道

a. 取指单元

根据PC所指向的存放指令程序存储器的地址,取出指令。8051的机器指令有8位、16位或24位。

b. 译码单元

根据取出指令的操作码部分,转换成一系列的逻辑控制序列,这些控制序列将直接控制CPU内的运算单元。

c. 执行指令单元

根据逻辑控制序列(微指令)所产生的逻辑行为,控制运算器单元,从而完成指令需要实现的操作行为。

3)双数据指针 DPTR

双数据指针(DPTR)是一个16位的专用寄存器,由DPL和DPH组成。它的主要功能是用来寻址外部数据存储器的16位地址寄存器,也可寻址存放在64KB程序存储器中固定数据。

4)堆栈指针 SP

堆栈指针 SP 是一个 8 位专用寄存器,它指示出堆栈顶部在内部 RAM 块中的位置。

存储器(内部RAM、扩展RAM、Flash)

8051存储器结构和地址空间

96KB存储器的怎么算地址范围_8051单片机基础2:内核和存储器(RAM,Flash)架构

8051架构的单片机存储器主要包括:

内部RAM、扩展RAM、特殊功能寄存器和程序存储器Flash。

1

内部RAM

1)

内部RAM最大支持256字节的存储空间;读取数据非常快,是因为可以通过8位地址直接访问;

2)

低128字节可以直接寻址(data),也可以间接寻址(idata);其中的20H~2FH地址空间,可以通过位寻址;

3)

高128字节只能间接寻址;当直接寻址访问时,会自动映射到SFR空间;

4)

C51编译器提供3种不同的内存类型来访问内部RAM空间:data, idata和bdata;

关键字 指向内部RAM区域 寻址方式
data 低128字节 直接寻址
idata 所有256字节 间接寻址
bdata 20H~2FH地址空间 可以按位读写

2

扩展RAM

1)

访问扩展RAM区域时,通过一个数据指针寄存器进行间接访问,因此读写速度要比内部RAM区域慢。

2)

扩展RAM区域最大支持64K字节存储空间,但是这些地址不一定全部用于内存空间,一些8051单片机会把外设地址映射到扩展RAM区域。

3)

C51编译器提供2种不同的数据类型来访问扩展RAM空间:xdata和pdata:

关键字 指向外部RAM区域 寻址方式
xdata 所有最大64K字节空间 间接寻址
pdata 一个页(256字节)的空间 间接寻址

3

程序存储器Flash

1)

8051架构支持最大64K字节的Flash空间。

2)

程序代码是存储在Flash空间的,8051只能执行存储在Flash中的代码。常数变量也可以存储在Flash空间。

3)

访问Flash空间的方式是使用MOVC指令间接寻址,不能直接寻址;

特殊功能寄存器

8051架构提供128字节的内存空间给特殊功能寄存器(SFR),SFR 和内部 RAM 的高 128 字节共用地址 80H ~ FFH, 只能通过直接寻址访问SFR。

SFR是多个控制寄存器和状态寄存器的集合,用于对单片机内的各个功能模块进行管理、控制和监视。

参考资料:

① Keil > Help

②《STC单片机原理及应用——从器件、汇编、C到操作系统的分析和设计》何宾著

③《MCS-51系列单片机及其应用(第6版)》孙育才、孙华芳著

96KB存储器的怎么算地址范围_8051单片机基础2:内核和存储器(RAM,Flash)架构

关于作者

微信公众号:萤火虫的电子笔记

关注领域:

    8051单片机、STM32、Linux、电路设计、物联网、AD、VScode、和Keil等。

96KB存储器的怎么算地址范围_8051单片机基础2:内核和存储器(RAM,Flash)架构

欢迎转发,请注明作者及出处。

关注微信公众号,获取最新文章动态。

继续阅读