Multiplexing segment LCD

7segmentdisplaylcdmicrocontrollerpic

I have a segment LCDs of 29 segment and a single BP.
I can display the digits as i wish with a 40 Pin PIC microcontroller.

But now my problem is to multiplex two LCDs of above type, so that i need only single extra I/O pin. But it is not working fine.

I am not able to make segments blank by configuring the BP to a high impedance state and the segment to a logic high.

AND

The segment is not blank when the segment pin is in high impedance state with a logic high in BP.

I think anyone with experience in segment LCD can suggest a good solution

Best Answer

A simple and not very energy-efficient approach for driving two or three backplanes using 3 I/O pins is to wire each backplane to a different pair of I/O pins using two matched resistors (so one plane would connect to 0 and 1, one would connect to 1 and 2, and the third would connect to 0 and 2). Driving two pins one way and the remaining pin the other will cause one backplane to be driven to VDD or VSS while the others are driven to VDD/2 volts. Driving the segment wires high or low will activate or deactivate the corresponding segments on the backplane which is at VDD or VSS, but will not affect the segments on the other backplanes (which will receive half voltage regardless). Cycle through the six interesting combinations of backplane I/O voltages and you can put whatever you want on all three displays. Or, if you just have two backplanes, you may skip the parts of the cycle that would drive the third.

Note that you may discover that even the half-energized parts of the display are too dark. If that is a problem, you can spend a portion of each cycle with all backplane and segment wires driven low. If you make that portion variable, it will be possible to implement display contrast control entirely in software.