In this class, the fundamentals of microcontroller system hardware and firmware design will be explored. Issues such as hardware/firmware partitioning, glue logic, development tools, firmware architecture, firmware design, and firmware debugging will be discussed. The Intel 8051, a very popular microcontroller, will be studied. The architecture and instruction set of the microcontroller will be discussed, and a basic microcontroller platform will be used for students to learn how to design realistic and practical microcontroller systems and applications.

Students will obtain practical experience with the design process and both learn and reinforce their knowledge of specific technical topics covered in the lecture and applied in the lab.

Microcontroller systems are involved in almost every facet of modern life. Cell phones, touch screens, pagers, washing machines, microwave ovens, televisions, video game consoles, GPS devices, network routers, fax machines, cameras, music synthesizers, planes, spacecraft, boats, and cars all contain microcontrollers. Modern cars often contain many microprocessors, performing such tasks as antilock braking, climate control, engine control, audio system control, airbag deployment, etc. Logic analyzers and digital storage oscilloscopes utilize processors to support real-time operation. Even PCs, which are designed around powerful CPUs such as the Intel Pentium i7, contain additional microcontroller systems. Storage devices such as hard disks, solid state disks, CD-RW-, DVD+RW-, and Blu-ray drivers as well as external peripherals such as printers, scanners, and other SCSI, USB, or IEEE 1394 devices all contain microcontrollers. Furthermore, microcontrollers are indispensable tools for automation and intelligent manufacturing as well as robot control.

The tremendous number of applications for microcontrollers has given rise to a high demand for engineers with experience in designing and implementing microcontroller systems. This course will give students hands-on experience and opportunities for experimentation in this exciting field.

Prerequisites: Knowledge of microprocessor architecture and assembly language, microprocessor peripherals, digital design, and the C programming language.

Teacher: Dr. Zhen Liu