@mbox
The simplest solution would be to use SerIn or SerIn2 on a pin that has a TTL buffer. Read the I/O Ports section of the datasheet for the 16F877a as well as the Electrical Characteristics section. Ports A & B have TTL buffers on the pins and only need 2.0V for logic high.
If you must use the hardware UART, I suggest using the circuit in FIG 15 of the app note. If you use FIG 14, the diode forward voltage drop may be marginal for the logic low input voltage (1.0V) unless you use a germanium diode. Read the explanation in the app note.
EDIT: Also, if you use the diode, use the attached circuit.




Bookmarks