通用移位寄存器:支持并行输入/输出与双向移位控制
并行输入/并行输出移位寄存器能并行接收数据、移位后并行输出结果,如下图所示。
通用移位寄存器在此基础上增加了并行加载、串行移位、方向控制和保持模式等功能。

上图中,四位数据施加到并行输入 DA DB DC DD。模式控制信号决定是并行加载数据,还是每个时钟脉冲移位一位。
许多器件允许同一控制线选择移位方向。每个时钟沿移动数据一位;移位后的输出出现在 QA QB QC QD 上。“数据输入”和“数据输出”引脚便于多个寄存器级联。
图中仅展示右移级联,左移级联可通过增加一组面向左侧的“数据输入/输出”引脚实现。
右移并行输入/并行输出移位寄存器的内部结构如下图所示。三态缓冲器虽非必须,但在商用器件中很常见。

74LS395 是紧贴上述概念图的典型器件。以下是其数据手册摘要;完整数据手册见本章后文链接。
LD/SH’ 控制多路选择器,在并行加载(M1)和串行移位(M2)间切换。当 LD/SH’ = 1 时,上部四个与门使能并行输入 DA DB DC DD 进入四个触发器。时钟输入取反,数据在下降沿锁存。
寄存器加载后,置 LD/SH’ = 0 激活移位路径,每个下降沿时钟将内容右移一位。经过四个时钟后数据将移出寄存器,除非通过 QD’ 级联到另一器件的串行输入。

图中显示加载到 QA QB QC QD 的数据模式右移一位。输入位未知(标记 X);将 SER 引脚接地可明确输入逻辑电平。
双时钟移位(两位移位)如下图所示。

这些原理图引用保持简洁,因为核心功能已在后续更详细的图中覆盖。

对于左移配置,需重新布线触发器,交换串行输入(SI)和串行输出(SO)引脚。数据路径变为:SI → QC → QB → QA → SO,即右移序列的逆序。

商用器件通常通过增加控制线(L/R)实现双向移位。下图演示一个假设寄存器,根据 L/R 信号左移或右移。

当 L/R = 1 时,多路选择器使能右移路径;L/R = 0 选择左移路径。串行数据输入(右移用 SR,左移用 SL)送入第一个触发器,串行输出(SR 级联或 SL 级联)提供移出寄存器的数据。

为结合并行加载与双向移位,引入第三条控制线(SH/LD’)。当 SH/LD’ = 0 时,加载多路选择器在下一个时钟将并行输入 DA DB DC 送入触发器。置 SH/LD’ = 1 禁用加载路径,重新启用由 L/R 决定的移位控制。
商用实现如 74ALS299 增加与门以支持保持模式(S1 S0 = 00),每个时钟持续重载输出,保持存储数据不变。
下一节将展示 74ALS299 原理图。
并行输入/并行输出与通用器件
德州仪器提供多款串行输入/并行输出移位寄存器。完整数据手册请参考以下链接。
- SN74LS395A – 4 位并行输入/并行输出移位寄存器
- SN74ALS299 – 8 位并行输入/并行输出通用移位寄存器

上图为 SN74LS395A 内部原理图。下图给出 ANSI 符号。

4 位器件受限于 16 引脚 DIP 封装,需容纳四个数据引脚、控制引脚和电源引脚。
关键控制信号包括:
- CLR’ – 全级有效低复位。
- OC’ – 四路三态输出缓冲器的有效低使能。
- LD/SH’ – 在并行加载(M1)与串行移位(M2)间多路复用。
- C3/2 – 下降沿时钟,同时驱动并行数据(带前缀 3 的信号)和串行数据(带前缀 2 的信号)。
三态缓冲器由 EN4 信号控制(低电平使能所有四个缓冲器)。当 QD’ 级联到另一器件的 SER 引脚时,数据可跨多个寄存器移位。

上表摘自 74ALS299 数据手册,总结了 8 位通用移位寄存器的操作。模式输入 S1 和 S0 选择四种功能之一:
- 01 – 左移
- 10 – 右移
- 11 – 并行加载
- 00 – 保持(每个时钟持续重载输出)
保持模式下,数据总线三态化,允许外部器件驱动总线,同时寄存器保持内容。
当 S1 S0 = 00, 01, 或 10 且输出使能 OE2’, OE1’ 为低时,移位寄存器输出驱动总线。

右移序列(S1 S0 = 10):SR → QA → QB → QC → QD → QE → QF → QG → QH (QH’)。
左移序列(S1 S0 = 01):(QA’) → QA ← QB ← QC ← QD ← QE ← QF ← QG ← QH (QSL’)。
置 OE2’ 或 OE1’ 高电平可禁用三态缓冲器;内部寄存器内容不变但不可见于输出引脚。

带注释的 ANSI 符号阐明了数据手册中的命名约定。注意模式位 S0 S1 的顺序与上表相反,这是官方文档的一个特点。
实际应用
下例演示通用移位寄存器如何将远程键盘和 LED 显示整合为报警系统的单一器件。

图中键盘和显示位于同一外壳。键盘数据经单个时钟脉冲并行加载到移位寄存器,随后串行移位送至主报警箱。同时,主箱发来的 LED 数据串行加载到寄存器驱动 LED。

八个 LED 和限流电阻连接到 SN74ALS299 的八个 I/O 引脚。LED 仅在模式 3(S1=0, S0=0)且三态使能 OE1’ 和 OE2’ 接地时驱动,此时模式 0、1、2 输出永久使能。若移位过程中的闪烁不可接受,可将使能端连接到模式位,使 LED 仅在保持模式点亮。
并行加载时,置 S0 = 1(反相后为逻辑 0)激活三态缓冲器将开关触点拉低。开路触点由电阻-LED 网络上拉,无按键时产生明确的逻辑高电平。
时刻 t0,S0 和 S1 均为高,开关数据加载入寄存器。随后八个时钟脉冲(t0 至 t8)通过 QH’ 移出开关闭合数据,同时新 LED 数据从寄存器的 SR 移入。
第八次移位后(t8),S1 变低,寄存器进入保持模式(S1 S0 = 00)。存储数据保持稳定,即使后续有时钟脉冲。
时钟生成可由单片机处理(频率低于 100 kHz);更高频率需专用逻辑产生所需时钟和模式信号。
相关工作表:
- 移位寄存器工作表
工业技术