I have a project which i interface AT89C51 to 36 Seven Segments.
each 2 pins of the micro attach to three seven segments through 3 shift-registers.
The seven segments is the large one (about 7 x 4 cm or nearly)
I think AT89C51 can't drive these Segments directly.
What is the soultion ?
The usual trick is to use a BJT to increase the current capacity. If you logic line is high true use an emitter follower. If the logic line is low true, use a grounded emitter stage and do not forget to invert the logic level.
Ever thought of using SPI LED driver chips from Maxim like the MAX6956?
Saves you some pins on your controller and LED current is set with simple resistor...and you don´t need resistor for each LED segment as with ULN drivers...