Programming and Interfacing the 8051 Microcontroller