8051单片机基础2:内核和存储器(RAM,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和物联网等相关领域。

欢迎转发,请注明出处及作者。关注微信公众号,获取最新文章动态。
在这里插入图片描述

  • 6
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: STC16F单片机基础模块分块讲解讲义是针对STC16F系列单片机的教学材料,旨在帮助学习者理解和掌握单片机的基本知识和应用。 该讲义分为多个模块,每个模块介绍了不同的基础知识和功能。以下是对讲义主要内容的简要概述: 1. 基本概念与介绍:本部分首先介绍了STC16F单片机的特点和应用领域,并介绍了单片机的基本组成部分,如CPU存储器、定时器等。 2. C语言基础:本部分主要介绍了C语言在单片机编程中的基本语法和使用方法,包括变量、运算符、控制结构、函数等。 3. IO口与外部中断:本部分详细介绍了单片机的IO口和外部中断的原理和应用,包括输入输出口的设置和使用,外部中断的触发条件、中断优先级等。 4. 定时器与计数器:本部分讲解了定时器和计数器的原理和使用方法,包括定时器的工作模式、中断控制、计数器的应用等。 5. 串口通信:本部分介绍了串口通信的基本原理和实现方式,包括串口的配置、发送和接收数据等。 6. ADC与DAC:本部分讲解了模数转换和数模转换的原理和应用,介绍了ADC和DAC的工作原理、配置和使用方法。 通过学习该讲义,学习者能够系统地了解STC16F单片机的基本知识和应用,掌握单片机编程和硬件设计的基本技能,为后续的单片机开发和应用打下坚实的基础。 ### 回答2: STC16F系列单片机是杭州超时科技公司推出的一款高性能、低功耗的单片机产品。它采用了先进的8位单片机内核,拥有丰富的外设资源和强大的计算能力,广泛应用于各种电子产品中。 基础模块是学习单片机的重要一环,通过分块讲解可以更好地理解和掌握STC16F单片机的基本知识和应用。 首先,讲义的第一部分是关于单片机的概述和基本特性。介绍了STC16F单片机的主要特点,如工作电压、闪存、RAM、中断系统等。了解这些特性有助于我们了解单片机的基本结构和功能。 第二部分是关于单片机的引脚定义和功能。通过对每个引脚的详细介绍,我们可以了解单片机的输入输出功能和使用方法。例如,引脚可以用作通用IO口、定时器/计数器输入、中断输入等。 第三部分是关于单片机的时钟系统和复位功能。时钟系统是单片机正常运行的基础,了解单片机的各种时钟源和时钟分频器的工作原理对于编程和调试非常重要。复位功能是单片机启动时的重要环节,讲义中会详细介绍复位引脚的功能和复位方式。 第四部分是关于单片机的中断系统。中断是单片机实现多任务处理的关键,通过中断可以及时响应外部事件,提高系统的实时性。讲义中会介绍中断的基本概念、中断服务程序的编写方法以及中断优先级的设置。 最后,讲义中还会涉及到其它模块的相关知识,如定时器/计数器、串口通信、脉冲宽度调制等。这些模块是单片机功能强大的体现,通过讲解可以帮助学习者全面了解和运用这些模块。 通过这份分块讲解讲义,学习者可以逐步掌握STC16F单片机的基本知识和应用。了解单片机的结构和特性,掌握引脚的定义和功能,熟悉时钟系统和复位功能,理解中断系统等等,为后续学习和应用打下坚实的基础。同时,这份讲义还提供了一些实例和练习,帮助学习者巩固所学知识,并且可以通过实践提高自己的编程能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值