☰
三人表决器设计与实操:基于74LS00和74LS10的与非门电路
2026/10/6 5:55:38 网站建设 项目流程

玩数字电路的人,基本都绕不开组合逻辑这块敲门砖。让我把与非门真正玩明白的,是一个用74LS00和74LS10做的三人表决器:三路开关输入,输出端接一个发光二极管,规则很简单,两人或两人以上按下同意,灯亮。就这么一个看似基础的电路,选什么芯片、怎么接线、怎么处理悬空引脚、怎么算限流电阻,每一步其实都有讲究。今天把这套完整电路图、接线表和我踩过的坑都整理出来,学生实验、课程设计、电子爱好者自学入门都适用,照着搭基本一次点亮。

1. 三人表决器到底在“表决”什么:先把逻辑需求拆清楚

1.1 表决器背后的“多数通过”规则

三人表决器的应用场景很常见:几个评委举牌、三个人同时确认一个操作、或者宿舍里投票决定晚饭吃什么,本质都是一样的——少数服从多数。三路输入分别代表三个人,输出只有一个结果,当同意的数量大于等于2时,输出有效。

这个“大于等于2”的判断,用日常语言说就是:要么A和B同时同意,要么B和C同时同意,要么C和A同时同意。请注意,三个人同时同意的情况已经包含在“A和B同时同意”里了,所以不需要单独分出来。这种把“任何两个人同意就成立”的关系,恰好是后面用与非门搭电路时最关键的理解点。

和它容易混淆的是“一票否决制”“全票通过制”这类规则,那些需要不同的逻辑结构。多数通过本质上是“任意二项成立”的组合逻辑,非常适合用74LS00、74LS10这类基础门电路来演示。

1.2 用真值表把“多数通过”写成逻辑语言

假设三个人分别是A、B、C,输出为Y。把可能的情况全部列出来,就得到这张八行真值表:

ABCY说明
0000全反对,不通过
0010只有C同意,不通过
0100只有B同意,不通过
0111B、C同意,通过
1000只有A同意,不通过
1011A、C同意,通过
1101A、B同意,通过
1111三人全同意,通过

从这张表能直接看出,输出为1的四种情况,就是逻辑表达式里的四个最小项。虽然直接写最小项也能搭电路,但那至少要四组门,太浪费。做硬件设计和写程序不一样,门数量越少,成本越低、接线越短、故障点也越少。

1.3 化简出最简洁的与非门表达式

把真值表里Y=1的四种情况合并,可以得到一个很经典的化简结果:

Y = AB + BC + CA

也就是“A和B同时成立”或“B和C同时成立”或“C和A同时成立”。这个表达式在卡诺图上一圈就能画出来,三个相邻的2人组合刚好覆盖了全部“通过”的情况。

但问题来了,74LS00提供的是与非门,不是与门、或门。能不能只靠与非门就把这个表达式实现?可以。用德摩根定律变形一下:

Y = AB + BC + CA = ((AB)' · (BC)' · (CA)')'

这个式子读起来有点绕,但含义非常漂亮:先把三组两两组合分别做“与非”得到三个中间变量,再把这三个中间变量一起送进一个“三输入与非门”,整个三人表决器就完成了。为什么这么巧妙?因为74LS00恰好有四组两输入与非门,74LS10恰好有三组三输入与非门,两片芯片拼起来,一级不多一级不少。

2. 芯片选型拆解:74LS00和74LS10为什么要搭档

2.1 74LS00引脚图及功能:四组两输入与非门

74LS00应该是数字电路实验里最常遇到的芯片之一。它是TTL工艺的LS系列,全称叫“四组二输入正与非门”,一块芯片里封装了4个互相独立的与非门。DIP14封装,上边有个半圆形缺口或者圆点标记,用来识别引脚方向。

很多人搜“74LS00引脚图及功能”,实际用的时候最关键就是这几点:14脚接VCC(+5V),7脚接GND,第1脚到第6脚是前两个门,第8脚到第13脚是后两个门。每个门都是两个输入一个输出,输入短路或者接错不会立刻烧毁,但逻辑会完全乱掉。

引脚功能引脚功能
11A(门1输入A)83Y(门3输出)
21B(门1输入B)93A(门3输入A)
31Y(门1输出)103B(门3输入B)
42A(门2输入A)114Y(门4输出)
52B(门2输入B)124A(门4输入A)
62Y(门2输出)134B(门4输入B)
7GND14VCC

在三人表决器里,其实只用到74LS00的前三个门,第四个门空着不用。不用的门输入端不要悬空,否则会引入干扰,我一般把多余的输入直接接地,省心。

2.2 74LS10:三组三输入与非门,专治“合并”

74LS10是三组三输入与非门,封装同样是DIP14,正逻辑。它和74LS00的区别在于每个门有三个输入端,输出仍然是“输入全1输出0,否则输出1”。在表决器电路里,它负责最后一级“合并”。

它的引脚排列和74LS00不太一样,新手经常认错,我特意标一下:1脚是1A,2脚是1B,13脚是1C,12脚才是1Y。也就是说第一个三输入与非门的输入分在芯片两侧,不像74LS00那样三个脚连续排在一起。

引脚功能引脚功能
11A(门1输入A)83Y(门3输出)
21B(门1输入B)93C(门3输入C)
32A(门2输入A)103B(门3输入B)
42B(门2输入B)113A(门3输入A)
52C(门2输入C)121Y(门1输出)
62Y(门2输出)131C(门1输入C)
7GND14VCC

在别的一些场合也可以用三输入与非门替代两输入与非门,但这里用它主要是看中它自带三输入,刚好能把上一级输出的三个中间量收进来。如果手里只有74LS00,想纯用两输入与非门也得绕一下,但会多占两个门,没必要。

2.3 供电、电平与悬空脚的坑先讲清楚

74LS00和74LS10都是LS TTL系列,工作电压只有一档:4.75V到5.25V,实验室里直接用+5V稳压电源或USB的5V供电都行。它不像CMOS器件那样宽电压(3V到18V),超过5.5V就可能冒烟,这个要先明确。

TTL的电平标准也要记住:输入高电平最低是2.0V,输入低电平最高是0.8V;输出高电平典型值在3.4V左右,输出低电平典型值在0.2V左右。也就是说,一片74LS00的输出直接接到另一片74LS10的输入是完全没问题的,不需要额外转换。

TTL输入端悬空时会默认呈现高电平,这个特性对实验来说既是方便也是坑。方便在于有些场合不接也能当高电平用,坑在于稍有点干扰,输入逻辑就会抖动。所以做表决器时,接开关的输入引脚必须用电阻确定好默认电平,绝不能让引脚真正“悬空”。这个细节后面接线部分会具体说。

3. 完整电路图与接线清单:照着插就能亮

3.1 两级与非结构:逻辑上怎么串起来

整个电路可以看成两级流水线。前级是74LS00里三个二输入与非门,分别计算:

P = (A · B)',即A和B的与非结果 Q = (B · C)',即B和C的与非结果 R = (C · A)',即C和A的与非结果

后级是74LS10里的一个三输入与非门,把P、Q、R再合并:

Y = (P · Q · R)'

根据德摩根定律,这个Y就等于AB + BC + CA。所以整条信号链路是:

A、B、C三路开关 → 三个两输入与非门 → 三个中间信号 → 一个三输入与非门 → 输出LED

第一次看的人可能会问:为什么中间变量要取反一次,最后又取反一次?这正是与非门实现与或逻辑的常见套路:内部取反是为了让后面的“非”变回正逻辑,整体上Y=1时灯亮,逻辑直观。这也解释了为什么选两片不同规格的与非门能完美分工。

3.2 接线表:照着插就能亮

下面这张接线表是完整的“抄作业”清单。芯片方向统一按正面朝上、缺口朝左摆放,引脚从左下角开始逆时针计数。需要特别留意74LS00的3脚输出接到74LS10的1脚,74LS00的6脚接到74LS10的2脚,74LS00的8脚接到74LS10的13脚,三条中间连线别插错。

连接对象74LS00引脚74LS10引脚
输入A1脚(1A)—
输入B2脚(1B)—
输入B4脚(2A)—
输入C5脚(2B)—
输入C9脚(3A)—
输入A10脚(3B)—
中间信号P3脚(1Y)1脚(1A)
中间信号Q6脚(2Y)2脚(1B)
中间信号R8脚(3Y)13脚(1C)
总输出Y—12脚(1Y)
电源14脚接+5V14脚接+5V
地7脚接GND7脚接GND

输出端Y再经过一个限流电阻接到LED阳极,LED阴极接地。这样接好后,电路图对应的连线关系就完全确定了,而且74LS00的第四个门和74LS10的另外两个门全程不用,空着即可,引脚不需要额外处理。

3.3 输入开关和LED驱动电阻怎么算

输入部分推荐用三个拨码开关或者按键,开关一端接+5V,另一端分别接到A、B、C三个节点。每个节点到GND之间加一个10kΩ下拉电阻。为什么要下拉电阻?因为当开关断开时,如果节点没有电阻到地,输入引脚就悬空,TTL会把它当成高电平,表决器就会莫名其妙“同意”好几票。加了10kΩ下拉后,开关断开时节点被稳定拉低,开关闭合时+5V直接把节点拉高,逻辑非常干净。

LED限流电阻计算也很基础。红色LED正常工作电压大概1.8V到2.2V,取2V,电流取5mA到10mA都安全。74LS00/74LS10的输出高电平典型值按3.4V算:

R = (VOH - VF) / I = (3.4 - 2.0) / 0.005 ≈ 280Ω

取市面上常见的330Ω,电流约4mA,亮度已经足够。如果选1kΩ,电流只有1.4mA左右,LED会偏暗但还能亮。注意不要用小电阻比如几十欧,否则电流过大,轻则LED过亮发烫,重则超出芯片输出电流能力,导致逻辑电平被拉低,整个输出失效。

如果想更亮,也可以改用低电平驱动:LED阳极接+5V,阴极通过电阻接Y引脚,Y=0时灯亮。但这样“通过”对应灯灭,逻辑相反,演示时容易误解,我还是推荐高电平驱动。

4. 面包板实操:从零搭到一次点亮

4.1 上板前先认芯片和引脚

开工之前,先把两片芯片摆在桌上,缺口朝左,用万用表的二极管档或蜂鸣档确认一下14脚和7脚之间不是短路状态。常见问题是二手芯片引脚歪了,或者实验箱里插拔次数太多导致引脚氧化,先用镊子把引脚整平,拿橡皮擦一下引脚,能省很多后面的排查时间。

顺便说一句,买芯片时认准74LS00和74LS10的正统前缀。市面上也有74HC00、74HC10,它们是CMOS工艺,引脚兼容,逻辑也相同,但输入电平标准略有差异。如果是5V供电,CMOS版本也能直接代换;但如果板子上电平不标准,还是老老实实用LS版本,别混用。

4.2 三步走完核心插线

搭面包板可以按“电源—信号—输出”的顺序来。

第一步,接电源:把面包板两排的+5V和GND分别连好,两片芯片的14脚、7脚分别插到对应电源排。强烈建议在电源引脚旁边并联一个0.1μF(104)瓷片电容,电容两端分别接VCC和GND,越靠近芯片越好。这个电容叫去耦电容,能吸收电源线上的高频噪声,否则LED闪烁或逻辑跳动时你根本分不清是接线问题还是电源问题。

第二步,接输入:三条输入线从开关节点分别接到74LS00的1脚、2脚、4脚、5脚、9脚、10脚。注意B要同时接到2脚和4脚,C要同时接到5脚和9脚,A要同时接到1脚和10脚。这一步很容易漏接线,建议用不同颜色的杜邦线区分A、B、C,比如红、黄、蓝。

第三步,接中间信号和输出:把3脚、6脚、8脚分别连到74LS10的1脚、2脚、13脚,最后74LS10的12脚串联330Ω电阻接LED。全部插完后不要急着上电,先对照接线表数一遍,确认没有把74LS00的3脚和4脚短路、没有把电源和地碰在一起。

4.3 通电后按真值表逐项验收

上电后先静态检查:芯片温度正常、电源指示灯正常、LED没有乱亮。然后从全0开始,把开关组合依次拨过去,对照第一节的真值表逐项验证。

最顺的情况是8种状态全部正确。如果某个状态不对,不要急着乱拆线,先用万用表直流电压档测对应引脚电平。比如当A=1、B=1、C=0时,74LS00的3脚应该是0V,6脚应该是高电平,8脚应该是高电平,74LS10的1脚和2脚分别是0V和高电平。从前往后一级一级量,很快就能定位问题是出在输入、中间级还是输出级。

4.4 仿真先行:Multisim快速验证电路图

搭实物之前,强烈建议先用Multisim把电路图仿真一遍。Multisim元件库里直接搜74LS00和74LS10,放上两个芯片,加三个逻辑开关、一个LED、一个5V电源,就能跑。仿真还有一个好处,可以随时用虚拟逻辑探针观察每个引脚状态,对理解两级与非结构非常有帮助。

我通常会把仿真和实物焊板配合起来:先在仿真里验证逻辑表达式无误,再在面包板上搭实物。很多初学者一上来就插面包板,结果短路、接错、芯片损坏等问题混在一起,越排查越乱。先仿真后实物,能直接跳过一大半低级错误。

5. 常见问题排查与避坑指南

5.1 异常现象速查表

遇到问题先对表,别盲猜。以下是我整理的高频故障现象、原因和排查方法:

故障现象可能原因排查方法
上电LED常亮,所有开关无效输入节点悬空被TTL当成高电平检查每个输入节点是否都有10kΩ下拉电阻
LED完全不亮,全组合无效电源没接好或芯片插反测14脚对地电压;确认缺口方向
LED非常暗限流电阻取得太大测LED两端电压;换330Ω左右电阻
某一路开关无效,其他正常该路对应的输入线漏接对照接线表查A/B/C各连了几根线
输出乱跳,按下瞬间闪烁按键机械抖动;电源噪声输入端并联104电容;电源加去耦电容
芯片发烫电源接反或输入输出短路立刻断电,查VCC/GND是否接反

5.2 新手最常踩的三个坑

第一个坑是觉得TTL输入悬空等于低电平,这是最大的误解。悬空时TTL输入内部会把它拉向高电平,所以只要有一个开关没接下拉电阻,表决器就会多出好几票“同意”。我第一次搭的时候,A路开关忘记接10k下拉,结果A键始终是1,A、B两人同时按下就永远通过,排查了两小时才找到问题。

第二个坑是以为74LS10的引脚排列和74LS00一样,输入123、输出4。实际74LS10门1的输入是1脚、2脚、13脚,输出在12脚。如果你按惯性把1Y接到4脚,而4脚其实是第二个门的输入,输出自然不对。每次换芯片前都要先看引脚图,不能凭经验猜。

第三个坑是限流电阻选太小。很多新手手头只有220Ω,觉得差不多就往上焊。225Ω算下来5V直接驱动LED也不过十几毫安,看着没事,但连续工作后芯片输出高电平会下降,逻辑可能不稳定。我后来都备一堆330Ω、470Ω、1kΩ的电阻,根据不同LED颜色换着用。

5.3 调试习惯和几个不传外的小技巧

调试这种简单组合逻辑电路,最大的原则是“断电改线、上电测量”。改任何接线都必须先断开电源,否则万用表笔一滑就容易短路。测逻辑电平时,以芯片GND为参考点,红表笔去探目标引脚,黑表笔夹在GND排上,读数稳定再记录。

我的一个小习惯是,在面包板上用不同颜色给信号分组:红色接VCC,黑色接GND,黄色接输入,蓝色接中间信号,绿色接输出。这套习惯看起来很基础,但真到线多的时候,能帮你一眼看出哪个节点连到哪儿。

另外,如果手上没有三个拨码开关,也可以用三根杜邦线临时模拟:一端插+5V为1,一端插GND为0,但要保证节点对地有下拉或上拉电阻,不要让引脚悬空。这个方法做快速功能测试特别实用,三根线来回插,比拨开关还快。

最后想多说一句,三人表决器虽然简单,但它把“真值表、逻辑化简、门电路选型、电平匹配、去耦电容、上下拉电阻”这些数字电路的核心知识点全都串起来了。做完这个项目后,我自己再去看那些更复杂的组合逻辑电路,思路明显清楚很多。如果你也是刚接触数字电路,不妨从这个小项目开始,一步一步把这块“敲门砖”踩实。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询