所谓锁存器,就是输出端的状态不会随输入端的状态变化而变化,仅在有锁存信号时输入的状态被保存到输出,直到下一个锁存信号到来时才改变。典型的锁存器逻辑电路是 D 触发器电路。
锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速的控制其与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个 I/O 口既能输出也能输入的问题。
在某些应用中,单片机的 I/O 口上需要外接锁存器。例如,当单片机连接片外存储器时,要接上锁存器,这是为了实现地址的复用。假设,MCU 端口其中的 8 路的 I/O 管脚既要用于地址信号又要用于数据信号,这时就可以用锁存器先将地址锁存起来。
8051访问外部存储器时P0口和P2口共做地址总线,P0口常接锁存器再接存储器。以防止总线间的冲突。而P2口直接接存储器。因为单片机内部时序只能锁住P2口的地址,如果用P0口传输数据时不用锁存器的话,地址就改变了。
看看8051单片机总线操作的时序图对我们很有帮助。由于数据总线、地址总线共用P0口,所以要分时复用。先送地址信息,由ALE使能锁存器将地址信息锁存在外设的地址端,然后送数据信息和读写使能信号,在指定的地址进行读写操作。
使用锁存器来区分开单片机的地址和数据,8051系列的单片机用的比较多,也有一些单片机内部有地址锁存功能,如8279就不用锁存器了。
注意,并不是一定要接锁存器,要看其地址线和数据线的安排,只有数据和地址线合用的情况下才会需要锁存器,其目的是防止在传数据时,地址线被数据所影响! 这是由单片机数据与地址总线复用造成的,接 RAM 时加锁存器是为了锁存地址信号。
如果单片机的总线接口只作一种用途,不需要接锁存器;如果单片机的总线接口要作两种用途,就要用两个锁存器。例如:一个口要控制两个 LED,对第一个 LED 送数据时,“打开”第一个锁存器而“锁住”第二个锁存器,使第二个 LED 上的数据不变。对第二个 LED 送数据时,“打开”第二个锁存器而“锁住”第一个锁存器,使第一个 LED 上的数据不变。如果单片机的一个口要做三种用途,则可用三个锁存器,操作过程相似。然而在实际应用中,我们并不这样做,只用一个锁存器就可以了,并用一根 I/O 口线作为对锁存器的控制之用(接 74373 的LE,而OE可恒接地)。所以,就这一种用法而言,可以把锁存器视为单片机的 I/O 口的扩展器。
阅读(1117) | 评论(0) | 转发(0) |