Fall 2014 - ECE470/570: Microprocessor-Based System Design

Unit 1: Introduction to Microprocessor-Based Systems

Unit 2: Review of number systems and binary arithmetic

Unit 3: Overview of the HCS12 Microcontroller

Unit 4: Assembly Language Programming

Unit 5: Hardware and Software Development Tools for the HCS12

  • Lecture Notes - Unit 5
  • Examples:
    • unit5a.asm: Display DIP SW state on LEDs
    • unit5b.asm: Display hex value from DIP SW (4 LSBs) on all 7-seg displays
    • unit5c.asm: Display 4 hex values from memory on the 7-seg displays. Rotate digits to the left every sec.
    • unit5d.asm: Display value from keypad on all 7-seg displays
    • unit5e.asm: RGB LED control via DIP Switch (3 LSBs)

Unit 6: C Language Programming

  • Lecture Notes - Unit 6
  • Examples:
    • C Programming in CodeWarrior with the HCS12
      • unit6a.c: Add numbers in an array
      • unit6b.c: Compute the average of an array. Display on the LEDs: average OR DIP Switch
      • unit6c.c: Compute the Fibonacci numbers up to 'n' (n < 47)
      • unit6d.c: Display on the LEDs the maximum (if SW0=1) or minimum (if SW0=0) of an array
      • unit6e.c: For an input array, compute a polynomial function. Place results on an output array
    • Mixed C/ASM Programming in CodeWarrior in HCS12
      • unit6f.zip: Add a global variable to an input parameter
      • unit6g.zip: Display a 4-byte number on the 7-segment displays
      • unit6h.zip: Display value from keypad on all 7-segment displays

Unit 7: Interrupts and Exceptions

  • Lecture Notes - Unit 7
  • Examples:
    • unit7a.asm: ASM: 8-bit LED count. /IRQ interrupt increases the count
    • unit7b.c: C: 8-bit LED count. /IRQ interrupt increases the count
    • unit7c.c: 8-bit LED count. /PORTH interrupt increases the count
    • unit7d.asm: 8-bit LED free count (every 250 ms). /XIRQ interrupt sets the count at $FF
    • unit7e.asm: 8-bit LED free count (every 250 ms). RTI activated yellows LED every 130 ms. It holds count if DIP Switch is not $8E

Unit 8: Parallel I/O

Unit 9: Timer functions

Unit 10: Serial communication (SCI, SPI, I2C)

Unit 11: Analog to Digital Conversion

Unit 12: Introduction to Controller Area Network (CAN)

Homeworks, Quizzes, Exams


Hardware: Dragon12-Light Board pre-loaded with Freescale Serial Monitor for CodeWarrior: The board includes the MC9S12DG256BCPV device (112 LQFP package). A User Guide is available for the MC9S12DT256. The only difference is that the MC9S12DT256 (112 LQFP package) has an extra CAN port(as per the MC9S12D family datasheet)

Software: CodeWarrior for HCS12(X) Microcontrollers (Classic) v.5.1 (Special Edition)

Laboratory Assignments


List of Projects




Reconfigurable Computing Research Laboratory (RECRLab), Electrical and Computer Engineering Department, Oakland University