Microprocessors and Interfacing: programming and hardware - Hall, Douglas V (Tata McGraw-Hill, 1996)