锁存器
锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速的控制器与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个I/O口既能输出也能输入的问题。锁存器是利用电平控制数据的输入,它包括不带使能控制的锁存器和带使能控制的锁存器。
中文名:锁存器
外文名:Latch
性质:一种对脉冲电平敏感的存储单元
特点:可以在特定输入脉冲电平作用下
1、简介
锁存器,Latch,是数字电路中的一产品种具有记忆功能的逻辑元件。锁存,就是把信号暂存以维持某种电平状态,在数字电路中则可以记录二进制数字信号“0”和“1”。
只有在有锁存信号时输入的状态被保存到输出,直到下一个锁存信号。通常只有0和1两个值。
逻辑结构与功能表
8位锁存器74LS373的逻辑图如图所示。其中使能端G加入CP信号,D为数据信号。输出控制信号为0时,锁存器的数据通过三态门进行输出。
累加Latch:
微处理器中运算器部分主要电路结构。
作用是防止算术逻辑单元(ArithmeticLogicUnit,ALU)的输出通过累加器(A)直接反馈到ALU的输入端。
2、原理
CMOS反相器的功能是可以使输出获得跟输入相反的逻辑值,那如果把两个反相器的输入跟输出连接在一起会出现什么情况呢?我们来看下图,假设某个时刻反向器A的输入是1,那么其输出会是0;因为A的输出连接到B的输入端,即反相器B的输入为0,那么其输出会变为1;又因为B的输出连接到A的输入端,即B输出的1反馈回A的输入,对刚才假设的“A的输入为1”进行了确认和加强。此时A的输入确实为1,按A和B的输入输出连接关系,又走了一遍刚才的路程,如此循环,结果是反相器A的输出稳定为0,反相器B的输出稳定为1。这个结构的电路有两个稳定的状态,一般称之为双稳态电路。可见类似的双稳态电路可以稳定地保持其节点中的值(数据),具有记忆功能,这就是锁存器工作的原理。
从上面介绍可看出,首尾相接的两个反相器构成了互相反馈耦合的形态,这就是锁存器的基本电路结构。但是这里是基于一个假设,假设反相器A的输入为1,那么它的输出为0,两个反相器连在一起通过互相反馈加强,则能保持0和1两个值。如果没有这个假设,它能保存的值将是不确定的。这类似于“鸡生蛋还是蛋生鸡”的谜局,要将此电路当锁存器使用,就必须打破这个“是输入先有0,还是输出先反馈回1”的僵局。于是给它加了两个输入端,由于反相器只有1个输入,因此改用或非门来代替。电路结构如下图,根据或非门“只要有一个输入为1,其输出就为0”的特性,当R为1时,虽然有反馈存在,也可以强制输出Q=0;当S为1时,则强制输出Q=1。这就是R-S锁存器,R意为Reset,清零的意思;S意为Set,置1的意思。
R-S锁存器的结构是最基本的锁存结构,实际应用中一般会进行各种改造和扩展,至少会加一个输入端作为控制信号,该信号有效时,锁存器能持续地输入、输出数据。其控制信号一般为高电平,因此锁存器是一种对脉冲电平敏感的存储单元电路,可以在特定输入脉冲电平作用下改变状态。锁存器的最主要作用是缓存,除了特殊用途如异步电路或很简单的逻辑,其他场合已经很少直接应用锁存器,因为其结构简单而且对电平敏感,不适合在主流的对时钟敏感的集成电路中应用。一般都是使用以锁存器为基础的触发器或寄存器。
3、应用场合
所谓锁存器,就是输出端的状态不会随输入端的状态变化而变化,仅在有锁存信号时输入的状态才被保存到输出,直到下一个锁存信号到来时才改变。
锁存器多用于集成电路中,在数字电路中作为时序电路的存储元件,在某些运算器电路中有时采用锁存器作为数据暂存器。
封装为独立的产品后也可以单独应用,数据有效延迟于时钟信号有效。这意味着时钟信号先到,数据信号后到。
在某些应用中,单片机的I/O口上需要外接锁存器。例如,当单片机连接片外存储器时,要接上锁存器,这是为了实现地址的复用。假设,MCU端口其中的8路的I/O管脚既要用于地址信号又要用于数据信号,这时就可以用锁存器先将地址锁存起来。
8051访问外部存储器时P0口和P2口共同做为地址总线,P0口常接锁存器再接存储器。以防止总线间的冲突。而P2口直接接存储器。因为单片机内部时序只能锁住P2口的地址,如果用P0口传输数据时不用锁存器的话,地址就改变了。
看看8051单片机总线操作的时序图对我们很有帮助。由于数据总线、地址总线共用P0口,所以要分时复用。先送地址信息,由ALE使能锁存器将地址信息锁存在外设的地址端,然后送数据信息和读写使能信号,在指定的地址进行读写操作。
使用锁存器来区分开单片机的地址和数据,8051系列的单片机用的比较多,也有一些单片机内部有地址锁存功能,如8279就不用锁存器了。
4、注意事项
并不是一定要接锁存器,要看其地址线和数据线的安排,只有数据和地址线复用的情况下才会需要锁存器,其目的是防止在传数据时,地址线被数据所影响!这是由单片机数据与地址总线复用造成的,接RAM时加锁存器是为了锁存地址信号。
如果单片机的总线接口只作一种用途,不需要接锁存器;如果单片机的总线接口要作两种用途,就要用两个锁存器。例如:一个口要控制两个LED,对第一个LED送数据时,“打开”第一个锁存器而“锁住”第二个锁存器,使第二个LED上的数据不变。对第二个LED送数据时,“打开”第二个锁存器而“锁住”第一个锁存器,使第一个LED上的数据不变。如果单片机的一个口要做三种用途,则可用三个锁存器,操作过程相似。然而在实际应用中,我们并不这样做,只用一个锁存器就可以了,并用一根I/O口线作为对锁存器的控制之用(接74373的LE,而OE可恒接地)。所以,就这一种用法而言,可以把锁存器视为单片机的I/O口的扩展器。
推荐阅读