阅读前提醒: 文中提到的8051指的是8051微控制器,即51单片机

在上一篇文章51单片机的存储结构中,提到8051微控制器的RAM被划分为通用寄存器、按位寻址寄存器、寄存器组、以及特殊功能寄存器。

这里讲一下特殊功能寄存器(SFR)。

8051的特殊功能寄存器用于控制各种外围硬件设备,包括定时器、串行端口、I/O端口。也可以用于更改和获取微处理器的运行模式。

1 8051的特殊功能寄存器(SFR)

8051的特殊功能寄存器就像是一个控制台,通过它既可以监控8051微控制器的运行状态,课可以控制8051微处理器的功能。

如本文第一张图所示,在8051微控制器的内存结构中,从80H到FFH的128字节被分配给了SFR,但是只有21个位置是真正分配。每一个SFR都有一个一字节地址和一个独一无二的名字,这个名字同时也会指出该SFR的功能。

因为SFR是RAM的一部分,所以也可以像访问内部RAM一样访问SFR。两者仅仅是地址存在不同,00H到7FH是常规RAM,80H到FFH是SFR。
但是,由于128个SFR中仅有21个被分配,建议不要访问其他的SFR。

1.1 SFR的分类

这21个SFR分别是

  • A or ACC
  • B
  • DPL
  • DPH
  • IE
  • IP
  • P0
  • P1
  • P2
  • P3
  • PCON
  • PSW
  • SCON
  • SBUF
  • SP
  • TMOD
  • TCON
  • TL0
  • TH0
  • TL1
  • TH1

1.2 SFR的分类

下图列出了所有SFR的名字、功能、地址。

  • 数学运算寄存器: ACC和B
  • 状态字寄存器: PSW(Program Status Word)
  • 指针寄存器: 数据指针(DPL、DPH),和栈指针(SP)
  • I/O端口锁存器:P0,P1,P2,P3
  • 外设控制寄存器: PCON, SCON, TCON, TMOD, IE and IP
  • 外设数据寄存器:TL0, TH0, TL1, TH1 and SBUF

1.2.1 数学运算寄存器

AAC (累加器)

这个应该不需要多介绍,CPU的几乎每次操作都需要用到累加器。

B(乘商寄存器)

B寄存器用于乘除等运算,配合ACC使用。

1.2.2 PSW(程序状态字)

顾名思义,适用于保存当前程序运行状态的。程序员可以通过浏览其中的信息。

下图列出了每个标志位所对应的信息

1.2.3 指针寄存器

数据指针(DPTR: DPL和DPH)

DPL和DPH共同组成了一个16位的寄存器。它的主要作用是存储外接存储器的地址。

栈指针

栈指针指向堆栈的顶部,可以使用PUSH,POP,CALL,SET等指令来对其进行操作。
初始状态下栈指针内容为07H。
向栈指针中写数据后栈指针所存储的地址+1,读数据后地址-1。

1.2.4 I/O 端口寄存器

8051有4个用作I/O的端口,这四个端口分别是P0,P1,P2,P3。每一个端口都对应一个名字相同的寄存器。四个寄存器的地址分别是P0 – 80H, P1 – 90H, P2 – A0H 以及P2 – B0H。

SFR的每一个比特位都对应着8051微控制器的一个引脚,每一个端口寄存器都可以按字节寻址或者按位寻址。如果在端口寄存器上的某一个比特位上写入1或0,那么对应的引脚上电压也会产生相应的变化(5V或者0V)。

1.2.5 外设控制寄存器

PCON 电源控制(power control)

顾名思义,电源控制寄存器用于控制8051的电源模式。使用PCON寄存器中的两个比特,可以将8051设置为空闲模式和掉电模式。

注意:PCON寄存器不支持按位寻址

SCON 串行控制

SCON用于控制8051的串行端口。使用SCON,可以控制串口的操作模式、串口的波特率以及使用串口发送或接收数据。

TCON 定时器控制

TCON寄存器用于启动或停止8051单片机的定时器。它还包含指示定时器是否溢出的位。TCON SFR还包括与中断相关的位。

TMOD 定时器模式

定时器模式SFR用于设置定时器T0和T1的操作模式。较低的四位用于配置定时器0,较高的四位用于配置定时器1。

1.2.5 外设数据寄存器

SBUF 串行数据缓冲区

用于串行通信时存储串行数据。

TL0/TH0

定时器0由两个SFR组成:TL0和TH0。TL0是低位字节,TH0是高位字节,它们共同构成一个16位定时器0寄存器。

TL1/TH1同理

  • 参考文章:https://www.electronicshub.org/8051-microcontroller-special-function-registers/

51单片机的特殊功能寄存器(SFR)相关推荐

  1. 51单片机之特殊功能寄存器SFR

    51单片机之特殊功能寄存器 全部的特殊功能寄存器: 特殊寄存器1.ACC(A):累加器 特殊寄存器2.B:辅助寄存器 特殊寄存器3.标志寄存器PSW: PSW的内部位含义: 举个例子:不做解释了 特殊 ...

  2. 51单片机的特殊功能寄存器

    51单片机的特殊功能寄存器 51单片机的特殊功能寄存器 通过前面课程的学习,我们已知道了单片机的内部有ROM.有RAM.有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什么?这些个零碎的东 ...

  3. 51单片机的特殊功能寄存器到底在哪,为何51子系列没有高128B仍然有特殊功能寄存器

    简单来说,就是片内RAM和特殊功能寄存器在物理上是相互独立的.就像51子系列内部RAM没有高128B,但它任然有特殊功能寄存器,因为特殊功能寄存器并不是高128B的存储单元,只是因为其地址编码在80H ...

  4. 特殊功能寄存器SFR

    特殊功能寄存器sfr sfr也是一种扩充数据类型,点用一个内存单元,值域为0-255. 利用它可以访问51单片机内部的所有特殊功能寄存器.(sfr 是定义8 位的特殊功能寄存器而sfr16 则是用来定 ...

  5. C语言sfr指令,51单片机的指令和sfr汇总.pdf

    51单片机的指令和sfr汇总 51 单片机编程备忘录 一.指令 51 系列的指令说复杂也不复杂,说简单吧,也比较繁琐讨厌.总体上,可以分为7 个大类,如下表. 序号 大类 子类 说明 1 辅助 伪指令 ...

  6. 51单片机的工作寄存器R0~R7位于内部RAM什么位置

    转自:https://zhidao.baidu.com/question/1495509806096353459.html 51单片机的工作寄存器一共有32个,为RAM中的00H--1FH单元,分为4 ...

  7. STC89C52系列单片机的特殊功能寄存器表

    特殊功能寄存器地址表 单片机系统管理特殊功能寄存器 单片机中断管理特殊功能寄存器 单片机I/O口特殊功能寄存器 单片机串行口特殊功能寄存器 单片机定时器特殊功能寄存器 单片机看门狗特殊功能寄存器 单片 ...

  8. 51单片机特殊功能寄存器sfr和sbit介绍

    "sfr"指令:用来直接描述硬件地址.小白先解成一组IO口的起始地址中数据 sfr P0 = 0x80; P0=0;//也就是对P0口全部给0 "sbit"指令 ...

  9. 单片机的特殊功能寄存器

    通过前面的学习,我们已知单片机的内部有ROM.有RAM.有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什么,这些个零碎的东西怎么连在一起的,让我们来对单片机内部的寄存器作一个完整的功能分 ...

最新文章

  1. javascript 设计模式_开发者都应该了解的7种JavaScript设计模式
  2. 2011年上海交通大学计算机研究生机试真题
  3. jzoj4017-逃跑【0/1分数规划,线段树,dp】
  4. CCF NOI1023 最大跨度
  5. 数据库并发中的串行化
  6. PHP两个二维数组数据处理:字段值相等,则赋值给另一个数组
  7. final关键字多态
  8. 小程序 搜索结果关键字标红(支持拼音)
  9. 如何鉴别硬盘是否是全新的,及HD Tune的使用方法
  10. 【R】【课程笔记】06 金融波动模型
  11. c语言根号sin60,用泰勒级数展开求sin60°的值C语言
  12. c# 2进制 转16进制 ,16进制转2进制
  13. Quitting an application - is that frowned upon?
  14. 菜鸟的数学建模之路(三):线性与非线性拟合
  15. 【多场景建模】CIKM2021 阿里妈妈多场景CTR预估模型STAR 论文精读
  16. 世界上最经典的25句话[转载]
  17. 信用卡号码的解析(转)
  18. Bugku—PHP代码审计—md5函数
  19. 使用以太坊和 Metamask 再也不需要输入密码
  20. 汽车电子常见脉冲实验简介

热门文章

  1. 系统层面优化深度学习计算
  2. 江苏省2022年普通高校专转本选拔考试——计算机专业大类专业综合基础理论试卷
  3. 页面顶部导航栏css样式布局
  4. 51单片机声控语音PWM风扇可自动温控定时调速风扇转速显示
  5. 腾讯云数据库TDSQL两大引擎全新升级,分析能力和Oracle兼容能力大幅提升
  6. vue+element 身份证号码以及有效性校验 适用 15位 或18位
  7. 爱快软路由安装Docker插件
  8. kettle基础总结
  9. ramos一键处理多合一_Primo Ramdisk驱RAMOS一键制作生成工具多合一 V3.2.5版
  10. 基于c语言的bluez ble gatt