This is really an edit, time expired when I went back...
***********************************************
@funnydrummer: You don't need resistors on the base of an emitter follower so you can delete those entirely. If you're opposed to using resistors for current limiting (which is the only reason I can see to stack up diodes like you have from the supply, (which is a really bad idea but I'm not going into that) you can use a constant current regulator (CCR) device like the NSI45020T1G from ON Semi (Mouser, $0.34 each). If you use a CCR device you can get rid of all the transistors and resistors entirely and use just the CCR. Put one per drive segment (they can be used high side or low side, see attached schematic). Run the PIC from 5V (voltage regulators are a good thing, why you wouldn't use one I don't know) and there you go.

You're going to need a 0.1uF on each Vdd pin, not just the one you have on the power supply line. While you're at it I'd put at least a 100uF cap on the power supply line as well. It doesn't look like you have a connector for doing ICSP so writing code and debugging will not be any fun at all (unless you like pulling a 40 pin part from a socket for every little change you make to code). If you plan on clipping to the PIC for programming you have no provision for isolating the Vpp line. There is no electrical reason at all for using pull-ups on two switches and pull-downs on the other two, as well as keeping track of that in code is unnecessary. You really should look at the schematic I posted. And why would you post C code on the Pic Basic forum?


@Svrzic: The PDF schematic that is posted is FOR DISCRETE LEDS. Regardless if you buy them packaged or use discrete components the schematic is the same. I think you said you're 17 years old. Good for you for your interest in electronics but it sounds like you need to back up a bit and start with something a little easier.

Attachment 6142