EDN首页   博客首页

日志档案

发表于 2008-2-18 13:40:11

1

标签: 单片机  mcs51  端口  

关于P0口输出是否锁存

        最近的工作涉及到主从机的数据传输,使用的是P0口再加上两根线作为握手信号,采用的方案是把从机作为外围器件,以片外寻址的方式操作,结果发现从机读到的数据是不确定的,突然想起书上提到过,P0口的输出是没有锁存的,后来加了一片74LS377测试,果然通信成功。但这样就得多加一个器件,使产品的成本提高了。那么,可不可以在省去锁存器的情况下实现主从机的通信呢,首先想到的方式是利用mcs51的“多机通信原理”来做,不过那是一种串口通信,而且跟P0口没多大关系。后来直接把主从机的P0口连接起来,以端口的方式操作P0口,居然顺利通关,不禁恍然大悟。
        原来当把P0口以地址/数据复用功能使用时,P0口输出的数据是没有锁存的,而以端口的方式操作P0口,即把P0口当作I/O口使用时,P0口输出的数据是可以锁存的。以前一直不是很明白为什么都说P0口输出无锁存,因为在P0口接上LED时,观察到的LED的状态明明能够保存,icon汗,直到最近才彻底弄清除。       

 

系统分类: 单片机   |   用户分类: MCS51   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(323)    回复(2)  

投一票您将和博主都有获奖机会!

最新评论

  • mile1228

    2008-8-7 17:30:38

    我看的不是很完全明白,感觉是那么回事,我想问下,这个地址操作和端口操作具体对应的是那些语句啊,

  • mile1228

    2008-8-7 17:33:13

    给个具体的程序的例子说明下,谢谢,