| 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.
PrerequisitesMaterialsRequired:- Notebook computer required
- ATmega32 Development Board purchased through the MSOE Technical Support Center
Program Outcomes Containing CE 2800
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
ACCE content| General Education |
Math & Science |
Business & Mgmt. |
Construction | Construction Science |
| 0 | 0 | 0 | 0 | 0 |
ABET/EAC content| Engineering topics |
Design |
General education |
Math/Science | Other |
| 4 | No |
0 | 0 | 0 |
ABET/TAC content| Communications |
Math & Science |
HU/SS |
Tech Content | Other |
| 0 | 0 | 0 | 0 | 0 |
CoordinatorWilliam Barnekow, Professor
Last reviewEric Durant, Associate Professor, Program Director, Computer Engineering on Jun 19, 2008
Last updateEric Durant, Associate Professor, Program Director, Computer Engineering on Jun 19, 2008
|