This course teaches students how to employ microcontrollers in the design of an embedded system. Cadets are introduced to the C programming language, which is the foundation for programming embedded systems. Students conduct a detailed study of common microcontroller peripheral devices with emphasis on their application to real-time control design. Cadets practice top-down design of both hardware and software components of moderately complex digital systems throughout the semester. Cadets are exposed to addressing, serial and parallel input and output, timing, interrupts, A-to-D and D-to-A conversion. Additionally, real-time operating systems will be introduced through the use of programmable devices and soft-processors. The cadets will learn the basics of implementing an operating system on an embedded device and linking peripherals to the processor via the operating system.