标题: 请教51单片机P口不都是有内置的锁存器吗?为何外扩存储器的时候还要额外接锁存器? [打印本页]

作者: STC15W408AS    时间: 2020-7-29 19:00
标题: 请教51单片机P口不都是有内置的锁存器吗?为何外扩存储器的时候还要额外接锁存器?
本帖最后由 STC15W408AS 于 2020-7-29 19:03 编辑


如上图所示,单片机内部的4个P口,都自带有一个D锁存器,为什么用P口扩展程序存储器或者数据存储器时,还要在P口上再接一个D锁存器74LS373?

作者: 圆就是圈圈    时间: 2020-7-29 22:19
我觉得是因为P0口不仅可以做数据总线还可以做地址总线,外加所存器保证地址和数据不互相干扰
作者: 1692483014    时间: 2020-7-29 22:30
两个作用:隔离 和 提高驱动能力。
作者: STC15W408AS    时间: 2020-7-29 22:30
圆就是圈圈 发表于 2020-7-29 22:19
我觉得是因为P0口不仅可以做数据总线还可以做地址总线,外加所存器保证地址和数据不互相干扰

内部不是已经有锁存器了吗?
作者: breakhero    时间: 2020-7-29 23:09
就像你引用的图片里所示,地址和数据复用的端口,如果不使用锁存器锁定地址是无法正常读写存储器的,这里加的锁存器就是要把复用状态分离开来,等于把端口数量扩展。内部的锁存器无法实现这个。
作者: STC15W408AS    时间: 2020-7-29 23:09
1692483014 发表于 2020-7-29 22:30
两个作用:隔离 和 提高驱动能力。

想不通。提高驱动能力,难道这个锁存器芯片可以提升总线上的电流?
作者: STC15W408AS    时间: 2020-7-29 23:16
breakhero 发表于 2020-7-29 23:09
就像你引用的图片里所示,地址和数据复用的端口,如果不使用锁存器锁定地址是无法正常读写存储器的,这里加 ...

意思内部锁存器实现一种端口功能,然后外部的锁存器同时实现另一种端口功能?
作者: breakhero    时间: 2020-7-30 00:09
外扩存储器时,P0口是要工作在总线状态的,存储器地址的低8位信息必须要用额外的锁存器才能在读写时保持,因为地址总线低8位和数据总线复用了,这是51机的设计。
作者: 1692483014    时间: 2020-7-30 00:21
STC15W408AS 发表于 2020-7-29 23:09
想不通。提高驱动能力,难道这个锁存器芯片可以提升总线上的电流?

直接用MCU的io口最大支持20mA电流,用373则没有限制,电流取决于VCC的输出能力。
作者: 1692483014    时间: 2020-7-30 00:26
是哦,楼上说的对,我咋没注意到,这个用373的主要原因是因为地址总线和数据总线都使用了单片机的P0口,所以,在先写地址,再写数据的情况下,要在写地址后将地址锁存,然后再写数据。这样IO口就达到了复用的目的,节省了一半的IO口。
作者: hhdsdy    时间: 2020-7-30 00:31
外扩存储器时,外扩存储器的低八位地址是从P0口输出的,同时数据也必须从P0口输出,这两种输出显然是必须分开的,也就是一个端口分时轮流输出地址或者数据信号,而外扩存储器的地址和数据总线是分开的,所以必须有一个中间器件过渡,将这两种信号给分开,这就是锁存器的用处。
如果你能找到一种低八位地址和数据总线复用的存储器,也就不需要外接锁存器了,但显然你是找不到的,所以外接的锁存器就成了外扩存储器(当然指的是这种存储器而不是24C02之类)必不可少的搭档
作者: gb302    时间: 2020-7-30 08:58
地址和数据复用,不外接锁存器,如何区别是地址还是还是数据呢?
作者: Y_G_G    时间: 2020-7-30 09:00
看不明白就不看了,这是上古时期用的电路,现在不会用这个了,换一个IO更多的单片机几乎是没有增加MCU方面的价钱的,74LS373却要两块一个,而且电路和程序变得更麻烦了如果你一定要学会这个,那就再回去看一下8051入门的硬件知识,好像在STC的数据手册中已经没有介绍了



作者: gbchang    时间: 2020-7-30 10:06
3楼和9楼答非所问,虽然内容是对的,但不是楼主想问的,使他更加疑惑了。
11楼说的对,所以我当初画51电路图时,P0口的网络标号都是类似"AD0~AD7"形式,时刻提醒这是复用总线:



作者: gbchang    时间: 2020-7-30 11:07
至于内部锁存器,是在做总线时,数据读入用的,就是从2732中取指令或者常量表时,得到的数据。
我把P0口的几种状态画了个示意图:



作者: gbchang    时间: 2020-7-30 14:48
至于内部的锁存器,我画了个P0口的工作状态图:



作者: STC15W408AS    时间: 2020-7-30 21:07
gbchang 发表于 2020-7-30 14:48
至于内部的锁存器,我画了个P0口的工作状态图:

太感谢了。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1