Well, have you checked the obvious first? That is, have you put the scope on the input pin of the chip to see if you're hardware routing the output right back?
After that, if it were me once I verified the hardware, I'd single step the tx routine through and see that the data goes out, character by character, and that the input holding register stays empty. Then I'd hook up a terminal and transmit single characters, and single step through your routines and watch them appear.
Message Edited by mke_et on 2007-11-20 07:50 AM