Designing With Microcontrollers by Tom Almy (Oregon Institute of Technology, Portland). Includes simulator.