CE-2800 Embedded Systems I 3 - 3 - 4


Description

This course presents assembly language programming as the bridge between hardware and high-level programming languages. Topics covered include the addressing modes, register file, and instruction set of a microcontroller; subsystems such as timers and analog to digital conversion; and interrupts. Software control of hardware is stressed. In the laboratory, students design software to demonstrate proficiency in these areas.

Prerequisites

Materials

Required:
  • Notebook computer required
  • ATmega32 Development Board purchased through the MSOE Technical Support Center

Program Outcomes Containing CE 2800

Click to see all the program tracks

Course Learning Outcomes

Upon successful completion of this course, the student will:
  • recognize the role of assembly language programming
  • state the programmer's model of a typical embedded processor (ATmega32)
  • break down the instruction set of a typical embedded processor, recognizing load/store, arithmetic, conditional branch, and unconditional branch instructions
  • construct assembly language programs by using and reusing subroutines
  • apply memory addressing and various addressing modes
  • employ hardware interrupts

Course Topics

  • Introduction to microcomputer/microcontroller structure from a programmer's perspective
  • ATmega32 addressing modes and memory types
  • Tool usage (assembler, linker, downloader, simulator)
  • ATmega32 instruction set
  • Assembly language program structure, including comparisons to high-level languages
  • Timers, counters, and PWM
  • Analog input on the ATmega32: A/D conversion
  • Interrupts, including their use related to the timer and A/D subsystems
  • Tests and review

Prerequisites by topic

  • Programming fundamentals including functions with arguments
  • Good program design techniques

    Laboratory topics

    • Tools familiarization: assemble, link, download, run, and simulate a program given to the student
    • The first student-written program: assemble, link, download, run, and simulate a program written by the student. Suggested topics are math operations, or table lookup
    • First I/O program: suggested program is a bouncing light pattern
    • Button I/O and text output program: suggested program is a count-down timer
    • Keyboard scanning program: suggested programs are calculators, digital locks, etc.
    • Timing subsystem program
    • A/D program
    • Interrupt-driven program

      Course topics by day

      Lecture/Lab topics

      ACCE content

      General Education Math & Science Business & Mgmt. ConstructionConstruction Science
      00000

      View Specific Requirements

      ABET/EAC content

      Engineering topics Design General education Math/ScienceOther
      4No 000

      ABET/TAC content

      Communications Math & Science HU/SS Tech ContentOther
      00000

      Coordinator

      William Barnekow, Professor

      Last review

      Eric Durant, Associate Professor, Program Director, Computer Engineering
      on Jun 19, 2008

      Last update

      Eric Durant, Associate Professor, Program Director, Computer Engineering
      on Jun 19, 2008