I'm trying to show digits in a 7 segments LCD display using several 74HC595.
I readed some guides about 7 segments with 595, but all the guides are related to 7 segments diodes and not LCD displays wich seem to be different.
I connected the common of the display to GND and each of the segments to the 595 pin, so I expected to get black the segment when the pin of the 595 is set to 1 and transparent when the pin is set to 0.
The code is working OK but I don't get clear digits. Sometimes the segment I want to be black appears to be not completely black but in between connected and not connected. Other times, when I change a digit from black to transparent, it remains in black.
I've been reading and the segment in a LCD display works as a capacitor.
I'm thinking now that the common in the display shouldn't be connected to GND but that I should alternate the common to GND and VCC and when I display a digit, the pins of the 595 may be set to 1 or 0 depending on where is the common tied ( to GND or VCC ), if common is tied to GND the pins would be complementary to the ones if the common is tied to VCC.
To drive LCDs, you need - well, basically you need a LCD driver chip.
If you propose to do it "the hard way", you need a clock source driving a flip-flop (divide by two) to drive the common pin. Then you need an EX-OR gate for each segment pin one input of which is driven by the common driver. The other input is LOW for a segment to be blank and HIGH for a segment to appear.
The segment is blank when it receives the same waveform as the common - no voltage difference, and appears when it receives an AC voltage between the common and an inverted version of that waveform. You use a divide by two to make absolutely sure both the common and segment voltages are symmetrical and have no DC component which will damage the LCD.
Hopefully your experiment to date has not already damaged the LCD.