【SoC基础】单片机之寄存器解析

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨

📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852

📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉

📢:内容若有错误,敬请留言 📝指正!原创文,转载注明出处

文章目录

  • 1、寄存器位置
  • 2、寄存器种类
    • [2.1 通用用途寄存器](#2.1 通用用途寄存器)
    • [2.2 CPU执行相关寄存器](#2.2 CPU执行相关寄存器)
    • [2.3 外设控制寄存器](#2.3 外设控制寄存器)
  • [3. 寄存器在CPU访问外设过程中起到的作用](#3. 寄存器在CPU访问外设过程中起到的作用)

1、寄存器位置

寄存器通常存放在单片机的内部。

具体来说,寄存器是集成在单片机的中央处理器(CPU)内,作为CPU的一部分,用于暂存指令、数据和地址等信息,以支持CPU快速地进行数据处理和运算。此外,一些特殊功能寄存器还分布在单片机的其他功能模块中,用于控制和配置这些模块的工作模式和状态,如定时器、串口等模块都有各自对应的控制寄存器。

2、寄存器种类

寄存器种类繁多,在不同的系统和场景下有着不同的划分方式,以下为你从通用用途、CPU执行、外设控制三个方面对寄存器进行分类并制成表格:

2.1 通用用途寄存器

寄存器类型 说明 应用场景
通用数据寄存器 用于暂存数据和运算结果,可进行算术、逻辑运算等操作。如8086CPU中的AX、BX、CX、DX 数据处理、运算操作
地址寄存器 存储内存地址,方便CPU快速定位和访问内存单元。如基址寄存器、变址寄存器等 内存寻址、数据读取与存储

2.2 CPU执行相关寄存器

寄存器类型 说明 应用场景
程序计数器(PC) 存放下一条要执行的指令地址,使CPU按顺序执行程序 程序执行流程控制
指令寄存器(IR) 存放当前正在执行的指令,供CPU进行译码和执行 指令译码与执行
状态寄存器(PSW) 包含各种标志位,反映运算结果的状态(如进位、溢出、零标志等)和CPU的工作状态 条件判断、程序分支控制

2.3 外设控制寄存器

寄存器类型 说明 应用场景
控制寄存器 用于配置和控制外设的工作模式、功能等。如串口通信的波特率控制寄存器、定时器的工作模式控制寄存器 外设功能配置与控制
状态寄存器 反映外设的当前工作状态,如设备是否忙、是否有数据就绪等 外设状态监测与处理
数据寄存器 用于外设与CPU之间的数据传输,如串口的数据发送寄存器和接收寄存器 外设数据读写

3. 寄存器在CPU访问外设过程中起到的作用

本质上,CPU访问外设或存储器主要是通过地址总线、数据总线和控制总线来实现的,而不是寄存器。不过,寄存器在这个过程中也起着重要的辅助作用。

CPU通过地址总线发送地址信号来指定要访问的外设或存储器的具体位置,通过控制总线发送控制信号来确定操作类型(如读或写),通过数据总线来传输数据。

寄存器在其中的作用是暂存数据、地址和控制信息等,例如,CPU在访问外设或存储器之前,会先将地址信息存入地址寄存器,将数据存入数据寄存器,然后通过总线将这些信息发送出去。在数据传输完成后,也会将接收到的数据存入相应的数据寄存器。所以寄存器是协助CPU进行数据处理和传输的重要部件,但并非CPU访问外设或存储器的本质方式。

相关推荐
IDIOT___IDIOT2 小时前
第一次烧录51单片机的烧录不了的问题
单片机·嵌入式硬件·51单片机
小麦嵌入式3 小时前
Linux驱动开发实战(六):设备树升级!插件设备树点灯!
linux·c语言·驱动开发·单片机·嵌入式硬件·mcu·ubuntu
梁山1号3 小时前
【QT】】qcustomplot的初步使用二
c++·单片机·qt
weixin_508821654 小时前
在 STM32F7 系列微控制器中,使用定时器(如 TIM10)实现 10ms 中断,并在中断服务函数中调用 ProRelay() 函数
stm32·单片机·嵌入式硬件
代码总长两年半6 小时前
STM32---FreeRTOS软件定时器
stm32·单片机·嵌入式硬件
电子艾号哲6 小时前
STC89C52单片机学习——第26节: [11-2]蜂鸣器播放音乐
单片机·嵌入式硬件·学习
KeLin&7 小时前
STM32:Default_Handler问题
stm32·单片机·嵌入式硬件
XYN617 小时前
【嵌入式学习】嘉立创画pcb门电路
笔记·嵌入式硬件·学习·硬件工程
智木芯语8 小时前
【33】单片机编程核心技巧:Switch驱动跑马灯速度控制
单片机·#stm32·#stc8
智木芯语8 小时前
【32】单片机编程核心技巧:Switch驱动按键控制跑马灯方向
单片机·嵌入式硬件·#stm32·#stc8