51单片机通过控制寄存器控制设备,那么程序中变量的运算职责由谁完成的呢

在51单片机(或更广泛地说,在任何微控制器或微处理器系统中)的程序执行过程中,变量的运算职责主要由中央处理器(CPU)完成。CPU 负责执行程序中的指令,包括对各种变量进行算术和逻辑运算。

当你编写程序并在51单片机上运行时,你的代码会被编译成机器码,这是一系列CPU能够理解的指令。这些指令告诉CPU要执行什么操作,包括如何加载和操作内存中的变量。

例如,如果你的程序中包含了一个加法运算,比如 a = b + c;,那么CPU会执行以下步骤:

  1. 将变量b和c的值从内存中加载到CPU的寄存器中。
  2. 执行加法运算,将b和c的值相加。
  3. 将结果存储回内存中的变量a。

整个过程是由CPU根据程序中的指令来控制的。控制寄存器通常用于配置和控制单片机的硬件功能,如I/O端口、定时器等,而不是直接参与变量的运算。

总结:

51单片机虽然可以通过控制寄存器的值,影响寄存器的引脚,进而控制与引脚关联的硬件设备,这和x86框架下的那些cup内的寄存器是不同的,这里把寄存器分成两类更容易理解,内部寄存器,提供运算功能;控制寄存器,我们可以,再程序中读写的一些寄存器,但这些寄存器不是承载运算的功能,是承载了对外部设备信号控制的功能。

展开:

控制外部设备有两种方式,要么通过控制寄存器的引脚,要么通过一个通讯的通道直接传输信号。如果是后者需要依赖各种通讯协议。

引用参考

最全Linux驱动开发全流程详细解析(持续更新)-CSDN博客

相关推荐
lzj_pxxw2 小时前
STM32移植FreeRTOS(Cmake+CubeMX)
vscode·stm32·嵌入式硬件
Zwawa2 小时前
屏幕不止一种:OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,这与TTY和PTY又有什么关系
c语言·单片机·嵌入式
물の韜3 小时前
ZYNQ/FMQL系列Linux之I2C开发实战
linux·arm开发·嵌入式硬件·设备树·iic·zynq
无敌贵点大王6 小时前
从寄存器层面重学STM32(7)——定时器
stm32·单片机·嵌入式硬件
碧海银沙音频科技研究院6 小时前
粉色笔记本电脑每次要等把电池电耗尽才能开机问题解决方法
嵌入式硬件
wuyk55520 小时前
Keil工具链-第05讲-启动文件与__main到底做了什么
c语言·stm32·单片机·嵌入式硬件·物联网
shijuejianceliu1 天前
传统规则视觉与嵌入式AI智能相机的技术差异
人工智能·嵌入式硬件·视觉检测·相机
不脱发的程序猿1 天前
GD32串口数据收进内存之后DMA如何处理?
单片机·嵌入式硬件·dma·嵌入式·串口通信·gd32
FPGA小迷弟1 天前
FPGA 与千兆以太网校验和:从原理到 Verilog 实现
嵌入式硬件·fpga开发·无人机·ai编程·fpga
国科安芯2 天前
83 倍:ASC0108S 在推挽和开漏之间,差的不是速度,是回程
单片机·嵌入式硬件·架构·电平转换·抗辐射