9、自动操作(初级版)

回头看一下前面加法器的结构图,通过开关一个数一个数地输入,然后把结果通过点炮显示出来。

很显然,上面的加法器存在一个很大的缺陷:假如要把100个二进制数加起来,则必须一个一个数的进行输入来累加。而且,当你不小心输入错误的时候,则必须重新再输入一遍。

现在,我们来完善这个加法器。

前面我们已经构造了一个64KB的RAM阵列,我们可以把这100个数给输入到RAM阵列中,而不是直接输入到加法器,直到100个数都输入正确之后,然后开始从RAM阵列读取数据进行计算。

第一步应该实现一种控制面板可以辅助我们对这块64KB存储器操作--包括写数据和读数据。在这款控制面板上,有16个开关用于控制地址位,还有8个开关用来控制要输入的8比特数据。写操作端也需要一个开关来表示,8个灯泡用来显示8位数据,这个控制面板如下所示:

初始状态下的所有开关均设置为0。其中右下角有一个标识为控制端的开关,这个开关的作用是确定由控制面板还是由外部所连接的其他电路来控制存储器。如果其他电路连接到与控制面板相连的存储器,这时控制端置0,此时存储器由其他电路系统接管,控制面板上的其他开关将不起任何作用。当控制端置1时,控制面板重新获得对存储器的控制能力。

这种功能可以通过一些2-1选择器来实现。仔细数一下会发现,我们需要25个2-1选择器--其中包括16个地址输入、8个数据输入以及1个写操作端。电路图如下所示:

当控制端开关断开,RAM阵列的地址端、数据输入和写操作端的数据全部来源于外部信号,也就是2-1选择器的左上角的输入信号。当控制端开关闭合,RAM阵列的地址段、数据输入和写操作的数据全部来源于控制面板开关发出的信号。但最终RAM阵列的输出信号都会传输到8个灯泡上或其他可能的地方。

下面就是这副控制面板和64KB RAM阵列的逻辑结构框图:

 

第二步就是需要把RAM阵列同加法器连接起来,需要做到把RAM阵列的100个数一次数据输出到加法器中进行计算。

可能你想不到,可以使用前面说过的16位计数器就可以控制RAM阵列的地址信号,计数器会输出(0x0000 - 0xFFFF)的计数值,因此它可以作为RAM阵列的地址信号。下面给出电路图,省略了RAM阵列的写操作端和输入(控制面板操作的信号):

要使用它,首先需要闭合清零开关,这样做的目的是清零锁存器中的内容,并且把16位计数器的输出置位0x0000,然后闭合RAM控制面板的控制端开关。现在就可以从地址0x0000开始输入一组需要计算的数值,如果是100个数,那就是将它们存放在0x0000 - 0x0063的地址空间中(同时也应该RAM未使用的地址空间置位0)。然后闭合RAM控制面板的控制端开关(这样子控制面板不再控制RAM阵列),同时断开清零开关。做完了这些,就可以静静等待,观察灯泡来显示运算结果。

我们来看一下,它是如何工作的:

当清零开关断开,RAM阵列的地址输入是0x0000。RAM阵列的该地址存放的8位数值是加法器的输入数据。加法器的另一端输入数据为0(初始化)。振荡器输出时钟信号,0到1的跳变的时候,有2个事情发生,第一是锁存器保存加法器的计算结果,第二是16位计时器增1,指向RAM阵列的下一个地址单元。

因此时钟信号第一次跳变,计算第一个数和锁存器的初始值(0x0)

时钟信号第二次跳变,计算第一个数和第二个数,并保存到锁存器

时钟第三次跳变,计算第三个数和锁存器的值。(也就是前3个数)

按照这种方式往复操作。

 

需要注意的是,首先要做一个假设,最主要的一点就是,振荡器要足够慢以使电路的其他部分可以工作。每次时钟震荡的过程中,在加法器的输出有效的结果之前,一些继电器必须去触发其他继电器。

 

在这个电路中还存在一个缺陷是:我们没有办法使它停下来。当计数器达到0xFFFF的时候,它会回滚到0x0000,这时自动加法器会再一次把所有数累加到已经计算出结果的中去。

另外还存在一个问题是:它只能做8位数的加法,并且计算结果需要小于255。

 

虽然有这么多缺陷,但是不管怎么样,它还是可以实现了自动操作。后面,还会慢慢的完善它。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值