Asee peer logo

Experience Of Teaching Embedded System Design

Download Paper |


2008 Annual Conference & Exposition


Pittsburgh, Pennsylvania

Publication Date

June 22, 2008

Start Date

June 22, 2008

End Date

June 25, 2008



Conference Session

Hardware Descriptive Language Education

Tagged Division

Computers in Education

Page Count


Page Numbers

13.588.1 - 13.588.8



Permanent URL

Download Count


Request a correction

Paper Authors

author page

Han-Way Huang Minnesota State University-Mankato

Download Paper |

NOTE: The first page of text has been automatically extracted and included below in lieu of an abstract

Abstract This paper reports our experience of teaching embedded system design. Embedded system design is the second microcontroller course in our microcontroller course sequence. In the first microcontroller course, we taught assembly language programming and basic microcontroller interface concepts. In the embedded system design course, the focus was on effective system design and development.

The course started with the definition and features of embedded systems and then moved on to system development methodology. C language was chosen as the language for programming embedded applications. Top-down design and hierarchical refinement were taught as the system development methodology. Students learned to think in blocks rather than in a single C language statement.

Systematic software and hardware debugging were taught. With a well-understood algorithm, students would know what the program execution result should be at certain point of their programs. This helped students to pinpoint the software bugs. For the hardware bugs, the students were taught to first make sure the circuit connection and the expected signal waveform during the program execution process. From there, students learn to locate the source of errors.

Programming style is another area that deserves a lot of attention. By following certain guidelines, many syntax errors can be avoided while at the same time programs become more readable and extensible. Students were taught to write reusable code. They were taught to convert common operations into functions and group them into files so that they could be included in other projects and be reused.

The choice of microcontroller to teach in an embedded system course is also important. There are several microcontroller families with good development tools and demo boards support. We have taught the Freescale HCS12, Microchip PIC18, and Silicon Laboratory C8051 in the embedded system class in the last few years. We felt that they are all very suitable for such an endeavor. All of these three families of microcontrollers have inexpensive software development tools and feature-rich demo boards for lab use. We have taught most of the peripheral functions available in the microcontroller including I/O ports, timers, compare/capture/PWM, UART, SPI, I2C, A/D, D/A, CAN, and on-chip flash memory programming. Interrupts have been used extensively to allow multiple operations to be overlapped.

Introduction In our first microcontroller course, we taught students assembly language programming and basic microcontroller interfacing concepts. Learning assembly language programming gave students an intimate feeling about how microcontroller hardware functions. On the other hand, they discovered that assembly language was not a productive language. In the embedded system design course, C language is chosen as the programming language. C language enables us to cover topics in a pace much faster than the assembly language. Our goal is to teach students to become an effective embedded system developer. The following topics became the focus of this course:


Huang, H. (2008, June), Experience Of Teaching Embedded System Design Paper presented at 2008 Annual Conference & Exposition, Pittsburgh, Pennsylvania. 10.18260/1-2--4485

ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2008 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015