☰
三人表决器电路设计:74LS00与74LS20芯片实现与调试
2026/9/28 16:24:08 网站建设 项目流程

数字电路实验里,三人表决器算是经典中的经典。我前后带过几届学生做这个题目,也在自己的工位上用74LS00和74LS20反复搭过好几版。别看它逻辑简单,真动手接线的时候,坑一点都不少——芯片方向插反、引脚数错、悬空输入导致输出乱跳,这些问题我全踩过。这篇就把整个搭建过程从头到尾捋一遍,包括真值表怎么推、逻辑表达式怎么化简、芯片怎么选、线怎么接、出了问题怎么查,尽量写到你看完就能自己动手做出来。

三人表决电路要解决的问题很明确:三个人对一件事投票,同意的人达到两个或两个以上,结果就通过;否则不通过。这个规则在现实里到处都是,比如董事会表决、评委打分是否晋级、安全联锁里的多传感器确认。用数字电路实现它,核心就是把“多数同意”这个逻辑翻译成与、或、非的组合,再用现成的逻辑门芯片搭出来。74LS00是四组二输入与非门,74LS20是两组四输入与非门,这两块芯片配合起来,刚好能把三人表决的逻辑做得干净利落。不管你是刚学数字电路的学生,还是想带学生做实验的老师,或者只是想把课本上的逻辑门真正接一次看看效果,这篇内容都能直接拿去用。

1. 三人表决电路的逻辑设计与芯片选型思路

1.1 从投票规则到真值表

先把规则说清楚。三个人,每人一个输入,用A、B、C表示。同意记作1,反对记作0。输出用Y表示,通过记作1,不通过记作0。规则是“两个及以上同意就通过”,那么把所有输入组合列出来,一共2的3次方等于8种情况。

ABC同意人数Y
00000
00110
01010
01121
10010
10121
11021
11131

这张表就是整个电路的“需求文档”。后面所有的化简、选芯片、接线,都是围绕它来的。我建议你动手之前先把这张表自己在纸上画一遍,不要直接抄,画的过程能帮你把逻辑关系吃透。

从表里能直接看出,Y为1的行是第4、6、7、8行,对应最小项是A'BC、AB'C、ABC'、ABC。写成最小项之和就是:

Y = A'BC + AB'C + ABC' + ABC

这个表达式已经能用了,但直接用与门、或门搭需要多个芯片,不够经济。接下来要做的是化简。

1.2 逻辑化简与表达式变形

用卡诺图或者布尔代数都能化简。我用卡诺图快速过一遍。把A、B作为行变量,C作为列变量,填入Y值:

A\BC00011110
00010
10111

圈组的时候,第4行(A=0,B=1,C=1)和第8行(A=1,B=1,C=1)可以合并,消掉A,得到BC。第6行(A=1,B=0,C=1)和第8行合并,消掉B,得到AC。第7行(A=1,B=1,C=0)和第8行合并,消掉C,得到AB。三个圈合起来:

Y = AB + BC + AC

这就是三人表决电路最经典的表达式,意思是“任意两人同意就通过”。这个形式非常直观,也最好用与非门实现。

为什么选与非门而不是与门加或门?因为实际市面上74系列里,与非门的型号最全、价格最低、驱动能力也够用。74LS00一块芯片里有四个二输入与非门,74LS20有两个四输入与非门。用这两块就能把上面的表达式搭出来,不需要额外的非门芯片,成本低、接线也清爽。

1.3 用与非门实现表达式的推导

要把Y = AB + BC + AC用与非门实现,得做两次变换。第一次,对表达式整体取反再取反:

Y = (AB + BC + AC)''

第二次,用德摩根定律把里面的或变成与非:

Y = ((AB)' · (BC)' · (AC)')'

这个形式就很清楚了:先用三个二输入与非门分别算出(AB)'、(BC)'、(AC)',再把这三个结果送进一个三输入与非门。但74LS20是四输入与非门,多出来的一个输入怎么办?把它接高电平(接VCC)就行,四输入与非门当三输入用,多出的输入不影响逻辑。

这里有个细节要注意:74LS20的输入如果悬空,在TTL电路里等效于高电平,但悬空容易引入干扰,实际接线时最好还是明确接到VCC,不要图省事让它空着。我见过有人悬空用,实验室里勉强能跑,但一到稍微有点电磁干扰的环境输出就抖,排查半天才发现是悬空输入的问题。

2. 74LS00与74LS20芯片引脚功能详解

2.1 74LS00引脚图与功能说明

74LS00是四组二输入与非门,14脚双列直插封装。引脚定义如下:

引脚功能引脚功能
1第一组输入A114电源VCC
2第一组输入B113第四组输入B4
3第一组输出Y112第四组输入A4
4第二组输入A211第四组输出Y4
5第二组输入B210第三组输入B3
6第二组输出Y29第三组输入A3
7地GND8第三组输出Y3

记住一个规律:14脚接VCC,7脚接地,这是74系列14脚芯片的通用规则。芯片缺口朝左时,左下角是1脚,逆时针数到左上角是14脚。插芯片之前一定要确认方向,插反了通电就可能烧芯片。我自己就干过这事,一块74LS00冒烟的味道至今记得。

74LS00的每组门逻辑是:Y = (A·B)'。也就是说,只有两个输入都为1时输出才为0,其他情况输出都是1。这个特性在实现表决电路时非常关键,因为我们要用它的输出去驱动74LS20。

2.2 74LS20引脚图与功能说明

74LS20是两组四输入与非门,同样是14脚封装,但引脚排列和74LS00不同:

引脚功能引脚功能
1第一组输入A114电源VCC
2第一组输入B113第二组输入B2
3第一组空脚NC12第二组输入A2
4第一组输入C111第二组空脚NC
5第一组输入D110第二组输入C2
6第一组输出Y19第二组输入D2
7地GND8第二组输出Y2

注意74LS20有NC空脚(第3脚和第11脚),这两个脚内部没有连接,接线时不用管它们。第一组门用1、2、4、5脚输入,6脚输出;第二组门用9、10、12、13脚输入,8脚输出。逻辑是Y = (A·B·C·D)',四个输入全为1时输出才为0。

这里有个容易搞混的地方:74LS20的输入引脚不是按顺序排的,1、2、4、5是一组,中间跳过了3脚。我第一次用的时候按顺序数,把3脚当成输入接了进去,结果输出一直不对,查了半天才发现3脚是空脚。所以接线前一定要对着引脚图确认,不要凭感觉数。

2.3 两块芯片的配合方式

整个电路的分工是这样的:74LS00负责产生三个二输入与非项(AB)'、(BC)'、(AC)',74LS20负责把这三项再与非一次得到最终输出。具体来说,74LS00的三组门分别处理AB、BC、AC,剩下的一组门可以不用,也可以留着做其他扩展。74LS20用第一组门,三个输入接74LS00的三个输出,第四个输入接VCC。

这样算下来,总共用了74LS00的三组门和74LS20的一组门,芯片资源还有富余。如果你想让电路更紧凑,也可以考虑用其他芯片组合,但74LS00加74LS20这个方案在实验教学里最经典,因为两块芯片刚好覆盖了二输入和四输入两种与非门,能让学生同时练习两种封装。

3. 完整接线步骤与实操过程

3.1 准备工作与元件清单

动手之前先把东西备齐,免得接一半发现少东西。需要的元件和工具如下:

  • 74LS00一块
  • 74LS20一块
  • 面包板一块(建议用大一点的,走线空间充足)
  • 杜邦线若干(公对公,建议多备几种颜色)
  • 5V直流电源一个(实验电源或USB供电模块都行)
  • 发光二极管一个(做输出指示)
  • 限流电阻一个,220Ω到1kΩ之间
  • 三位拨码开关或者跳线帽,用来做输入
  • 万用表一块(排查问题用)

电源这块要特别注意,74LS系列是TTL电平,标准供电是5V,不要接12V或者3.3V。5V是它的额定工作电压,低了可能不工作,高了直接烧。我一般用实验电源调到5.0V,电流限制设在200mA左右,万一接错线也不至于烧得太惨。

发光二极管做输出指示时,一定要串限流电阻。74LS20的输出驱动能力有限,直接接LED可能电流过大,既伤LED也伤芯片。220Ω到1kΩ都行,我一般用470Ω,亮度够用,电流也安全。

3.2 输入端的接法

三个输入A、B、C分别用拨码开关控制。拨码开关一端接VCC,另一端接芯片输入引脚,同时每个输入引脚最好加一个下拉电阻到地,保证开关断开时输入是明确的低电平。如果没有下拉电阻,TTL输入悬空会被当成高电平,但这是不可靠的,容易受干扰。

具体接法:A接74LS00的第1脚和第4脚(因为A要参与AB和AC两项),B接第2脚和第5脚(参与AB和BC),C接第10脚和第9脚(参与BC和AC)。等一下,这里要仔细对应一下74LS00的门分配。

我重新理一遍。74LS00有四组门:

  • 第一组:输入1、2,输出3
  • 第二组:输入4、5,输出6
  • 第三组:输入9、10,输出8
  • 第四组:输入12、13,输出11

我们要算(AB)'、(BC)'、(AC)'。分配如下:

  • 第一组算(AB)':1脚接A,2脚接B,3脚输出(AB)'
  • 第二组算(AC)':4脚接A,5脚接C,6脚输出(AC)'
  • 第三组算(BC)':9脚接B,10脚接C,8脚输出(BC)'

这样A要接到1脚和4脚,B要接到2脚和9脚,C要接到5脚和10脚。每个输入扇出两个门,74LS00的输入电流很小,一个开关驱动两个输入完全没问题。

3.3 输出级的接法

74LS20第一组门的四个输入是1、2、4、5脚,输出是6脚。我们把74LS00的三个输出分别接到74LS20的三个输入:

  • 74LS00的3脚((AB)')接74LS20的1脚
  • 74LS00的6脚((AC)')接74LS20的2脚
  • 74LS00的8脚((BC)')接74LS20的4脚
  • 74LS20的5脚接VCC(第四个输入置高)

74LS20的6脚就是最终输出Y。Y接限流电阻再接LED正极,LED负极接地。Y为1时LED亮,表示通过;Y为0时LED灭,表示不通过。

电源和地别忘了接:74LS00的14脚接VCC,7脚接地;74LS20的14脚接VCC,7脚接地。两块芯片的电源可以共用一组5V。

3.4 接线顺序与检查要点

接线顺序建议从电源开始,先接VCC和地,再接输入,最后接输出。每接完一部分用万用表量一下,确认没有短路再继续。全部接完后,先不要通电,用万用表的通断档把每条线都过一遍,重点检查VCC和地之间有没有短路。这一步花两分钟,能省下烧芯片的几十块钱。

通电后先测电源电压,确认是5V左右。然后逐个组合输入,对照真值表验证输出。如果输出不对,先不要急着拆线,按后面的排查方法一步步查。

4. 真值表验证与逻辑图绘制

4.1 实测验证方法

通电后,用拨码开关设置A、B、C的值,从000到111逐个测试,记录LED的亮灭情况。正常情况下应该和真值表完全一致:只有011、101、110、111这四种情况LED亮,其他四种灭。

测试的时候建议按顺序来,000、001、010、011、100、101、110、111,每测一个在纸上打个勾。如果某个组合不对,先确认拨码开关接触是否良好,再查对应的门电路。比如011不对,那问题可能出在(BC)'这一路,重点查74LS00的第三组门和它到74LS20的连线。

我实测的时候遇到过一次110输出不对,查了半天发现是74LS00第二组门的5脚虚接,面包板上的线没插到底。这种问题很隐蔽,万用表量通断能查出来,但如果不量就很容易漏掉。

4.2 逻辑图绘制要点

逻辑图是实验报告里必须有的部分,也是理解电路结构的好工具。画逻辑图的时候,按信号流向从左到右画:左边是输入A、B、C,中间是三个二输入与非门,右边是一个四输入与非门,最右边是输出Y。

每个门要标清楚芯片型号和引脚号,比如“74LS00-1”表示74LS00的第一组门。输入输出线上标好信号名,交叉的地方如果相连要画实心点,不相连就画跨线。电源和地一般不在逻辑图上画,但要在图旁边注明。

画逻辑图有个好处,就是能帮你发现接线错误。我有一次画完图对照实际接线,发现74LS20的5脚忘了接VCC,赶紧补上,避免了一次无效测试。

4.3 真值表与表达式的对应关系

再回到真值表,把每一行和表达式Y = AB + BC + AC对应起来看。011这行,B=1、C=1,所以BC=1,Y=1;101这行,A=1、C=1,所以AC=1,Y=1;110这行,A=1、B=1,所以AB=1,Y=1;111这行,三项都为1,Y=1。其他行三项都为0,Y=0。这个对应关系清楚了,排查问题的时候就能快速定位是哪一项出了问题。

5. 常见问题排查与避坑经验

5.1 输出一直为高或一直为低

输出一直为高,最常见的原因是74LS20的某个输入悬空或者接错。如果(AB)'这一路没接好,74LS20的1脚悬空,TTL会把它当高电平,四输入与非门只要有低电平就输出高,所以Y可能一直为高。排查方法是量74LS20四个输入脚的电压,正常应该是三个来自74LS00的输出,一个接VCC。如果哪个脚电压不对,顺着往回查。

输出一直为低,可能是74LS20的输出脚短路到地了,或者LED接反了。先量74LS20的6脚电压,如果一直是低,断开后面的LED再量,判断是芯片问题还是负载问题。

5.2 部分输入组合输出错误

如果只有某些组合不对,比如011不对但其他都对,那问题基本锁定在(BC)'这一路。查74LS00第三组门的9、10脚输入是否正常,8脚输出是否正常。可以用万用表量8脚电压:当B=1、C=1时,8脚应该是低电平;其他情况应该是高电平。如果不对,可能是芯片坏了或者接线错了。

还有一种情况是输入信号本身有问题。拨码开关接触不良会导致输入时高时低,输出自然乱跳。可以用万用表直接量芯片输入脚的电压,确认是稳定的高或低。

5.3 芯片发热或冒烟

芯片发热通常是电源接反或者电压过高。74LS00和74LS20的14脚接VCC、7脚接地,如果接反了,通电瞬间芯片就可能损坏。冒烟的话基本就是烧了,只能换芯片。预防措施是通电前用万用表确认VCC和地没有接反,电源电压调到5V再接通。

另外,74LS系列芯片的电源引脚没有反接保护,接反必烧。我建议在电源线上串一个自恢复保险丝,或者用带限流的实验电源,这样即使接错也能把损失降到最低。

5.4 常见问题速查表

现象可能原因排查方法
输出一直高74LS20输入悬空或接错量四个输入脚电压
输出一直低输出短路或LED接反断开负载量输出脚
部分组合错误对应与非门故障量该门输入输出
输出抖动输入悬空或接触不良量输入脚电压稳定性
芯片发热电源接反或过压立即断电检查电源
LED不亮限流电阻过大或LED反接换小电阻或调换LED方向

5.5 几个实操心得

第一个心得:面包板上的线一定要插到底。我遇到过好几次看起来插好了实际没接触的情况,尤其是用久了的面包板,簧片弹性下降,更容易虚接。接线的时候稍微用点力,插到底会有明显的“咔”一下的感觉。

第二个心得:不同颜色的线区分功能。VCC用红色,地用黑色,输入用黄色,输出用绿色,中间信号用蓝色。这样排查的时候一眼就能看出哪根线是什么,不用一根根量。

第三个心得:先分块测试再整体联调。先把74LS00的三个与非门单独测一遍,确认每个门逻辑正确,再接74LS20。这样如果整体不对,能快速定位是前级还是后级的问题。

第四个心得:74LS20多出的输入不要悬空。虽然TTL悬空等效高电平,但实际环境中悬空脚容易引入干扰,导致输出不稳定。老老实实接到VCC,多花一根线的事。

6. 电路扩展与进阶玩法

6.1 扩展到多人表决

三人表决做通了,可以试试扩展到五人表决或者七人表决。五人表决的规则是三人及以上同意通过,表达式会复杂一些,但思路一样:先列真值表,再化简,再用与非门实现。五人表决需要更多的门,可能要用到74LS30(八输入与非门)或者多块74LS20级联。

扩展的时候要注意扇出问题。74LS00的输出驱动能力有限,如果后级输入太多,可能导致电平不稳定。一般74LS系列一个输出能驱动10个左右的同类输入,超过就要考虑加缓冲器。

6.2 加入锁存功能

实际应用中,表决结果往往需要锁存,不能因为输入变化就立刻改变输出。可以在输出级加一个74LS373或者74LS74锁存器,在表决结束时把结果锁存下来。锁存器的真值表和控制时序要单独设计,这里不展开,但思路是在74LS20输出后面串一级锁存。

6.3 用译码器做显示

如果想把表决结果显示成数字或者驱动数码管,可以用74LS48译码器加共阴数码管。把Y信号送进译码器,就能显示0或1。再进一步,可以用温度计译码的方式显示同意人数,不过那就需要更复杂的编码电路了。

6.4 用仿真软件先验证

动手接线之前,可以用Multisim或者Logisim先仿真一遍。把74LS00和74LS20的模型拖进去,按逻辑图连好,跑一遍真值表,确认逻辑没问题再动手。这样能避免因为逻辑错误导致的反复拆线。我一般先用Logisim快速验证逻辑,再用Multisim做时序仿真,最后才上实物。

仿真和实物还是有区别的,仿真里没有接触不良、没有干扰、没有电源波动,所以仿真通过不代表实物一定通过。但仿真能帮你排除逻辑错误,把排查范围缩小到硬件问题上。

7. 写在最后的一些个人体会

这个三人表决电路我搭过很多次,每次都有新收获。第一次搭的时候觉得逻辑很简单,结果接线接了一下午,输出就是不对,最后发现是74LS20的3脚空脚被我当成了输入。后来慢慢熟练了,半小时就能搭好并验证通过。

我的体会是,数字电路实验里,逻辑设计只占三成,剩下七成是接线和排查。逻辑错了可以改,线接错了就得一根根查。所以养成好习惯很重要:接线前画好逻辑图和接线表,接线时用不同颜色的线,接完后先量通断再通电,通电后先测电源再测信号。这些习惯看起来麻烦,实际上能省下大量排查时间。

另外,74LS系列芯片虽然老,但作为学习数字电路的入门芯片非常合适。它的引脚定义规范、逻辑清晰、价格便宜,烧了也不心疼。把74LS00和74LS20玩熟了,再去看更复杂的芯片,会发现底层逻辑都是相通的。

如果你也在搭这个电路,遇到问题可以先对照真值表查逻辑,再对照引脚图查接线,最后用万用表查通断。大部分问题都出在这三个环节里。实在查不出来,换一块芯片试试,有时候就是芯片本身坏了,这种情况虽然少见但确实存在。

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

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

立即咨询