Applying PIC18 Microcontrollers: Architecture, Programming, and Interfacing using C and Assembly