5个提醒,让你远离“数据呆”
2026/6/13 12:59:52
本文针对 “串行序列 00011000 检测(可重叠)” 需求,从设计原理、Multisim 电路搭建两个维度展开,用74HC164 移位寄存器 + 74HC151 选择器、74HC164+74HC273 寄存器两种方案实现 “输入序列匹配时输出 1,否则输出 0” 的功能。
题目要求 “检测串行输入中的00011000(可重叠)”,核心逻辑是将串行数据转换为并行数据,再与目标序列逐位比对。
功能:串行输入数据,在时钟上升沿依次移入,最终并行输出(Q0~Q7)。
| 输入 | 功能 | 输出变化(Q0→Q7) |
|---|---|---|
| \(\overline{CLR}\)=0 | 异步清零(优先级最高) | Q0~Q7 全置 0 |
| \(\overline{CLR}\)=1,CLK 上升沿 | 串行输入(A・B)移位 | 新数据→Q0,原 Q0→Q1,…,原 Q6→Q7 |
| \(\overline{CLR}\)=1,CLK 稳态 | 保持 | Q0~Q7 保持当前值 |
功能:根据地址选择 8 路输入中的 1 路输出,用于 “固定序列比对”。
| 输入(地址 A2A1A0) | 输出 Y |
|---|---|
| 000 | D0 |
| 001 | D1 |
| ... | ... |
| 111 | D7 |
功能:时钟上升沿锁存 8 路 D 输入,并行输出,用于 “动态序列缓存 + 比对”。
| 输入(CLK 上升沿) | 输出 Qn |
|---|---|
| Dn=X | Qn=X(锁存 D 输入) |
00011000预存在 151 的输入,用 164 的输出作为 151 的地址,当 164 输出与目标序列一致时,151 输出 1。74HC164(串转并):
74HC151(序列比对):
00011000设置:D0=0、D1=0、D2=0、D3=1、D4=1、D5=0、D6=0、D7=0(0 接 GND,1 接 5V);00011000时,74HC164 的 Q0~Q7 输出为00011000,对应 74HC151 的地址为00011000,此时 151 选择 D3=1 输出,LED 亮;0001100011时,当第 8 位输入后输出 1,第 9 位输入后 Q0~Q7 变为00110001,不匹配;第 10 位输入后变为01100011,依此类推(符合可重叠要求)。74HC164(串转并):接线同方案 1(A/B 接串行输入,CLK 接同步时钟)。
74HC273(缓存目标序列):
00011000设置(D0=0、D1=0、D2=0、D3=1、D4=1、D5=0、D6=0、D7=0);与门阵列(逐位比对):
00011000时,74HC164 的 Q0~Q7 与 273 的 Q0~Q7 逐位相等,8 个与门全输出 1,最终 8 输入与门输出 1,LED 亮;0001100011时,第 8 位输入后触发输出 1,后续输入自动移位比对,符合要求。本文用两种 74 系列芯片方案实现了 “00011000 序列检测”: