寄存器和触发器有什么区别?


回答 1:

我希望寄存器大于1位(例如64或32或16或8位),而触发器只有1位。

另外,至少有4种不同类型的触发器,其设置和回读状态的方式不同。 “ SR”用于设置/重置,“ JK”用于设置/重置,但具有更完全定义的行为,“ D”用于延迟或数据,“ T”用于切换。

对于寄存器,如何设置和读回位并不是重点。 您更关心什么设置和/或读回位。 最基本的寄存器可能会存储和调用位,就像使用一组触发器一样。 但是许多寄存器可以做更多的事情。 例如,累加器寄存器可以将输入添加到寄存器中的现有位。 另一类型的寄存器可能是只写的,并导致系统中其他地方的操作开始。 而其他寄存器可能是只读的,表示读者感兴趣的状态,例如系统温度。


回答 2:

寄存器的核心是触发器。

具体而言,大多数情况下为D型触发器。 在某些情况下,它不是那么简单:GPIO上的输出寄存器可以作为S / R触发器操作,以仅允许设置或仅清除位。 (当前大多数MCU支持此功能。)通常,仍然可以通过D-FF访问触发器,因此您可以设置和清除寄存器。

为了方便程序员,通常将一个寄存器写入相同的地址以写入FF并读取其值。 对于核心寄存器(累加器,r0-r15,索引寄存器等),寄存器直接由指令寻址,而不是通过单独的寄存器地址寻址。

一些MCU甚至允许在存储器地址空间中访问寄存器。 Iirc,8051就是这样做的,实际上允许选择寄存器到内存寄存器不同块的映射。)


回答 3:

一个寄存器(至少我所知道的寄存器)是一组位。 (取决于处理器的数量)。

触发器只是一个硬件位(甚至在计算机上不一定可用)可能是内部的,可能是某些系统的一部分。

大多数情况下,要确保寄存器具有很多内部触发器。 (或至少某种类似的不确定对象,即内部是否仍然如此)。

因为触发器通常定义为由逻辑门构成,以便能够保持而不改变,除非从外部改变0或1(通常为0伏或大约5或12或3伏,具体取决于系统通常是vcc)。