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