Microchip has example PID control code which you can find in application note "AN964 Software PID Control". This example uses the PID peripheral on an 8-bit PIC16F161X. PID control can be configured for other MCUs to match the example by using MPLAB® Code Configurator (MCC). There is a technical brief entitled "PID Control on PIC16F161X by Using a PID Peripheral" which explains how to use the configurator.
For 16-bit devices, Microchip has a royalty-free library of DSP functions. The library contains the documentation and functions needed to implement a PID algorithm. The DSP library is optionally installed with the MPLAB XC16 compiler. Installation places a help file for the DSP library located at:
…\<install location>\Microchip\xc16\vx,xx\docs\dsp_lib