EE 309E - Microprocessor and Interfacing, May 2009