Driving a large 7 segment display using a micro-controller
This isn't right, and you're lucky the display needs 9 V or it would have gone up in smoke.  

First, the LEDs are in parallel with the resistors: your emitters go to both LEDs and resistors, and their other connections are to ground. You need them in series.  

Then, your circuit is a common collector circuit. One of the disadvantages is that it can't drive a load higher than the control voltage - 0.7 V, that's 4.3 V, too little for the LEDs. That's where you're lucky, if it were 3 V LEDs they would have been driven with no current limiting at all \$\rightarrow\$ magic smoke.  

There are no single LEDs that work at 9 V. Since you're talking about a large display it will have 4 LEDs in series for each segment, to provide equal lighting. At 2.2 V per LED you arrive near 9 V.

The more common way is to drive them common emitter. That is emitter to ground, and LED + resistor in series on the collector side. For a common emitter you'll also need base resistors. 1 k&Omega; will give you 4.3 mA, which should be enough to drive the BC547 in saturation. You can also use a ULN2803, which is a transistor array of 8 transistors with their base resistors built in. Then you only need one part (except for the current limiting resistors).

Your resistor values are also too high. If each segment needs 9 V and your supply is 12 V then the current though a segment is 3 V/ R. With 10 k&Omega; resistors that's 300 &micro;A, and that's too little for any LED. A typical 20 mA LED would need a 150 &Omega; resistor. But check the display's datasheet for both voltage and current.


The TI TLC5916 mentioned by Michael is an excellent alternative. It's three times the price of the ULN2803, but at 1.24 euro in 1s still won't break the bank (Mouser, 1.65 dollar at Digikey). 



It has constant current outputs, so you don't need the series resistors anymore, brightness won't depend on input voltage variations, and you save I/Os on your controller because it's serially driven. You only need data out, clock, and latch. The current is set with a resistor. 

Michael would still use series resistors, but they're probably not required. If you have 20 mA and a 3 V drop (from 12 V to 9 V) then all LEDs on will give you less than 500 mW, which a 16-pin DIP certainly can handle. At higher currents or input voltage they may be a good idea, though.