CODE学习笔记五——自动操作 1:累加与计数

咳,还是篇幅问题,自动操作还是用两篇文章写吧。

目录

加法器实现累加

之前的加法器执行加法时需要手动输入两个数,运算结果不能保存,现在我们有了锁存器,可以尝试着进行累加计算了;

锁存器保存开关断开,不保存结果;反之保存;
第二排开关闭合,进行累加;否则由外界输入;
没错,此处存在的一个问题是,加法器的结果如果进位了,锁存器无法保存;当然我们可以通过合并两个八位加法器来扩展运算的位, 但是这并不能完美解决进位保存问题。

略加改进

上述的累加计算装置还不甚方便,需要我们频繁的开关两个或者至少一个开关,我们希望找到更简单的方法;
通过对锁存器进行一些改变,我们可以得到更适合的锁存器,相对于原来的锁存器(Or触发器),下面的电路增加了清零输入;

稍加改变我们可以得到一个也许跟麻烦但是更傻瓜的累加器;

减少部件以及冗余过程的结果是重复单一的操作变多了。

计数器

自动操作要达到“自动”水准,就要求我们的电路组合可以对时间进行描述。

边沿触发的锁存器

通过对锁存器进行一些改变,我们可以得到边沿触发的锁存器,相对于电平触发,它看起来更像一个“触发”器

为了使时钟输入(Clk)变成触发型,必须把它自己相反的信号进行触发器的迭代;近当时钟输入由零变一时数据端数据才得以传导到输出端;就像彭的一声:教学楼的灯亮了;
把信号由0变1成为正跳变,由1变0称为负跳变;

DClkQ~Q
0+01
1+10
X0Q~Q

说得形象些,把锁存器看作二级水库;
当Clk为0时,一级闸门打开,二级关闭,D传到到一半;
当Clk为1时,一级闸门关闭,二级打开,D才能继续传输;

振荡器的妙用:分频器

如果把振荡器(clock)接到时钟输入上会有什么结果呢?
(这里假设触发器运算频率远大于振荡器频率)

(Clk左侧的三角形标志代表边沿触发)
我们看看随时间过去的真值表

DClkQ~Q
1001
11(+)10
0010
01(+)01
1001

或许时序图更好观察

对,这个电路成倍降低了原clock的频率!
这就是分频器;

分频器的串并联:计数器

我们尝试着把上述分频器进行“串联”

Clk为原始频率,Q1半之,Q2再半之,Q3又半之;
我们把这四个输出一起来看

再旋转90度,然后就有下表啦!

二进制十进制二进制十进制
0000010008
0001110019
00102101010
00113101111
01004110012
01015110113
01106111014
01117111115

不正是自动计数的计数器吗!!!

八位行波计数器

上述的计数器仅仅串联了三个,如果我们串联七个或者是更多就可以得到计数范围更广的计数器啦,比如:

Clk和八位合并输出:

但这或许仍不是我们想要的,它只会一位一位的数数,无法定时啊

带预置和清零的触发器

我们在构造累加器的时候,加了预置清零的选项,对边沿触发器同样也可以这样做

电路图符号

有了这样的边沿触发器,在通过串联等一系列的方式组成计数器,自然功能会更加强大啦!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值