Programming and Interfacing the 8051 Microcontroller in C and Assembly