| ??? 05/18/03 21:22 Read: times |
#45899 - RE: software filtering advice needed Responding to: ???'s previous message |
Wagar:
Listen to what these people are saying. If you use a pin for an input you must write a "1" to it in the port output latch. That subject has been discussed on this forum 100's of times. I will repeat what the others have said. If you put a '0' in port output latch bit and then try to pull the pin to a high level via some type of external circuit you will damage either one of or both of the microcontroller and the external circuit. The 8051 type port pins operate in "open-drain" mode. They pull down to low at output time when the software writes '0' to the latch. They go to high at output when software writes a '1' to the latch. The high level is put there by a weak pullup resistor that is on the part. An external circuit can easily pull this resistor to a low level then the pin is being used as a low input. When the pin is to be used as a high input the external circuit can either pull it high OR can disconnect from the pin and let the weak pullup resistor make the pin go high. In this latter mode the external circuit is operating in open-drain mode or open-collector mode just like the 8051 works. Note that PORT 0 of a standard type 8051 does not have these weak pullup resistors on board the chip and so, depending on how you use PORT 0 it may be necessary to add external pullup resistors on the pins of this port to get valid high levels on these pins. Michael Karas |



