Сначала отказ от ответственности: я не делал этого с PIC и Java, только с AVR32B с VB на ПК.
Если вы внедрите устройство класса USB CDC в интерфейс USB микроконтроллера и подключите его к USB-хосту своего ПК, оно будет перечисляться и появится в виде нового COM: порта. Это затем обрабатывается приложением как обычный последовательный порт. Я использовал стандартный драйвер Windows USBSER.SYS.
Я предполагаю, что микрочип предоставляет пример исходного кода для своего периферийного устройства USB, чтобы позволить ему работать в разных классах устройств. (Я знаю, что Atmel делают для семейства AVR32)