计算机的基础电路:计数器

来自:卫剑文
4年前
已收藏
收藏
阅读数
194
回复数
0

计数器也由若干个触发器组成,是计算机必不可少的器件。与前面的寄存器不同的是,计数器能够将储存在其中的数字加1。计数器有多种类型,如行波计数器、同步计数器、环行计数器、程序计数器及累加器等。


1.行波计数器。 (1)行波计数器的组成与工作原理行波计数器是一种异步二进制计数器,每来一个CLK脉冲,计数器的数据就加1。行波计数器由JK触发器构成,如图2-24所示。
J、K悬浮,相当于J=K=1,由脉冲的下降沿触发。通过CLR将计数器各位清零后,计数器的初值为000第一个计数脉冲CLK到来时,最右(最低位)的J触发器在CIK脉冲下降沿时触发翻转,Q0由0变为1,计数器变为0001;第二个CLK脉冲下降沿使最右JK触发器触发翻转,Q0由1变为0,触发相邻的JK触发器翻转,Q1由0变为1,使计数器变为0010。如此,每来一个计数脉冲CLK,计数器就加1,见表2-6。
(2)可控行波计数器。 在K触发器的J端连接控制端 COUNT,就可对计数器进行控制: COUNT=0时不计数COUNT=1时计数。可控行波计数器的电路原理及符号分别如图2-25和图2-26所示。
2.环行计数器。 环行计数器由D触发器组成,每个D触发器均设复位端CLR,最左端D触发器还设有置位端 PRESET,且均为高电平有效。 环行计数器的电路原理如图2-27所示。 当CLR端输入复位与置位脉冲后,Q0置1,Q1、Q2、Q3均为0。当CIK脉冲到来时,环行计数器的计数过程如下:
环行计数器在Q。置1后,每一个CLK到来时,1逐位左移,各位的波形图如图2-28所示。环行计数器的符号如图2-29所示。
3.程序计数器。 程序计数器也是一个二进制计数器,每来一个CLK脉冲,计数器的数据就加1,但计数起始值可以不是0,由输入的数据确定。 程序计数器用于提供当前执行程序的指令地址码,并在CLK脉冲到来时自动加1,产生下一条指令的地址码。程序计数器的符号如图2-30所示。 4.累加器( Accumulator)。 累加器也是一个移位寄存器,用于临时存储算术运算的中间结果,可对其存储的数据左移和右移。累加器是计算机工作过程中频繁使用的寄存器,其符号如图2-31所示。
寄存器和计数器的基础元件是D触发器和JK触发器,通过不同的电路连接,设置相应的控制端子,就构成了各种用途的寄存器和计数器。
计算机中的运算电路承担二进制数的算术运算和逻辑运算,运算电路的基础元件是半加器和全加器。 1.半加器。 半加器用于1位二进制数的加法运算,其真值表见表2-7。 半加器和S(S=AB+AB)可由异或门实现,进位C(C=AB)用与门实现。电路原理及符号如图2-32所示。
2.全加器。 全加器是考虑低位进位的1位二进制数加法器,其真值表见表2-8。
根据全加器的真值表可求得其和Si和进位Ci+1的逻辑表达式分别为:
全加器的和Si为Ai、Bi、Ci异或,全加器的电路原理及符号如图2-33所示。
3.二进制加法电路。 四位二进制数的加法电路由3个全加器和一个半加器组成,如图2-34所示。 四位二进制加数A=A3A2A1A0,被加数B=B3B2B1B0,和S=C4S3S2S1S0。读者通过随意设置两个四位二进制数,利用四位加法电路中的各全加器FA和半加器HA进行两数相加,即可检验加法电路的功能,并熟悉加法电路的工作原理。
4.可控二进制加法电路。 计算机没有专门的减法电路,而是通过加法电路完成减法运算。将减法运算转换为加法运算的方法是:把减数B转换为其补码,然后与被减数相加,舍去进位(如果有的话),其和就是两数相减的差值。 什么是一个数的补码?我们用十进制数来说明。如果十进制数的原码为6,则这个数的补码为4;如果原码为64,则补码为36;如果原码为364,则其补码为636。也就是说,原码+补码得到一个进位,即:
利用补码将减法运算变成加法运算的原理说明如下:
85是15的补码,与被减数相加后得158,减去进位100后得58,这就是73-15的差值。
二进制数求原码的补码十分简便,只需将原码求反后再加1即可,例如,原码为10100,其反码为各位求反:01011,补码就是0100,而:
在二进制加法电路的基础上加可控反相器,就成了可控二进制加法电路,如图2-35所示。
加可控反相器后,加法电路就可根据需要进行加法或减法运算,用一个控制信号SUB来控制:控制信号SUB=0时,B各位不反相,加法电路进行加法运算;控制信号SUB=1时,B各位反相,并通过C0加1,实现减法运算。减法运算时,C4=1应舍去,运算结果为:S=S3S2S1S0。

上一篇下一篇
参与回答(0条评论)
用户头像
上传
用户头像
{{item.nickname}}{{item.pubtime}}回复
回复图片
用户头像
上传
用户头像
{{item1.nickname}}回复 {{item1.othername}} {{item1.pubtime}} 回复
回复图片
用户头像
上传
查看全部回复{{item.replylist_count}}条 查看全部
收起回复 收起全部
{{isLoadList==1?'加载中...':(isLoadList==2&&(list.length <=3||(list.length>3&&!is_hidden))?'没有更多内容了':'查看更多回答')}}
返回顶部

返回顶部