This course teaches students how to employ microcontrollers in the designs of embedded systems through applied exercises. Microcontrollers are programmed at the register level using the C language. Students conduct a detailed study of common microcontroller peripherals with an emphasis on their application to real-time control design. Cadets are exposed to addressing, serial and parallel input and output, timing, interrupts, A-to-D and D-to-A conversion, universal asynchronous receiver transmitter protocol, inter-integrated circuit protocol, serial peripheral interface protocol, and low power design. Throughout the course, students practice top-down and state machine design for moderately complex digital systems.