You might consider an AVR processor. They are competitive with PIC, but have cross-platform GCC support (i.e., free, awesome C/C++ compiler). The programmer required for programming them can be made from $5 worth of Radio Shack parts if you have a parallel port, or there's a $25 gizmo that does the trick if you only have serial.
If you don't want to do the whole thing from scratch, I'd recommend the ARC board from
www.barello.net or one of the Orangutans from
www.pololu.com. These boards will do everything you want, and a lot more.