This document provides an overview of embedded systems and embedded C programming. It discusses the basic components of an embedded system including hardware, software and an operating system. It then describes various microcontrollers including the 8051 and PIC microcontrollers. Details are provided on the hardware design of embedded systems including microcontrollers, processors, power supply and signal generation. The document also provides information on embedded C programming including its introduction, avoiding hardware failures, coding standards and example programs.