Micrprocessors and interfacing: Programming and hardware - Hall, Douglas V (Singapore McGraw-Hill, 1991)