Clark School Home UMD

ENEE440 Microprocessors

Course Description:  Students learn assembly-language programming and embedded systems software development for 8-bit (Microchip ‘PIC’ 18F) and 32-bit (NXP ‘ARM’ LPC23xx) processors.  Students assemble an inexpensive microprocessor board kit which is used in homework for programming practice and device testing.  One project for each processor is given in the form of a product specification and is implemented on the board.  Lectures, readings, homework, and projects cover peripheral device hardware: parallel I/O, interrupt controller, timer/counter, DMA controller, serial communication (uart, SPI, I2C, USB).  Software topics include assembly macros, modular programming techniques, C-language interface, and simple multitasking.

Prerequisite(s): ENEE 350

Corequisite(s): None

Course Objectives:

  • Design real-time microprocessor-based system software to meet a specification
  • Implement a system in assembly language on microprocessor-based hardware
  • Configure and write drivers for a standard set of LSI peripherals (timer, interrupt, serial, parallel, system configuration), other devices (switch array, LED array), and communication protocols (header, checksum)
  • Formulate test procedures for demonstration and validation of a design
  • Document the system design, system test procedures, and write a user manual

Topics Covered:

  • (PIC) cpu, memory, I/O architecture
  • (PIC) data move, control transfer op codes
  • (PIC) arithmetic and logic operations, applications
  • (PIC) macros; C-function interface
  • (PIC) PIC184550 peripheral devices and applications
  • Debug methods, modular programming,  programming style
  • Embedded programming methods; multitasking
  • (ARM) cpu, memory, I/O architecture
  • (ARM) data move, control transfer op codes
  • (ARM) arithmetic and logic operations
  • (ARM) macros; C-function interface
  • (ARM) LPC2368 peripheral devices and applications