usb interfacing chip with pic16f877a
in my opinion, change your target device from 16F877A to PIC18F4550, this MCU has nearly the same GPIO ports assignment like the 16F877, beside the USB firmware is available on microchip website:
**broken link removed**
otherwise use FTDI chips like FT245 USB-parallel or FT232 USB-serial converter, but still recommend PIC18F4550.
if you used it i also recommend to use microchip CDC firmware (available in the link above inside the software package you will download) cause it will emulate a PC COM port and will be easy to implement application on the host (PC) to communicate with the PIC18F4550 using win32 API's in visual C++ or V BASIC.
good luck