Softserial is a project mainly written in C, it's free.
Bitbanging serial port for Arduino, using interrupt