COMP_ENG 346: Microprocessor System Design

Quarter Offered

Fall : TuTh 3:30-4:50 ; Ghena


COMP_ENG 203 and COMP_ENG 205


Structure and timing of typical microprocessors. Sample microprocessor families. Memories, UARTS, timer/counters, serial devices and related devices. MUX and related control structures for building systems. Interrupt programming. Hardware/software design tradeoffs.

  • This course fulfills the Systems breadth requirement.


REFERENCE TEXTS: 1. Device data sheets 2. Distributor catalogues

COURSE INSTRUCTOR: Prof. Branden Ghena


COURSE GOALS: The goal is to teach students how to design, build and program embedded systems.


  1. basic digital integrated circuits - AND/OR/NOT gates, latches, demultiplexor
  2. basic structure of a processor - arithmetic registers, address registers, basic addressing modes
  3. basic assembly language programming


  • Week 1: Microcontrollers. 8051 pinout and electrical characteristics.
  • Week 2: Connecting to external RAM and program. Latches and demultiplexors.
  • Week 3: Ports. Onboard special functions – interrupts, timers, serial I/O.
  • Week 4: Special functions continued. Timing analysis.
  • Week 5: 8051 assembly programming, emulators.
  • Week 6: Introduction to a typical microprocessor - 8086. Basic 8086 control signals - DEN, DTR. Bi-directional bus drivers. 8224 clock circuit. 2- and 4-byte bus systems.
  • Week 7: Interrupt structure and the 8259 Interrupt Controller. Priority interrupt systems
  • Week 8: DMA.
  • Week 9: I 2 C buses and devices.
  • Week 10: Multibus and shared bus structures - 8289.

COMPUTER USAGE: Students use PCs to assemble and emulate programs before burning into E/EPROMs. Students use device programmers to generate 2764/2864 program chips for their projects.

LABORATORY PROJECTS: Four labs starting from a simple micro-controller system on a breadboard and leading to a small-scale embedded application that uses most of the typical features (timers, serial IO, ADC/DAC, etc.) built into micro-controllers.


  • Homework - 10 %
  • Labs Assignments - 30 %
  • Midterm Exam - 30 %
  • Endterm Exam - 30 %

COURSE OBJECTIVES: When a student completes this course, s/he should be able to:

  1. Design an embedded system, including both hardware and software.
  2. Decide what level of sophistication the microprocessor needs to have and what additional devices are needed based on the features of the application.
  3. Determine how to connect the microprocessor, memories, and extra devices into a working system.
  4. Read device-timing diagrams for processors, memories, and the like, and determine device timing compatibility.
  5. Read device data sheets and pinout descriptions and understand how to wire the devices together.
  6. Build an embedded system, both hardware and software, using DMA and/or interrupts.
  7. Understand how to use auxiliary circuits, like latches, bus drivers and demultiplexors, to build a system.
  8. Understand how to use UARTS, DAC/ADC devices, serial devices, timer/counter devices and similar devices.
  9. Design the software and coordinate the software and the hardware into an integrated working system.
  10. Identify and communicate the privacy, security, and sustainability aspects of a particular embedded system, as well as design the software and hardware considering these factors.

ABET CONTENT CATEGORY: 100% Engineering (Design component).