Dec 21, 2024  
2018-2019 Undergraduate Academic Catalog 
    
2018-2019 Undergraduate Academic Catalog [ARCHIVED CATALOG]

Add to Portfolio (opens a new window)

CE 2801 - Embedded Systems I

3 lecture hours 2 lab hours 4 credits
Course Description
This course presents a typical embedded microcontroller and assembly language programming as an efficient and direct means of programmatically controlling an embedded system. 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. (prereq: CS 1011 or SE 1011  or experience with a procedural programming language) (coreq: CE 1901  or CE 1900)
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
  • Recognize the role of assembly language programming
  • State the programmer’s model of a typical embedded processor
  • 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
  • Understand the concept and usage of interrupts
  • Given proper documentation, be able to configure and use common microcontroller subsystems such as timers, UART, ADC

Prerequisites by Topic
  • Structured programming techniques such as selection, iteration, and variables
  • Procedural programming fundamentals including functions with arguments

Course Topics
  • Introduction to microcomputer/microcontroller structure from a programmer’s perspective
  • Programmer’s model of the microcontroller
  • Addressing modes and memory types
  • Tool usage (assembler, downloader, simulator, debugger)
  • Microcontroller instruction set
  • Assembly language program structure, including comparisons to high-level languages
  • I/O port configuration and usage
  • Timer subsystem
  • A/D conversion
  • Interrupts, including their use related to the timer and external sources such as pushbuttons
  • Asynchronous serial communication (UART subsystem)
  • Tests and review

Laboratory Topics
  • Tools familiarization: assemble, download, run, and simulate a program given to the student
  • The first student-written program: assemble, download, run, and simulate a program written by the student
  • Simple I/O program, Button I/O
  • Bit banging the LCD display
  • Keyboard scanning program
  • Timing subsystem program
  • A/D program
  • Interrupt-driven program
  • UART serial communication program

Coordinator
Darrin Rothe



Add to Portfolio (opens a new window)