Microchip PIC16 software and hardware