☰
TTL半加器实战:用74LS08与74LS86在面包板上搭建数字逻辑电路
2026/10/7 15:41:09 网站建设 项目流程

1. 为什么还要用74系列芯片搭半加器

很多人第一次接触数字电路实验,看到"半加器"三个字,第一反应是打开仿真软件拖两个逻辑门图标连上线,点一下运行,波形出来了,实验报告一交就完事。我当年也这么干过,直到有一次帮学弟调试一块真实的74LS系列板子,才发现仿真里"秒过"的电路,在面包板上能折腾你整整一个下午。

半加器是数字逻辑里最基础也最经典的组合电路之一,它的功能简单到一句话就能说清:把两个一位二进制数相加,输出本位和(Sum)与进位(Carry)。真值表就四行,逻辑表达式也不复杂。但恰恰因为它简单,用它来练手TTL电路搭建是最合适的——你能把全部注意力放在"电平""驱动""布线""干扰"这些真实世界里才会冒出来的问题上,而不是被复杂的逻辑关系分散精力。

TTL,也就是晶体管-晶体管逻辑,是74系列芯片背后的工艺基础。它的输入输出电平有明确的规范:一般输入高电平门槛在2.0V左右,低电平门槛在0.8V左右,输出高电平典型值3.4V以上,低电平0.2V左右。这些数字不是随便定的,它们决定了你手里的芯片能不能可靠地识别对方送来的信号。你在仿真软件里看到的"0"和"1"是理想化的,而TTL电路里,每一个"1"都是实实在在的电压,每一根导线都有电阻、电容和电感。

这篇文章面向的是真正要动手的人:电子、自动化、计算机相关专业的学生,刚入行的硬件工程师,或者纯粹想搞明白"芯片里到底发生了什么"的爱好者。我会从器件选型、真值表推导、面包板布线、实测排错一路讲到常见坑,尽量把每一步"为什么这么做"讲透。你照着做,大概率能一次点亮;就算点不亮,也能顺着排查思路自己找到问题。

提示:本文所有操作基于5V供电的标准TTL逻辑,涉及实际通电操作,请务必在断电状态下插拔芯片和改线,避免短路损坏器件。

2. 半加器的逻辑本质与真值表推导

2.1 从"两个一位数相加"说起

先别急着看芯片型号,我们把问题本身想清楚。两个一位二进制数A和B相加,可能的结果有哪些?

  • 0 + 0 = 0,本位和0,进位0
  • 0 + 1 = 1,本位和1,进位0
  • 1 + 0 = 1,本位和1,进位0
  • 1 + 1 = 10(二进制),本位和0,进位1

把这四种情况列成表,就是半加器的真值表:

ABSum(本位和)Carry(进位)
0000
0110
1010
1101

看Sum那一列:0、1、1、0,这不就是异或(XOR)吗?A和B不同时为1,Sum就是1。再看Carry那一列:只有A和B都为1时才是1,这就是与(AND)。

所以半加器的逻辑表达式非常干净:

  • Sum = A ⊕ B
  • Carry = A · B

这就是为什么热词里会出现74LS08和74LS86——前者是四路二输入与门,后者是四路二输入异或门。用一片74LS86出一个异或结果,用一片74LS08出一个与结果,半加器就成型了。

2.2 为什么叫"半"加器

有半加器就有全加器。半加器只能处理两个输入位,它不接收来自低位的进位。而全加器要处理三个输入:A、B,以及来自低位的进位Cin。两个半加器加一个或门就能拼出一个全加器,这也是为什么理解半加器是理解整个加法器体系的第一步。

在实际的CPU里,加法器是ALU的核心部件之一,而ALU又是指令执行的基石。你从这个四行真值表出发,一路往上能摸到计算机体系结构的门槛。这也是为什么几乎所有数字电路课程都拿它当第一个实验。

2.3 器件选型的几个现实考量

热词里出现了74LS08、74LS86,还有74LS00、74LS32这些常见型号。为什么偏偏选08和86?

从逻辑上讲,半加器需要"异或"和"与"两种运算。74LS86提供异或,74LS08提供与,这是最直接的映射。但如果你手头没有86,也可以用74LS00(四路二输入与非门)搭出异或:一个异或门需要4个与非门,具体接法是——A和B先各接一个与非门做反相,再交叉送入第三个与非门,最后第四个与非门做输出整形。这样一片74LS00就能出一个异或,但会占用全部四个门,Carry还得另找芯片。

从成本和布线复杂度看,直接用74LS86是最省事的。74LS08和74LS86都是14脚DIP封装,引脚排列规整,面包板友好。74LS系列是双极型工艺,驱动能力强,扇出高,但功耗比74HC系列大。如果你只是做实验,74LS完全够用;如果考虑低功耗,可以换74HC08和74HC86,但要注意HC系列的输入电平门槛和LS不同,混用时要查数据手册确认电平兼容性。

注意:74LS系列和74HC系列不要随意混用在同一块板子上做级联,尤其是HC驱动LS时,HC的输出高电平可能达不到LS的输入高门槛,导致逻辑误判。稳妥做法是同一逻辑链路用同一系列。

3. 面包板上的TTL半加器搭建实录

3.1 器件与工具清单

动手之前先把东西备齐,缺一样都会卡住:

  • 74LS86 一片(四路二输入异或门)
  • 74LS08 一片(四路二输入与门)
  • 面包板一块(建议至少400孔,半尺寸的也行但会挤)
  • 5V稳压电源或USB供电模块一个
  • 杜邦线若干(公对公为主,长度10-15cm比较顺手)
  • LED两只(红绿各一,分别指示Sum和Carry)
  • 限流电阻两只(220Ω或330Ω,串在LED上)
  • 拨码开关或跳线帽两个(用来手动切换A、B输入的高低电平)
  • 万用表一只(测电平、查通断,排错必备)

这里重点说两个容易被忽略的东西。第一是限流电阻,LED直接接在TTL输出上会拉大电流,虽然74LS输出能扛住十几毫安,但长期这么干对芯片不好,而且LED亮度会随输出电平波动。串一个220Ω电阻,电流控制在10mA左右,既亮又安全。第二是输入端的处理,TTL输入悬空时会被内部电路拉高,看起来像"1",但这是不可靠的,容易受干扰。所以A、B两个输入必须明确接VCC或GND,不能悬着。

3.2 芯片引脚识别与供电

拿到74LS86,先看缺口或圆点标记,那是引脚1的位置。逆时针数,1到14脚。14脚接VCC(5V),7脚接GND。这是所有74系列14脚芯片的通用规则,记住这一条能省很多查手册的时间。

74LS86的引脚功能:

  • 1A=1脚,1B=2脚,1Y=3脚(第一路异或)
  • 2A=4脚,2B=5脚,2Y=6脚(第二路异或)
  • GND=7脚
  • 3Y=8脚,3A=9脚,3B=10脚(第三路异或)
  • 4Y=11脚,4A=12脚,4B=13脚(第四路异或)
  • VCC=14脚

74LS08的引脚排列和86类似,也是四路二输入,引脚定义一一对应,只是功能是与门。

供电这一步有个细节:面包板的电源轨通常是上下两条,用跳线把5V和GND引到电源轨上,再从电源轨取电给芯片。不要从电源模块直接拉一根长线到芯片14脚,那样线太长容易引入干扰,而且一旦碰掉整块板子断电。先把电源轨布好,后面所有取电都从电源轨走,这是面包板布线的通用习惯。

3.3 分步接线:从异或到与门

接线顺序建议先搭Sum通路,再搭Carry通路,最后接指示。这样每一步都能单独验证。

第一步,给74LS86供电。14脚到电源轨正极,7脚到电源轨负极。用万用表测一下14脚和7脚之间是不是5V,确认供电正常再往下走。

第二步,接异或输入。把A信号接到1脚(1A),B信号接到2脚(1B)。A和B暂时用跳线帽接到GND,也就是先给00。

第三步,接异或输出。3脚(1Y)就是Sum,先不接LED,用万用表测3脚对地电压。A=0、B=0时,异或输出应该是低电平,接近0V。然后把A接到VCC,再测,应该变成高电平,接近3.4V以上。这一步是验证异或门工作正常。

第四步,给74LS08供电,同样14脚VCC、7脚GND。

第五步,接与门输入。A接到1脚(1A),B接到2脚(1B)。注意这里A、B要和异或门的输入是同一个信号源,也就是并联过去。面包板上同一个节点可以用多根线连,或者直接插在同一列。

第六步,接与门输出。3脚(1Y)就是Carry,同样先用万用表验证:A=1、B=1时输出高,其他情况输出低。

第七步,接LED指示。Sum输出串220Ω电阻接红色LED阳极,LED阴极接GND。Carry输出串220Ω电阻接绿色LED阳极,阴极接GND。这样Sum为1时红灯亮,Carry为1时绿灯亮。

第八步,完整验证真值表。依次切换A、B为00、01、10、11,观察两只LED的状态,对照真值表逐行核对。

ABSum灯(红)Carry灯(绿)预期
00灭灭正确
01亮灭正确
10亮灭正确
11灭亮正确

如果四行都对上了,恭喜你,半加器搭成了。如果某一行不对,别急,下一节专门讲怎么排查。

3.4 布线美观与可靠性

面包板布线有个经验:信号线尽量短,电源线尽量粗(或者多根并联),输入输出分区走线。我见过太多人把线拉得横跨整块板子,结果一碰就松,或者信号串扰导致误动作。

具体做法是:把74LS86和74LS08并排插在面包板中间,芯片的输入引脚朝左,输出引脚朝右。A、B信号从左边输入,经过芯片后从右边输出到LED。电源轨在上下两边,芯片的VCC和GND就近接到电源轨。这样走线最短,交叉最少。

另外,每片芯片的电源引脚旁边最好并一个0.1μF的陶瓷电容到地,这叫去耦电容。它的作用是滤掉电源上的高频噪声,防止芯片开关瞬间的电流波动影响其他芯片。虽然半加器这么简单的电路不加也能工作,但养成习惯对以后搭复杂电路有好处。

4. 实测中那些让人抓狂的坑

4.1 LED不亮,但万用表测输出是高电平

这是最经典的坑之一。你测3脚电压是3.5V,明明是高电平,但LED就是不亮。原因通常有两个:一是LED极性接反了,阳极阴极搞反了,LED反向不导通;二是限流电阻太大,比如用了10kΩ,电流只有0.3mA,LED几乎不发光。

排查方法很简单:把LED拆下来,用万用表二极管档测一下,正向导通时会有压降读数,反向不通。确认极性后重新接。电阻的话,220Ω到1kΩ之间都行,太小费电,太大不亮。

4.2 输入切换时输出抖动

你拨动开关切换A或B,LED不是干脆地亮灭,而是闪一下或者半亮。这通常是输入悬空或者开关抖动造成的。

TTL输入悬空时电位不确定,可能被干扰拉高拉低。解决办法是给每个输入加一个上拉或下拉电阻,比如10kΩ上拉到VCC,开关再串一个电阻到地,这样开关断开时输入被上拉电阻确定在高电平,闭合时被拉到低电平。或者直接用拨码开关,它内部有确定的状态。

开关抖动是机械触点通断瞬间的弹跳,持续时间几毫秒到十几毫秒。对于半加器这种组合电路,抖动只影响切换瞬间,稳定后没问题。但如果后面接计数器之类的时序电路,抖动就会被当成多个脉冲,必须加消抖电路。这是后话,半加器阶段知道有这回事就行。

4.3 两片芯片共地没做好

我遇到过一块板子,异或门工作正常,与门死活不出高电平。查了半天,发现两片芯片的GND虽然都接到了电源轨,但电源轨中间有一处没连通,导致与门的GND和异或门的GND不是同一个电位。万用表一测,两片芯片的GND之间居然有0.3V压差。

面包板的电源轨有时候不是整条连通的,中间可能有断点。搭电路前用万用表蜂鸣档测一下电源轨从头到尾是不是通的,不通就用跳线短接。这个检查花不了一分钟,但能省你半小时的排查时间。

4.4 芯片发热甚至烫手

TTL芯片正常工作时会有点温,但不应该烫手。如果烫,先断电,检查几个地方:VCC和GND有没有接反,输出有没有直接短路到地或VCC,输入电压有没有超过5V。

74LS系列输出短路到地时,输出级晶体管会流过很大电流,芯片迅速发热。虽然74LS有输出短路保护,但长时间短路还是会损坏。所以接线时一定要确认输出没有直接接到电源轨上。

还有一个可能是芯片本身坏了。74LS芯片静电敏感,拿的时候没接地,或者插反过,都可能内部击穿。换一片试试是最快的判断方法。

4.5 用74LS00替代86时的陷阱

前面说过可以用74LS00搭异或,但这里有个坑:74LS00的四个与非门,你用其中三个搭异或,第四个门如果输入悬空,它的输出可能振荡,进而通过电源耦合干扰其他门。

解决办法是把不用的门输入端接固定电平,比如都接GND或都接VCC,让输出确定。或者把不用的门输出悬空,输入端接GND。总之不要让不用的门输入悬空。

另外,用与非门搭异或需要4个门,一片74LS00刚好够一个异或,Carry还得另找与门。所以除非手头实在没有86,否则不推荐这么干,布线复杂还容易出错。

5. 从半加器延伸到全加器的思路

5.1 两个半加器拼一个全加器

半加器只能算两个位,全加器要算三个位:A、B、Cin。用两个半加器加一个或门就能实现:

第一个半加器算A和B,得到S1和C1。第二个半加器算S1和Cin,得到Sum和C2。最后C1和C2通过或门得到Carry。

逻辑上很好理解:A+B产生的进位C1,和(A+B)的结果再+Cin产生的进位C2,只要有一个为1,最终就有进位。

用芯片实现的话,需要两片74LS86、两片74LS08、一片74LS32(或门)。或者用一片74LS86、一片74LS08、一片74LS00(用与非门搭或门)。布线量比半加器翻倍,但原理是一样的。

5.2 级联成多位加法器

把多个全加器级联,低位全加器的Carry输出接到高位全加器的Cin输入,就能实现多位二进制加法。这就是所谓的"行波进位加法器"。

行波进位的问题是延迟。每一位的进位要等低位算完才能算,位数越多,延迟越长。8位加法器的进位延迟可能达到几十纳秒。高速CPU里用的是超前进位加法器,通过额外的逻辑提前算出各位的进位,牺牲面积换速度。

你在面包板上搭一个4位加法器,就能直观感受到进位是怎么一级一级传下去的。用LED显示每一位的和与进位,拨动开关输入两个4位数,观察结果。这个实验比半加器有意思得多,但前提是半加器你得先搭明白。

5.3 从实验到实际的差距

面包板上的半加器跑通了,不代表你理解了实际芯片设计。真实的加法器在芯片内部是另一套做法:晶体管级的电路优化、版图布局、寄生参数提取、时序分析,每一步都有大量工程细节。

但面包板实验的价值在于建立直觉。你知道TTL电平不是理想的0和1,知道导线有电阻电容,知道电源噪声会影响逻辑,知道输入不能悬空。这些直觉在你以后看数据手册、做PCB设计、调试硬件问题时,会一次次帮到你。

热词里出现的"ttl版图""ttl电路"这些词,指向的就是从逻辑到物理实现的这条路。半加器是你在这条路上的第一个路标。

6. 几个容易被忽略的实操细节

6.1 万用表测逻辑电平的正确姿势

用万用表直流电压档测TTL输出,黑表笔接GND,红表笔接被测点。高电平读数一般在3.4V到3.6V之间,低电平在0.1V到0.3V之间。如果读数在0.8V到2.0V之间,说明这个点状态不确定,可能是悬空或者驱动能力不足。

注意万用表的内阻。普通数字万用表输入阻抗10MΩ,对TTL电路影响很小。但如果你用指针式万用表,内阻可能只有几十kΩ,接上去会拉低被测点电压,导致误判。测逻辑电平还是数字表靠谱。

6.2 电源的选择与噪声

USB供电方便,但USB口的5V不一定干净,尤其是电脑USB口,可能带着开关电源的纹波。如果电路工作不稳定,可以换一个线性稳压电源,或者在电源轨上并一个大电容(比如100μF)滤波。

电池供电最干净,四节镍氢电池串联约4.8V,接近5V,带74LS没问题。但电池电压会随电量下降,低于4.75V时TTL可能工作不正常。所以实验阶段用稳压电源最省心。

6.3 芯片的插拔与保护

插芯片时对准缺口方向,引脚对准面包板孔,均匀用力按下去。拔芯片时用专用起拔器,或者用小一字螺丝刀从两端轻轻撬。直接用手抠容易把引脚弄弯,甚至掰断。

拿芯片前先摸一下接地的金属物体放静电,尤其是冬天干燥的时候。虽然74LS的抗静电能力比CMOS强,但也不是无敌的。养成习惯没坏处。

6.4 记录实验数据的方法

别光看LED亮灭,把每次测量的电压值记下来。A=0、B=0时Sum脚电压多少,Carry脚电压多少;A=1、B=1时又是多少。这些数据写进实验报告,比单纯写"灯亮了"有说服力得多。

如果条件允许,用逻辑分析仪抓一下输入输出的波形,看看切换瞬间有没有毛刺。逻辑分析仪现在很便宜,几十块就能买到一个USB的,配合电脑软件用,比万用表直观得多。

7. 常见问题速查

现象可能原因排查动作
所有输出都不对供电没接或接反测14脚对7脚电压
某一路输出恒定输入悬空或芯片坏测输入脚电压,换门试
LED微亮限流电阻过大换220Ω电阻
输出高电平只有2V负载过重或芯片坏断开负载再测
切换时输出抖动输入悬空或开关抖动加下拉电阻或消抖
芯片发热短路或接反断电检查接线

这张表建议打印出来贴在工位上,调电路的时候对照着看,能省不少时间。

8. 我个人的几点体会

搭半加器这个事,说简单是真简单,两片芯片几根线的事。但说深也真深,从真值表到逻辑表达式,从逻辑门到TTL电平,从面包板到芯片内部晶体管,每一层都有东西可挖。

我自己的习惯是,每搭一个新电路,先不急着通电,对着原理图把线检查一遍,用万用表蜂鸣档测关键节点通断。这个习惯让我少烧了好几片芯片。还有一点,实验记录一定要当时写,别等做完再回忆,很多细节当时不记,过后就想不起来了。

最后说个小事。有一次我搭好半加器,四行真值表全对,正准备收工,随手碰了一下电源线,LED闪了一下。我重新测,发现A=1、B=1时Carry灯偶尔不亮。查了半天,是电源轨上一个跳线帽接触不良。从那以后,我每次收工前都会轻轻拨动一下所有跳线,确认没有松动的。这个动作花十秒钟,但能避免你下次打开电路时面对一个"莫名其妙坏了"的板子。

硬件实验就是这样,理论再清楚,手上功夫不到家,照样出问题。半加器是个很好的起点,把它搭稳了,后面的全加器、计数器、状态机,都是水到渠成的事。

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

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

立即咨询