Undergraduate PROGRAMS

Course Information


Operation and applications of microcontrollers, including system level organization, analysis of specific processors, and software and hardware interface design.

Why take this course?

An understanding of microcontrollers is fundamental to the computer engineering and electrical engineering professions. This presents details of one or more microcontroller architectures, building on material learned in prerequisite courses. Principles of low-level program execution and interfacing to peripherals are emphasized in this course. The course prepares the student with a set of concepts common to many different embedded systems.


A C- or better is required in all prerequisites. Pre: 2504

This course assumes that students can design basic combinational logic circuits and simple circuits using flip-flops, analyze and use binary numbers and arithmetic, develop simple assembly language programs, and analyze basic computer organizations, as covered in ECE 2504. Students must also be competent in C/C++, as taught in 1574, and must be able to use a personal computer to execute software development tools. A grade of C- or better is required in 2504 because the material in that course provides an essential foundation for the material covered in 2534. Students without sufficient mastery of this essential material are at increased risk of failing ECE 2534.

Major Measurable Learning Objectives

  • Develop software for microcontroller systems using a high-level programming language
  • Demonstrate familiarity with common microcontroller subsystems, such as timer modules
  • Demonstrate an ability to use both polling and interrupt-driven approaches for interfacing a microcontroller with peripheral devices
  • Develop and analyze software to interface a microcontroller with common peripheral devices, such as switches, visual displays, digital-to-analog converters, analog-to-digital converters, and flash memory to produce a system to accomplish a specified task
  • Design interfaces to external devices connected to the microcontroller using a standard bus
  • Describe the roles of microcontrollers in contemporary systems, including common consumer products

Course Topics


Percentage of Course

Introduction to Embedded Computing 5%
Microcontroller systems 10%
Low-level C programming techniques 10%
Memory mapped I/O 10%
Polling 10%
Handshaking 10%
Interrupts and DMA 15%
Timers 10%
External interfacing 15%
Applications 5%