当译码器轮流给各寄存器的EN端一个负脉冲时,各寄存器的数据就按顺序传送到8位数据总线上,由CPU读取。这样只要使用8根数据总线就可以获得8n(n为寄存器的个数)个数据,大大简化了电路,因此在单片机系统中得到广泛的应用。
13-2-3移位寄存器
移位寄存器除具有存储数码功能外,还具有使数码移位功能。所谓移位功能,就是寄存器中所存数据,可以在移位脉冲作用下逐次左移或右移。
移位寄存器是计算机及各种数字系统的一个重要部件,其应用范围很广泛。例如在单片机中,将多位数据左移一位就相当于乘2运算,又如在串行运算器中,需用移位寄存器把二进制数一位一位依次送入全加器进行运算,运算的结果又一位一位依次存入寄存器中。另外,在有些数字装置中,要将并行传送的数据转换成串行传送,或将串行传送的数据换成并行传送,要完成这些转换也需要应用移位寄存器。此外,利用移位寄存器还可以构成一些具有特殊功能的计算器等。
根据数码在寄存器中移动情况的不同,又可把移位寄存器划分为单向移位型和双向移位型。从并行和串行的变换来看,又可分为串入/并出和并入/串出移位寄存器两大类。
图13-14是用D触发器组成的单向移位寄存器。其中每个触发器的输出端Q依次接到高一位触发器的D端,只有第一个触发器FF0的D端接收数据。所有触发器的复位端R并联在一起作为清零端,时钟端并联在一起作为移位脉冲输入端CP,所以它是一同步时序电路。
图13-14D触发器组成的单向移位寄存器每当移位脉冲上升沿到来时,输入数据便一个接一个地依次移入FF0,同时每个触发器的状态也依次移给高一位触发器,这种输入方式称为串行输入。假设输入的数码为1011,那么在移位脉冲作用下,寄存器中数码的移动情况如表13-4。可以看到,当经过4个CP脉冲后,1011这4位数码恰好全部移入寄存器中,Q3Q2Q1Q0=1011。这时,可以从4个触发器的Q端同时输出数据库1011,这种输入方式称为并行输出。若需要将寄存的数据从Q3端依次输出(即串行输出),则只需再输入几个移位脉冲即可,如图13-15所示。因此,可以把图13-14所示电路称为串行输入、并行输出单向移位寄存器,简称串入/并出(串出)移位寄存器。
移位寄存器的输入也可以采用并行输入方式。图13-16为一个串行或并行输入,串行输出的移位寄存器电路。在并行输入时,采用了两步接收:第一步先用清零负脉冲把所有触发器清零,第二步利用送数正脉冲,打开与非门,通过触发器的直接置位端S输入数据。然后,再在移位脉冲作用下进行数码移位。设输入数据D3D2D1D0为1011,其工作过程如图13-17所示。
在上述各单向移位寄存器中,数码的移动情况是自右向左,完成由低位至高位的移动功能,所以又称为左向移位寄存器。若将各触发器连接的顺序调换一下,让左边触发器的输出作为右邻触发器的数据输入,则也可构成右向移位寄存器。另外,若在单向移位寄存器中添加一些控制门,在控制信号作用下,则可构成既能左移又能右移的双向移位寄存器,其电路较复杂,这里不再赘述。
13-3-1计数器的特点和分类
1-基本特点
记忆输入脉冲个数的作用叫计数,实现计数操作的电路称为计数器。
计数是一种极为重要的基本操作,因此计数器应用十分广泛,从小型数字仪表到大型电子数字计算机计数器几乎无所不在,是任何现代数字系统中不可缺少的组成部分。
2-分类
按照计数器中各个触发器状态更新情况的不同可分为两大类:一类叫做同步计数器,另一类称为异步计数器。在同步计数器中,各个触发器都受同一时钟脉冲——输入计数脉冲的控制,因此它们状态的更新是同步的。异步计数器则不同,有的触发器直接受输入计数脉冲控制,有的则是其他触发器的输出用做时钟脉冲,因此它们状态的更新有先有后,是异步的。
按照计数器中计数长度的不同,又有二进制、十进制、N进制之分。如果用n表示二进制代码的位数(也就是计数器中触发器的个数),用N表示有效状态数,即编码时已经使用了的代码状态数,那么在二进制计数器中N=2n,在十进制计数器中N=10,在N进制计数器中则是除了2n和10以外的情况。严格来说,二进制和十进制计数器是N进制计数器的特例,是N=2n、10时的特殊情况。常常把N叫做计数器的容量或计数器的计数长度。
按照在输入计数脉冲操作下,计数器中数值增、减情况的不同,又有加法、减法和可逆计数器三种不同类型。随着计数脉冲的输入做递增计数的叫加法计数器,进行递减计数的叫减法计数器,而可增可减的则称为可逆计数器。
13-3-2二进制加法计数器
1-同步二进制加法计数器
二进制只有0和1两个数码,二进制加法的规律是逢二进一,即0+1=1,1+1=10,也就是每当本位是1再加1时,本位就变为0,而向高位进位,使高位加1。
由于双稳态触发器有0和1两个状态,所以一个触发器可以表示一位二进制数。如果要表示n位二进制数,就要用n个双稳态触发器。
综上所述,可以列出4位二进制加法计数器的状态表如表13-5所示。
2-异步二进制加法计数器
从表13-5可以看出二进制加法计数器的特点是:每来一个计数脉冲,最低位触发器翻转一次,而高位触发器是在邻低位触发器从1变为0进位时翻转。根据上述特点,可以用4个J-K触发器组成4位二进制加法计数器,如图13-19所示。图中触发器的J、K端都悬空,相当于1,所以均处于计数状态。最低位触发器的C端作为计数脉冲的输入端,其他各触发器的C端与相邻的低位触发器的Q端相连接,使低位触发器的进位脉冲从Q端输出送到相邻的高位触发器的C端,这符合主从型触发器在正脉冲后沿触发的特点。这样,最低位触发器每来一个计数脉冲就翻转一次,而高位触发器只有当相邻的低位触发器从1变0而向其输出进位脉冲时才翻转。这种连接方式恰好符合二进制加法计数器的特点,因此该电路是一个二进制加法计数器。
工作时,先将各触发器清零,使计数器变为0000状态。第一个计数脉冲到来时,触发器FF0翻转为1,其余各位触发位不变,计数器变成0001状态。第二个计数脉冲输入后,触发器FF0由1变为0,并向FF1发出一个负跳变的进位脉冲,使FF1翻转为1,FF2及FF3不变,计数器变成0010状态。以此类推,计数器状态变化的规律与表13-5所示相同。计数器的工作波形如图13-20所示。由波形图不难看出,每个触发器输出脉冲的频率是它的低一位触发器输出脉冲频率的二分之一,称为二分频。因此,Q0、Q1、Q2、Q3输出脉冲频率分别是计数脉冲CP的二分频,四分频,八分频和十六分频,所以这种计数器也可作为分频器使用。
由于这个计数器的计数脉冲不是同时加到各触发器的C端,因而各触发器的状态变化时刻不一致,与计数脉冲不同步,所以称为异步二进制加法计数器。
13-3-3同步十进制加法计数器
1-电路组成
图13-21是由4个J-K触发器和两个进位门组成的同步十进制加法计数器,CP是输入计数脉冲,CO是向高位进位的输出信号。
2-工作原理
1)方程式
时钟方程
步十进制计数器。
假设图13-21所示电路是十进制数的个位,由图13-22可见,当电路转换到状态1001即9时,进位信号变成高电平,但并不是马上起作用,而是等到下一个——第10个CP脉冲下降沿到来时,CO信号才会驱动高位——十位触发器翻转,同时本位——个位归零,即电路返回到0000状态。当然高位的触发器也应该是下降沿触发的。
3-有效状态、无效状态和自启动
在计数器的分类中已经讲过,编码时使用了的代码状态叫做有效状态,反之,没有使用的状态就称为无效状态。在图13-22中,1010~1111是无效的,因为8421编码中未使用。
电路因为某种原因,例如干扰而落入无效状态时,如果在CP脉冲操作下可以返回到有效状态,则称为能自启动。
计数器在输入计数脉冲的作用下,总是循环工作的,在正常情况下,周而复始地在有效状态中的循环叫做有效循环。反之,把无效循环状态中的循环叫做无效循环,凡是不能自启动的电路,肯定存在着无效循环,这种情况一般在计数器的设计时应设法避免。由图13-22知,8421编码的同步十进制加法计数器能够自启动。
小结
(1)触发器是数字电路的另一种逻辑单元。双稳态触发器有0和1两个稳定输出状态,在一定外界信号的作用下可以从一个稳定状态翻转为另一个稳定状态,因此双稳态触发器是具有记忆功能的元件。
(2)触发器的逻辑功能可用逻辑状态表来表示。根据逻辑功能的不同,触发器可分为R-S、J-K、D、T等几种类型。由于内部电路结构形式不同,因而触发方式和时刻也不同。基本R-S触发器为低电平触发;可控R-S触发器为高电平触发;其他触发器一般多采用时钟脉冲的上升或下级沿触发。从应用的角度出发,读者应在理解的基础上熟练地掌握常用的各类触发器的逻辑功能并记住其逻辑符号。
(3)时序逻辑电路一般是由组合逻辑电路和具有记忆功能的触发器组成的。它的特点是其输出状态不仅与现时的输入状态有关,而且还与电路原来所处的状态有关。常用的时序逻辑电路有许多种,本章主要介绍几种常用的寄存器和计数器的工作原理及逻辑功能。
习题
13-1为什么说双稳态触发器具有记忆功能?
13-2画出已学过各种触发器的逻辑符号并列出其特性表和驱动表。
13-3何为空翻现象?何种触发器有空翻现象?而何种触发器没有?
13-4数码寄存器和移位寄存器有何区别?
13-5试用已学过的各种触发器自己设计一移位寄存器。
13-6一个20位的二进制计数器,它最多能记多少个脉冲?
13-7一个5位的二进制加法计数器,设开始时为01001状态,当最低位触发器再接收8个记数脉冲时,触发器F4F3F2F1F0各为什么状态?
13-8计数器和加法器(全加器和半加器)的区别是什么?
13-9RD端和SD端的输入信号如习题13-9图所示,设基本R-S触发器的初始状态分别为1和0两种情况,试画出Q端的输出波形。
13-10R端和S端的输入信号如习题13-10图所示,设可控R-S触发器的初始状态分别为1和0两种情况,试画出Q端的输出波形。
13-11上沿J-K触发器的初始状态为0,当J、K端和CP端的输入信号波形如习题13-11图所示,试画出Q端的输出波形。
13-12设维阻D触发器的初始状态为0,当D端和CP端的输入信号波形如习题13-12图所示,试画出Q端的输出波形。
13-13根据CP脉冲,画出习题13-13图所示,各触发器的Q端的输出波形。设(1)初始状态为1;(2)初始状态为0。
13-14习题13-14图所示的逻辑电路,有J和K两个输入端,分析其逻辑功能,并说明它是何种触发器。
13-15设同步R-S触发器的初始状态为Q=1,CP、R、S端的输入波形如习题13-15图所示,试画出Q和Q端的输出波形。
13-16设下降沿J-K触发器的初始状态为Q=0,CP、J、K端的输入波形如习题13-16图所示,试画出Q端的输出波形。
13-17CP、A、B端的输入波形如习题13-17图所示,试画出Q端的输出波形。设触发器的初始状态为Q=0。
13-18试用4个D触发器组成一个4位右移移位寄存器。设原存数码为1101,待输入数码为1001。试列出移位寄存器状态变化表。
13-19试用4个T触发器组成一个4位二进制加法计数器。
13-20试列出习题13-20图所示的计数器的状态表,说明它是几进制计数器。设初始状态为000。
13-21分析习题13-21图所示的逻辑电路的逻辑功能,作为何用途?设初始状态为000。
13-22习题13-22图所示的是J-K触发器组成的一位加法计数器,试分析其工作原理。
习题13-22图-23图所示的4位同步二进制加法计数器,设原状态为1101,再输入5个计数脉冲,试写出计数器状态变化表。