
![]()
Microcontrollers are used in a wide variety of applications in automobiles, appliances, industrial controls, medical equipment, and so forth. This textbook provides a comprehensive glimpse into the architecture, programming, and interfacing of this modern marvel. The Microchip PIC18 family of microcontrollers is used throughout this text to explain the architecture, programming and interfacing of the microcontroller. The PIC18 is chosen because it is the newest 8-bit microcontroller available from Microchip, and what is learned about this family is applicable to the earlier families of microcontrollers from PIC as well as to other microcontrollers from other manufacturers. The level of this textbook is appropriate for educational programs in almost any field of technology or science and also valuable to the experienced practitioner as a reference and to the hobbyist interested in learning about microcontrollers.
The author incorporates many of the techniques learned in the past 40 years of working with and teaching electrical/mechanical computers, electronic computers, microprocessors, and microcontrollers to provide as complete an experience as possible in this field of study. To his credit are 33 textbooks, written in the past 23 years, in the fields of digital electronics, microprocessors, and embedded systems including editions in many languages used throughout the world at the major universities.
The microcontroller is a complete computer system on an integrated circuit containing memory for program as well as data storage and integrated input/output devices. As with any computer system, the microcontroller is programmed to perform a dedicated function. This text provides a fairly complete look at microcontroller programming in both assembly language and in C-language. Although C-language is often used, assembly language programming still appears within C-language programs as blocks of assembly code to perform tasks. In order to understand programming, the text first introduces general computer architecture and then concentrates on the PIC18 family architecture through the remainder of the text. The first chapter also introduces much of the jargon used in the field of microprocessors and microcontrollers.
Once the architecture is known, the next few chapters deal with assembly language programming for controlling the microcontrollers. Many common programming algorithms are presented along with programming examples that show how various tasks are performed in a microcontroller based system. Assembly language programming appears in two chapters, with the second chapter provided for readers that wish an in depth view of assembly language programming. For the programmer mainly interested in C-language the second assembly language chapter is optional. To gain the most from this text, it is recommended that the learner should have some knowledge of introductory computer programming and basic electronics.
After programming is learned in fair detail, the hardware interaction of the microcontroller is investigated with timing and details of interfacing to common electronic components. Many practical example interfaces are presented along with the software drivers required to use them. These include interrupt processing for many peripheral components. Common devices include keyboards, keypads, switches, relays, barcode readers, infrared remote controls, solenoids, sensors, motors, LCD and LED displays, ADCs, DACs, PWMs, as well as a variety of other interfacing components. For connectivity, the USB (universal serial bus) and the CAN (controller area network) are discussed and illustrated with example applications. Throughout the text an attempt was made to introduce and completely explain as many devices as possible and show many complete system applications. By doing so applications can be constructed by cutting and pasting code from the many examples illustrated with minimal changes.
Each chapter contains an introduction that describes the basic concepts explained in the chapter. The body of the chapter illustrates these concepts using many practical example systems that are complete including schematic diagrams, discussions about the operation of the interface, and a complete software listing for each interfacing example. Through these many examples, a good understanding of the microcontroller and its operations in a wide variety of systems is learned.
At the end of each chapter a numeric summary provides a line-by-line review of the material discussed in the chapter. All programs from the text are located on a companion CD-ROM for the use in constructing new system software. This greatly reduces the amount of time required to construct a software system. Finally, to reinforce the concepts presented in each chapter questions and problems are included to provide experience with problem solving and development of microcontroller-based systems. Upon completion of this text the learner will be proficient in microcontroller interfacing, programming, and system design. It is suggested that the text is used in a two course sequence, where the first course mainly provides practice with the assembler and C-language compiler. The second course should concentrate on developing systems using the PIC microcontroller. As a capstone, a senior project course could highlight what a student has learned through the design and construction of a significant project based on the microcontroller.
I am interested in computer, microcontroller, and microprocessor technology. I have been teaching them for over 35 years and continue to do so, on a daily basis even during the summer. In order to maintain contact and provide additional information I have had a presence in the electronic media since 1985, first on Compuserve (which is now owned by America on Line) and now on the Internet where I have had a webpage since 1995. Visit my webpage and view information about many topics and also technical short reports that may aid in learning some aspect of computers, microcontrollers, and microprocessors.
![]()