In this course, the fundamentals of embedded system hardware and firmware design will be explored. Issues such as embedded processor selection, hardware/firmware partitioning, circuit design, circuit debugging, firmware design, firmware debugging, and development tools will be discussed. The PIC16F887, one of the latest microcontrollers from Microchip, will be studied. The MPLAB IDE, Proteus ARES/ISIS and EasyPIC v7 development board are chosen to meet computation, resource, firmware, and hardware development. This course will gear to the integration of hardware modules to construct complex embedded systems, and the programming models and characteristics of various input/output interfaces.