上世纪的计算器没有现在的集成芯片。它们全靠一个个基础元件搭出运算功能。核心逻辑其实很简单。用继电器、真空管或晶体管先拼成“与门”“或门”这些基础逻辑单元。再把这些单元组合成加法器、计数器。最后把加减乘除的规则变成电路里“通电”和“断电”的动作。

整个机器靠四个模块衔接:输入扫描、进制转换、算术核心和输出驱动。少一个都没法正常工作。这就像用积木拼房子。每个模块都有自己的专属作用。

一、输入电路———计算器的翻译器

输入电路的任务很明确。把你按的数字键和功能键变成电路能懂的电信号。上世纪最常用的是“矩阵扫描电路”。它的原理不复杂但特别实用。

假设有10个数字键和5个功能键。硬件上只需要4根行线和4根列线。按键焊在行列交叉的地方。行线接电源,列线通过继电器接地。工作时靠一个“循环扫描器”——其实就是触发器和继电器拼成的小装置——依次给行线通电。

当某根行线通电时,如果对应的按键被按下,列线就会检测到电流并触发继电器。每个按键都有唯一的“行-列”组合。触发后通过编码电路输出4位BCD码。比如按“5”输出0101,按“+”输出1010这种专门的运算指令码。

这里有两个关键细节。一是按键按下时机械触点会“弹跳”,容易导致误触发。所以加了“防抖电路”——用两个继电器交叉连接,延迟信号输出。这相当于让电路“等一等”,避免触点抖动带来的错误。

二是按运算键时,电路会先把当前输入的二进制数据锁存到“数据寄存器”里。这东西就是几个触发器拼成的临时存储区。它先把数存好,等着下一个数输入再计算。

二、进制转换电路———计算器的转换器

计算器内部使用二进制运算,但我们输入和查看结果都用十进制。这就需要进制转换电路当“翻译官”。核心是用4位二进制对应1位十进制的编码逻辑,实现十进制和二进制的互相转换。

十进制转二进制的输入翻译电路,其实就是4个继电器拼成的编码模块。每个十进制数(0-9)都对应唯一的继电器通断组合。比如按“5”,输入电路传来行-列触发信号,就会激活编码电路里“对应二进制第2位和第0位的继电器”,输出0101。

这里有个巧妙设计。4个继电器能组合出16种状态,但十进制只需要0-9(对应0000-1001)。剩下的6种无效组合(1010-1111)靠一个“禁位电路”——其实就是额外加个与非门——给屏蔽掉,避免出现乱码。

二进制转十进制的输出翻译电路由BCD码译码器和“位选电路”组成。算术单元算出来的8位二进制(对应两位十进制数),先被位选电路拆成高4位和低4位,分别送进两个译码器。高4位译成十位数字,低4位译成个位数字。

比如二进制10110110,拆成1011(高4位,译成11)和0110(低4位,译成6),最后显示出“116”。

三、算术核心电路———计算器的运算核心

这是上世纪计算器最核心的部分。所有运算都围绕“加法器”进行。减法、乘法、除法都通过复用加法器实现,不需要额外的复杂运算单元。这体现了上世纪电路设计的极简思路。

加法器:运算的基础

加法器的基础是“全加器”,而全加器又是两个“半加器”加一个或门拼成的。半加器电路很简单:1个异或门输出本位的和,1个与门输出进位。全加器把两个半加器连接起来,第一个处理输入的两个数,第二个处理第一个半加器的结果和低位传来的进位,最后用或门汇总进位。

上世纪主流的是8位加法器,由8个全加器串联而成。前一个全加器的进位输出接后一个的进位输入,形成“进位链”。比如计算25(二进制00011001)加17(00010001),8个全加器依次处理每一位,最后输出00101010(十进制42),再触发进制转换电路翻译成十进制显示。

减法器:靠补码把减法变加法

上世纪计算器没有独立的减法电路,全靠“补码生成电路”复用加法器。补码生成电路由“取反继电器”和“加1电路”组成。取反电路是4个继电器,对应BCD码的4位,输入二进制后,每个继电器的状态都反转。

比如17对应的00010001,取反后变成11101110。加1电路就是一个半加器,把取反后的二进制加1得到补码。

计算25减17时,电路自动触发补码生成模块,把17变成补码,然后计算25加补码——也就是25加(256-17)=264。忽略最高位的1(相当于减去256),剩下的就是42,与减法结果相同。

乘法器:加法器加计数器的“循环操作”

乘法本质是重复加同一个数。电路核心是加法器加触发器计数器的联动。电路由8位加法器、4位触发器计数器和“循环控制继电器”组成。

比如计算6(00000110)乘4(00000100):先把计数器初始化为4,加法器里存储6。然后循环控制继电器触发加法器,把6加6得到12,计数器减1变成3。重复这个过程,直到计数器减到0,触发“停止信号”。这时加法器中的结果24(00011000)就是乘积。

计数器由4个D触发器串联而成。每次加法完成后,接收一个“减1信号”(由全加器的进位信号触发)。当计数器变为0,就输出低电平,切断循环。

除法器:加法器加比较器的“反向循环”

除法本质是重复减同一个数。电路核心是加法器(用于做减法)、比较器和商计数器。比较器由4个继电器拼成,专门检测被减数是否大于减数。如果大于就输出高平,触发减法。商计数器也是4位触发器,每减一次,计数器加1。

比如计算24(00011000)除以5(00000101):先把24存入加法器,5存入补码模块,商计数器初始化为0。比较器检测到24大于5,触发减法(24加5的补码等于24+251=275,忽略256得19),商计数器加1变成1。重复这个过程,直到比较器检测到被减数(最后剩下4)小于5,循环停止。商计数器中的4就是商,剩下的4是余数。

四、输出电路———计算器的显示器

上世纪计算器大多用7段LED或灯泡显示结果。电路核心是“BCD码译码器+显示驱动电路”,把二进制结果变成我们能看懂的十进制数字。

BCD码译码器由多个与门、或门拼成。4位BCD码输入后,输出控制7段显示的信号。比如输入0101(5),译码器就输出“a、b、g、e、f段通电,c、d段断电”的信号。

显示驱动电路是晶体管拼成的开关电路。译码器输出的信号控制晶体管导通,进而点亮对应的LED或灯泡。如果结果是两位十进制(比如42),位选电路会依次激活十位和个位的显示驱动,避免两个数字的信号互相干扰。

上世纪不同时期的显示电路有差异。早期机电式计算器用灯泡显示,驱动电路是继电器直接控制灯泡电源。后来晶体管计算器改用LED,驱动电路使用NPN晶体管,低电平触发导通,功耗更低,显示更清晰。

五、计算机发展史———从继电器到晶体管

上世纪计算器电路的进步,本质是核心元件的替换,但四大模块的逻辑始终保持不变。

1940-1950年代的机电式计算器,核心元件是继电器。加法器、计数器全靠大量继电器串并联,体积庞大。一个加法器就需要几十个继电器,IBM 604的加法电路用了1400个继电器,光进位链电路就有半米长。工作时噪音大,继电器触点容易磨损。

1950-1960年代,真空管替代了继电器。开关速度提升了1000倍,加法器体积缩小到一个机柜大小。但功耗很高,需要专用电源,而且真空管容易烧毁。这时增加了“加速电路”——用额外的真空管放大进位信号,减少了运算延迟。

1960年代后,晶体管和集成电路开始普及。晶体管替代真空管后,功耗大幅下降。1964年夏普CS-10A使用晶体管搭建加法器,体积缩小到字典大小。到了1970年代,集成电路把加法器、译码器全部集成在一块芯片上,电路简化为“芯片+按键+显示管”,不再需要手动连接大量元件。

标签: none

评论已关闭