It’s entirely logical that low-cost miniature microcontrollers have fewer ‘legs’ than their bigger brothers and sisters – sometimes too few. The author has given some consideration to how to economise on pins, making them do the work of several. It occurred that one could exploit the high impedance feature of a tri-state output. In this way the signal produced by the high impedance state could be used for example as a CS signal of two ICs or else as a RD/ WR signal.
Circuit diagram:
All we need are two op-amps or comparators sharing a single operating voltage of 5 V and outputs capable of reaching full Low and High levels in 5-V operation (preferably types with rail-to-rail outputs). Suitable examples to use are the LM393 or LM311.The resistances in the voltage dividers in this circuit are uniformly 10 kilo ohms. Consequently input A lies at half the operating voltage (2.5 V), assuming nothing is connected to the input – or the microcontroller pin connected is at high impedance.
The non-inverting input of IC1A lies at two thirds and the inverting input of IC1B at one third of the operating voltage, so that in both cases the outputs are set at High state. If the microcontroller pin at input A becomes Low, the output of IC1B becomes Low and that of IC1A goes High. If A is High, everything is reversed.
source by :streampowers