ECE: Electrical & Computer Engineering
Accredited by ABET
Undergraduate Programs


Fall 2016 textbook list

The Fall 2016 ECE textbook list is available online for students.

Current Prerequisites & Course Offering

For current prerequisites for a particular course, and to view course offerings for a particular semester, see the Virginia Tech Course Timetables.

Return to course list


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

What is the reason for 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.

Typically offered: Fall, Spring. Program Area: Computers.

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

Why are these prerequisites or corequisites required?

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.

Department Syllabus Information:

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
Topic Percentage
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%

Return to course list