文章目录

  • 一、CPU(运算器、控制器)
    • 1. 运算器
      • 1)算术/逻辑单元 ALU
      • 2)累加器ACC
      • 3)寄存器B
      • 4)程序状态字寄存器 PSW
    • 2. 控制器
      • 1)程序计数器 PC
      • 2)指令通道
        • a. 取指单元
        • b. 译码单元
        • c. 执行指令单元
      • 3)双数据指针 DPTR
      • 4)堆栈指针 SP
  • 二、存储器(内部RAM、扩展RAM、Flash)
    • 1. 内部RAM
    • 2. 扩展RAM
    • 3. 程序存储器Flash
  • 三、特殊功能寄存器
    • 关于作者

参考资料:
① Keil > Help
②《STC单片机原理及应用——从器件、汇编、C到操作系统的分析和设计》何宾著
③《MCS-51系列单片机及其应用(第6版)》孙育才、孙华芳著

在8051单片机架构中,主要包含:

  1. CPU(运算器、控制器)
  2. 存储器(内部RAM、扩展RAM、Flash)
  3. 特殊功能寄存器
  4. 其他:外设、时钟系统等

经典8051单片机内部结构


8051存储器结构和地址空间


一、CPU(运算器、控制器)

运算器和控制器构成了8051中央处理单元(Central Processing Unit, 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

  程序计数器(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架构的单片机存储器主要包括:内部RAM、扩展RAM、特殊功能寄存器和程序存储器Flash。

1. 内部RAM

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

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

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

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

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

2. 扩展RAM

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

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

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

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

3. 程序存储器Flash

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

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

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


三、特殊功能寄存器

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

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


本文完~


关于作者

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

分享嵌入式软件、硬件知识;

关注8051单片机、STM32、Linux、AltiumDesigner、Vscode、Keil和物联网等相关领域。

欢迎转发,请注明出处及作者。关注微信公众号,获取最新文章动态。

8051单片机基础2:内核和存储器(RAM,Flash)架构相关推荐

  1. 8051单片机基础1:8051的起源

    作为电子工程师,有没有思考过这3个问题呢 为什么叫8051单片机呢? 8051单片机和MCS-51单片机有什么关系? 8051单片机还有市场空间吗? 单片机是单片微型计算机的简称,又称微控制器(Mic ...

  2. 8051单片机基础6:通用指针和定向指针

    文章目录 关于C51代码中指针的疑问 Cx51的指针类型 Generic Pointers(通用指针) Memory-Specific Pointers(定向指针) 指针类型转换 指针转换示例 1. ...

  3. 8051单片机基础4:数据存储类型(data,idata,xdata,code)

    文章目录 存储类型 使用方法 详细说明 8051存储器结构 data idata bdata pdata xdata code 关于作者 参考来源:Keil > Help > uVisio ...

  4. 8051单片机基础3:C51内存模型(small, compact和large)

    文章目录 C51编译器支持3种内存模型 使用内存模型的方式 1. Small Model 2. Compact Model 3. Large Model 关于作者 C51编译器支持3种内存模型 Sma ...

  5. 如何通过8051单片机与片外存储器的连接来解决8051片内RAM和ROM容量不够用的问题

    系列文章目录 上期文章回归: <你真的熟悉8051单片机的引脚功能及其使用吗?> 提示:读本文前可先阅读上期文章回归下51单片机的引脚,以便更好的阅读本文. 文章目录 系列文章目录 前言 ...

  6. idata 单片机 新唐_【nuvoton新唐8051单片机】NuTiny-SDK-N76E003开发板

    型号:NuTiny-SDK-N76E003 内核架构:8-bit 产品简介: N76E003为新唐高速1T 8051 单片机系列产品,提供18 KB Flash ROM.可配置Data Flash与高 ...

  7. 8051单片机的存储器结构

    MCS-51单片机在物理结构上有四个存储空间: 1.片内程序存储器 2.片外程序存储器 3.片内数据存储器 4.片外数据存储器 但在逻辑上,即从用户的角度上,8051单片机有三个存储空间: 1.片内外 ...

  8. 8051单片机有几个存储器地址空间?画出它的存储器结构图

    8051单片机有几个存储器地址空间?画出它的存储器结构图 8051中有三个存储器地址分别为:程序存储器ROM(CODE空间).片内数据存储器ROM(IDATA和DATA空间).片外数据存储器RAN(X ...

  9. 51单片机—详细(存储器RAM/ROM、引脚、中断系统、定时/计数器、串行口通信)

    目录 一.数据存储器RAM 1.拓展RAM 2.片内256字节 1.高128位(80H~FFH) 2.低128位(00H~7FH) 二.程序存储器ROM 三.引脚 1.4组8位并行I/O口 2.其他引 ...

最新文章

  1. js--webSocket入门
  2. how many libraries within Cambridge?
  3. 【Nginx】Nginx配置文件参数/启动参数详解;启动/停止/重新加载配置命令
  4. gear s3刷android wear,三星gear s3怎么刷机 智能手表gear s3刷机方法【图解】
  5. Java --- 基础学习Ⅰ
  6. internet网络 checksum校验和计算方法
  7. html overflow 样式,css修改overflow滚动条默认样式
  8. 《Pytorch - RNN模型》
  9. redis 缓存数据格式
  10. 1、Redhat GNOME安装访问命令行
  11. java内存管理(堆、栈、方法区)
  12. ios9提取安装包ipa_iOS 获取App的ipa包以及资源文件
  13. 做了个小工具,可以一键导出所有微信表情包,有趣的表情包,不再只限一个APP使用,【微信表情包吸血鬼】
  14. 5月Github上最热门的数据科学和机器学习项目TOP5
  15. Sam Altman 山姆奥特曼:如何成功 ?How To Be Successful
  16. Cohort analysis
  17. 【高德地图进阶】--- 使用DistrictSearch 绘制城市版块
  18. Linux | buildroot使用介绍
  19. hp服务器如何找回阵列信息,HP服务器数据恢复 RAID5结构实例手工分析
  20. uniapp-微信小程序使用高德或腾讯地图的导航功能

热门文章

  1. NP完全问题与近似算法:贪婪策略|Python实现
  2. android 通过service 执行AlarmManager 自动更换壁纸
  3. 【读书笔记】《你有你的计划世界另有计划》——达·芬奇诅咒
  4. 【Axure教程】多选和批量操作的表格模板
  5. Cadence全家桶Capture+Allegro流程-1-创建原理图库和元器件库
  6. Git版本SVN工具简介与安装配置及使用
  7. 移动端PDF阅读器重排版效果对比-小白PDF阅读器与KOReader重排版效果对比
  8. 自底向上构造语法分析树Java_编译原理系列之五 自底向上优先分析(1)-简单优先分析法...
  9. python移动均线SMA及双均线策略
  10. Java作业 大于某个数的最小质数