This book is designed for a first course in microprocessors or it may be used as a reference for practicing engineers. The book is unique in presenting a balanced, integrated topic coverage of assembly language programming, microcontroller programming via the C language, and hardware interfacing. Programming topics are discussed using both assembly language and C, while hardware interfacing examples use C to keep code complexity low and improve clarity. A goal of this book is to prepare students for advanced courses in embedded systems or computer architecture. As such, the topic coverage is wide, with a mixture of software and hardware topics. The assembly language programming topics emphasize the linkage between C language constructs and their assembly language equivalents, so that students clearly understand the impact of C coding choices in terms of execution time and memory requirements. Hardware interface topics included in the textbook cover the fundamentals (parallel, serial, interrupts, A/D, D/A) using devices that do not require an extensive circuits background. Laboratory Projects These provide an extensive off-the-shelf lab experience (13 experiments) for using the PIC18: one experiment on introductory computer architecture topics, four experiments on PIC18 assembly language, and eight hardware experiments. The hardware experiments require the read to breadboard a PIC18F242 system that includes a serial EEPROM, external 8-bit Digital-to-Analog converter, and RS232 interface, and an infrared receiver module. The hardware labs cover all major subsystems on the PIC18: A/D, timers, asynchronous serial interface, and the 12C interface. All hardware labs are programmed in C, using the HI-TECH PICC18 compiler. A supplemental website (www.reesemicro.com) has book C code examples that have been modified to be compatible with both the Microchip MCC18 and HI-TECH PICC18 compilers, as well as lecture notes and sample quizzes.
About the Author
Robert B. Reese is an associate professor in the Electrical and Computer Engineering department of Mississippi State University. He holds a Ph.D. from Texas A&M University and has been teaching digital systems, microprocessors, and CVLSI design for almost two decades. His research interests focus on computer-aided design for asynchronous systems.