硬件寄存器的理解

发布时间:2026/10/24 1:42:26
硬件寄存器的理解

1 从软件角度看的概念

就是设备的配置文件。。。(唯一的例外是参与运算的通用寄存器,R0~R15),参考中的这个图个人觉得非常贴切。就是0和1的开关,可以看到,一共是15位。

如果要说美中不足,就是有些硬件变化,好像不能反映。好像跳闸可以,开关自动往上跳,表示电路中存在短路。

2 寄存器的硬件实现

从软件来说,其实不关心寄存器的硬件实现。只要能存储,不管是寄存器,RAM,FLASH,甚至打孔纸都可以。

但是在现代计算机系统中,考虑到速度,成本这些内容,寄存器主要使用的D触发器实现。触发器其实很像之前接触过的锁存器,只是改成了上升沿才触发。

下面是几种存储的比较。

存储类型最小单元(1 bit)存储原理特点
寄存器D 触发器 (约 20-30 个晶体管)电流回路。只要有电,电子就在门电路里打转。极其昂贵、极大、极快。
RAM (SRAM)6-T 单元 (6 个晶体管)交叉耦合锁存。结构比触发器紧凑,适合大规模集成。成本中等、容量中等、速度快。
Flash浮栅晶体管 (1 个晶体管)捕获电荷。把电子“关进”一个绝缘层里。便宜、极密、掉电不丢、写得慢。

D触发器(Data Flip-Flop)

3 硬件实验

使用元器件:

  • 74HC175 芯片(内含 4 个 D 触发器),16DIP封装。

  • 4 个拨码开关(作为输入数据 $D_0-D_3$)。

  • 4 个 LED 灯(作为输出显示 $Q_0-Q_3$)。

  • 1 个点按开关(作为时钟信号 Clock,即“保存键”)。

  • 面包板、电阻、5V 电源。

74HC175引脚定义:

引脚类型名称对应 CPU 的概念接线建议
电源VCC (16), GND (8)供电系统接 5V 和地线
数据输入D1-D4 (4, 5, 12, 13)Data Bus (数据总线)接 4 个拨码开关
时钟输入CLK (9)Clock Signal (时钟脉冲)接一个点按开关(作为写入触发)
数据输出Q1-Q4 (2, 7, 10, 15)Internal State (内部状态)接 4 个 LED 灯(加限流电阻)
强制清零MR (1)Reset (重置)接 VCC(正常工作),接 GND(清零)

接线逻辑:

将拨码开关连接到 74HC175 的 $D$ 输入引脚。

将 LED 连接到 74HC175 的 $Q$ 输出引脚。

将点按开关连接到芯片的 CLK 引脚。

实验现象:

拨动开关,LED 灯不会跟着变。当按下点按开关的一瞬间,芯片捕捉到电平上升沿。此时,开关的状态被“锁”进芯片,LED 灯亮起。松开手,哪怕把开关全部拨乱,LED 灯依然保持刚才那一刻的状态。

74HC175 是上升沿触发。这意味着在D端拨动开关时,LED 没反应。只有当按下 CLK 开关,电平从低变高的一瞬间,数据才会被“采样”并存入。

回头做了实验。。。不过并不是很成功。我是只接了一个LED,但是显示的状态比较异常,尤其是CLK那个角,甚至有时候要手放在旁边感应才会亮。。。

暂时不知道原因。后面有机会再解决吧。

https://www.youtube.com/watch?v=6GbTk753Muk

软件是如何控制硬件的?单片机软硬件互动的核心秘密