JK触发器的逻辑功能比较完善,是目前应用较多的一种触发器。而实际工作中,只需要一个数据控制端的情况也常常存在,这时就需要选用只有一个数据控制端的D触发器了。为便于大家选用,下面把D触发器作一介绍。
图1所示的D触发器由6个与非门组成。其中,与非门A、B组成基本触发器,而与非门C、E和D、F则是两对互锁的触发器。图中,Q、Q-是一对相反的输出端,R-\(_{d}\)是置0端,S-d是置1端。CP是时钟脉冲输入端,D是数据控制端。D触发器的逻辑符号如图2(图中R\(_{d}\)、Sd应改为R-\(_{d}\)、S-d)所示。


图3是D触发器的工作波形图,它反映出D触发器的特性,表明了各端子处信号波形之间的关系。如果把数据控制信号加到触发器的D端,通过时钟脉冲CP一个工作周期之后,就会把D端的状态反映到D触发器的输出端。在对D触发器有了一概括的了解之后,下面我们分几种情况详细地讨论D触发器的各种功能,分析它的工作原理。

D触发器的工作原理
讨论D触发器的工作原理,主要是分析D触发器的内在关系。图3波形是假设触发器的原始状态为Q\(_{n}\)的情况下,来分析数据控制端D所加数据控制信号通过时钟脉冲CP的作用,与触发器的新状态Qn+1的关系。
在图3中,在t\(_{o}\)之前,时钟脉冲CP为低电位0。此时,由于与非门C和D的输入端中有一个CP=0的低电位,因此门C和门D输出为高电位,即QC=1,Q\(_{D}\)=1。虽然此时数据控制端D已变为高电位1,但与非门C、D的状态并不受数据控制信号的影响,仍保持原来高电位1状态。QC=1,Q\(_{D}\)=1,在通常情况下,置0端R-d=1,置1端S-\(_{d}\)=1,假设触发器的原始状态为Qn,由于与非门A和B的状态保持不变,触发器的状态也保持不变。
在图3中,在数据控制端D=1的情况下,我们来讨论时钟脉冲CP的作用将使触发器的状态如何变化。
由于在t\(_{o}\)以前时刻CP=0作用的结果,已使QC=Q\(_{D}\)=1。这样,当数据控制端D由0跳变为1时,就使与非门E的两个输入端均为高电位1,故其输出QE=0。由于Q\(_{E}\)=0直接送入门C和门F,则使门C的输出维持在QC=1,使门F的输出Q\(_{F}\)=1。
在时间t\(_{o}\)时,时钟脉冲CP由0跳变到1后,与非门D因QF=1,CP=1,故其输出Q\(_{D}\)由高电位1变为低电位0。QD=0有三个作用:第一,Q\(_{D}\)=0加到门B的输入端,使其输出Q=1。又因Q=1,QC=1,R-\(_{d}\)=1,使门A的三个输入端均为高电位1,因此门A的输出Q-=0。这就是说,在to时刻,在D=1的情况下,CP=1可使D触发器置1态(Q=1,Q-=0),或者说D触发器的新状态Q\(_{n+1}\)=1。第二,QD=0通过接线1加到门F,使门F有一个输入端为0,故使其输出Q\(_{F}\)维持在1状态,进而维持与非门D的输出为0态,从而维持与非门B的输出即触发器输出为1态。因此,接线1叫做置1维持线。第三,QD=0通过接线3加到与非门C的输入端,使其输出Q\(_{C}\)保持高电位1,进而使与非门A的三个输入端维持全1状态,使其输出Q-=0。所以接线3叫做置0阻塞线。
由此不难看出,Q\(_{D}\)的低电位0,既维持了置1信号,又阻塞了置0信号的产生。在此情况下,数据控制端D的电位变化不会引起触发器状态的变化。以至于时钟脉冲CP由高电位1变为低电位0,触发器的状态也不会发生变化,仍然是Q=1,Q-=0,如图3中波形所示。
综上所述,可概括为在数据控制信号为高电位1(即D=1)时,若时钟脉冲CP由0变为1,此时不论触发器的初始状态Q\(_{n}\)是1态还是0态,总可使触发器变为1态,即新的状态Qn+1=1。
这里再强调一下,在图3波形中,Q\(_{n}\)为假设的触发器的初始状态,若原始状态为0态,当D为高电位的情况下,正的CP脉冲(CP=1)到来时刻也会使触发器变为1态。图中的CP应是标准的时钟脉冲,D是数据控制信号。由图可见,数据信号必须比时钟脉冲CP=1早到一段时间,即D波形比CP波形提前一段时间,这个时间就叫触发器的建立时间。其目的前面已经提到了,为了在时钟脉冲CP=1到来之前,由于D=1,而决定了与非门E、F的状态,进而保证,CP=1时触发器变为1态。为防止误动作,D信号必须在置1维持信号(或置0维持信号)起作用之后,才能撤消。
当数据控制端D=0时,我们来讨论时钟脉冲CP的作用下,触发器的状态将如何变化。
当数据控制端D由高电位1变为低电位0时,时钟脉冲CP仍处在低电位0状态,使与非门C和D被CP=0封锁,其输出Q\(_{C}\)=1,QD=1。这时由于数据控制端D=0,则使门E的输出Q\(_{E}\)为高电位1,这样与非门F的两个输入端全为高电位1,故使其输出QF=0。这就是说,在D由高电位变为低电位的情况下,在这段期间内CP仍为零,触发器并不发生状态变化,只是为触发器的翻转作了准备。
在时间t\(_{1}\)时刻,当时钟脉冲CP由0跳变为1时,与非门C因三个输入端均为1,即CP=1,QE=1,Q\(_{D}\)=1,因此门C的输出由高电位1变为低电位0。这时QC=0有两个作用:一方面Q\(_{C}\)=0加到基本触发器与非门A的输入端,使其输出Q-=1。同时,因Q-=1,QD=1,S-\(_{d}\)=1,则使门B的输出Q=0。也就是说,在t1时刻,在D=0的情况下,CP=1可使D触发器变为新状态,即Q\(_{N+1}\)=0。另一方面,QC通过接线2又反馈回来封锁与非门E,使时钟脉冲CP=1期间,不管数据控制端D的状态如何变化,都能使与非门E的输出Q\(_{E}\)保持高电位1,进而维持QC的低电位不变,维持触发器为0态不变。所以接线2叫做置0维持线。同时与非门E的输出Q\(_{E}\)=1通过接线4加到门F的输入端,使门F的输出保持QF=0,与非门D的输出Q\(_{D}\)保持为高电位1,以阻止触发器回到1态。所以接线4叫做置1阻塞线。也就是说,QC=0,Q\(_{D}\)=1促成了置0信号,同时又阻塞了置1信号的产生。以保证时钟脉冲CP为高电位期间,Q、Q-的状态不发生变化。
当时钟脉冲CP由高电位1跳变为低电位0时,因CP=0封锁与非门D,使其输出Q\(_{D}\)=1,保持Q=0。此时虽然QC由0变为1,但因门A仍有从门B输出送来的低电位0,所以门A输出Q-仍为1,触发器的状态仍不发生变化,仍保持0态。
由以上分析可以看出,不论触发器的初始状态如何,当数据控制端D为低电位0态期间,通过时钟脉冲CP的作用,可使触发器变为0态,即新的状态Q\(_{n+1}\)=0。
综合以上三种情况可得出如下结论:
(1)当CP=0时,封锁与非门C、D,使触发器的状态保持不变。
(2)在D=1期间,若CP由0变为1,不论触发器初始状态如何,总会使触发器变为1态。
(3)在D=0期间,若CP由0变为1,不论触发器的初始状态如何,总可使触发器变为0态。
图4是某厂的路灯自动开关电路。图中,电子钟是利用的厂门口上下班准时钟,每半点和正点送出一串脉冲作为D触发器的时钟脉冲CP。三极管BG\(_{1}\)是驱动电路。电路的工作过程如下:例如早晨五点五十分时天亮了,在光线照射下,光敏二极管导电电阻为600Ω,它与电阻R1串联分压,得到小于0.1伏的电压,即此时数据控制端D为低电平0。到正六点时,电子钟送出CP脉冲,使触发器由原来的1态跳变为0态,BG\(_{1}\)截止,继电器J释放,把路灯关掉。假如在晚上七点二十五分天黑了,光敏二极管因无光照而内阻为50kΩ,此时所有2.8伏的电压加到触发器的数据控制端。到七点三十分时,电子钟送出脉冲CP,使D触发器由0态跳变为1态,Q端输出为高电位1,使BG1导通,继电器吸合,打开路灯。(陈居樽)
