Close Menu

Embedded Systems

Semester 1

The goal of this course is to provide students with an understanding of the inner workings of embedded system solutions and the underlining technology, which include the development of circuits and embedded software programs. It exposes students to the structure and component of embedded controllers and the tools necessary for the development of embedded systems solutions. Students will also be exposed to the design and implementation processes of embedded system solutions. In addition students will develop the skills necessary to construct circuits and design algorithms to interface devices such as modem, GPS receivers, LCD and other input/output devices with a microcontroller based embedded system.

The learning experience is enhanced with computer-based exercises and assignments. The assignments will include: (1) a take home problem solving questions design to test student understanding of the theory; and (2) a report in the form of an IEEE paper structure on a survey of the state-of-the-art in embedded systems designs. The intent is to expose the student to high level technical publications


Embedded Systems Overview: Introduction and Background; An Embedded System; Processor in the Embedded System; Other Hardware Units; Exemplary Embedded Systems; Embedded System-On-Chip (SOC) and in VLSI Circuits

Microcontroller Overview: Basic Layout; Components; Memory and Register; Instruction Set; The AVR 8-Bits Microcontrollers.

Assembly Programming & Simulation:Assembly Language Structure; Branch, Call and time delay loops; AVR Studio: Editor, Assembler, Simulator, Debugger and Hex Programmer; Simulation of Written Code; STK500 Hardware: Description and Operation; Actual Microcontroller Programming.

Digital & Analog CapabilitiesDigital Input/Output Capabilities; Configuration and Operation of I/O Ports; Digital I/O Port Programming; Analog Input/Output Capabilities; Configuration and Operation of I/O Pins/Ports; Analog-to-Digital Conversion; Analog Peripheral Programming

Interrupt Subsystem: Introduction to concept of Interrupts; Configuration and Operation of Interrupts Sources; External and Internal Interrupts Capabilities; Interrupts Control Flow; Interrupt Vectors and Vector Table;  Programming

Timing Subsystem: Introduction to timer/counters; 8/16-Bits Timers; Configuration and Operation of Timers; Timers Modes of Operation - Counter, Input Capture, Output Compare and Pulse Width Modulation; Watch Dog Timer; Timer Programming

Serial Communication Subsystem:  Parallel vs. Serial Communication; UART and USART; Operation and Configuration; Serial Communication Protocol: Framing, Parity, etc.;  RS232 Serial Ports Layout (DB25 and DB9);  RS232 Standard; Line Drivers; Serial Programming

C Language for Embedded Systems: Introduction to Embedded C; C Language vs. Assembly Language; Introduction to the WinAVR C Compiler; C Structure; Pre-processor Commands; C Types, Operators and Expression; C Control Flow (For, While, If/Else, Switch, etc. Control Structure;  Function and Program Structure.

Operating Parameters & Interfacing: Operating Parameters; Interfacing Input Devices, Switches including de-bounce circuit, Keypad and Keypad Drivers, etc.; Keypad Programming; Interfacing Output Devices, LCD, LED, etc.; LCD Interface Programming; Motor Control, DC Motors, Stepper Motors and Their Drivers, Servo Motors and Their Drivers; Motor Control Programming; Isolators, Optical and Other Isolators; Power Supply and Regulation, Oscillators and Clocks; Interfacing GPS Receivers; GPS NEMA Standard; Interface GSM Modems; Modems’ AT Commands.

Design & Development: Design Plans (Project Specifications, etc.; Sourcing and Selection of Controllers and Components; Designing Circuits; Flowcharts and Programs; Implementation and Packaging; Documentation.

Communication Technology: Introduction to IrDA; Introduction to USB; USB Packets; USB Physical Interface; Implementing USB Interface


One 2-hour theory final exam paper – 60%

Mid Semester exam -   20%

Assignments                 20%

  • Six take-home problem solving assignment of equal weighting (10%)    
  • One paper on a survey of the state-of-the-art in the analogue circuit designs (10%). Report will take the form of that required for an IEEE paper publication.
Learning Objectives: 

At the end of this course students should be able to:

  • identify devices built around embedded system technology.
  • list the components which makes up microcontrollers.
  • describe and explain the operation of each microcontroller component.
  • write and explain simple assembly language programs.
  • write and explain simple embedded C language programs.
  • write and simulate microcontroller programs using software development tools.
  • program embedded controllers using hardware tools.
  • interface different input devices with an embedded controller.
  • interface different output devices with an embedded controller.
  • interface different motors, including dc motor, stepper motor and servo motor, with a      microcontroller.
  • interface serial devices, such as GPS receivers and GSM modems, with a microcontroller.
  • design and construct simple hardware circuits to test and debug developed embedded codes.
  • design and implement simple embedded system solutions.
P14A/(PHYS1411 and PHYS1412) and P14B/(PHYS1421 and PHYS1422) and ELET1400 and M08B/MATH0100, M08C/MATH0110 or Equivalent

Text Book:

AVR Microcontroller and Embedded Systems: Using Assembly and C (Pearson Custom Electronics Technology) Muhammad Ali Mazidi, Sarmad Naimi, Sepehr Naimi

Recommended Readings:

  • Embedded C Programming And The Atmel AVR,2nd Edition, by Richard H. Barnett, Sarah Cox, and Larry O'Cull:Delmar Cengage Learning, 2006
  • Atmel AVR Microcontroller Primer: Programming and Interfacing, by Steven F. Barrett and Daniel J. Pack: Morgan & Claypool Publishers, 2008
  • Embedded Systems: Architecture, Programming and Design,by Raj Kamal, McGraw Hill, 2008.

Online Resources:

Course Code: 
3 Credits
Level 2
Top of Page