PIC Microcontroller: An Introduction to Software & Hardware Interfacing