Microcontrollers and Microcomputers: Principles of Software and Hardware Engineering by Frederick M. Cady

Microcontrollers and Microcomputers: Principles of Software and Hardware Engineering

byFrederick M. Cady

Paperback | July 13, 2009

not yet rated|write a review

Pricing and Purchase Info


Earn 665 plum® points

Ships within 1-3 weeks

Ships free on orders over $25

Not available in stores


This book takes a unique "processor-agnostic" approach to teaching the core course on microcontrollers or embedded systems, taught at most schools of electrical and computer engineering. Most books for this course teach students using only one specific microcontroller in the class. Cady,however, studies the common ground between microcontrollers in one volume. As there is no other book available to serve this purpose in the classroom, readership is broadened to anyone who accepts its pedagogical value, not simply those courses that use the same microcontroller. Because the text ispurposefully processor non-specific, it can be used with processor-specific material, such as manufacturer's data sheets and reference manuals, or with texts such as Software and Hardware Engineering: Motorola M68HC11 or Software and Hardware Engineering: Motorola M68HC12. The fundamental operationof standard microcontroller features such as parallel and serial I/O interfaces, interrupts, analog-to-digital conversion, and timers is covered, with attention paid to the electrical interfaces needed.

About The Author

Fredrick M. Cady is an Emeritus Professor of Electrical and Computer Engineering at Montana State University. He has been honored with several teaching awards, including MSU Bozeman Mortar Board Professor of the Month, MSU Alumni-Chamber of Commerce Award for Excellence, and the Phi Kappa Phi Anna Krueger Fridley Award for Distingui...

Details & Specs

Title:Microcontrollers and Microcomputers: Principles of Software and Hardware EngineeringFormat:PaperbackDimensions:496 pages, 9.25 × 7.5 × 0.68 inPublished:July 13, 2009Publisher:Oxford University PressLanguage:English

The following ISBNs are associated with this title:

ISBN - 10:0195371615

ISBN - 13:9780195371611

Customer Reviews of Microcontrollers and Microcomputers: Principles of Software and Hardware Engineering


Extra Content

Table of Contents

1. Introduction1.1 Computers, Microprocessors, Microcomputers, Microcontrollers1.2 Moore's Law1.3 Microcontrollers1.4 Some Basic Definitions1.5 Notation1.6 Study Plan2. General Principles of Microcontrollers2.1 Introduction2.2 A Typical Microcontroller2.3 The Picocontroller2.4 The Microcontroller's Memory2.5 The Central Processor Unit2.6 Timing2.7 The I/O Interface2.8 The Address, Data, and Control Buses2.9 Some More Instructions2.10 The Final Picocontroller Design2.11 Software/Firmware Development2.12 The Software Development Tool Set2.13 Remaining Questions2.14 Conclusion and Chapter Summary Points2.15 Problems3. Structured Program Design3.1 The Need for Software Design3.2 The Software Development Process3.3 Top-Down Design3.4 Design Partitioning3.5 Bottom-Up Design3.6 The Real-World Approach3.7 Types of Design Activity3.8 Design Tools3.10 Structured Programming in Assembly Language3.11 Program Comments3.12 Software Documentation3.13 A Top Down Design Example3.14 Chapter Summary Points3.15 Bibliography and Further Reading3.16 Problems4. Introduction to the CPU: Registers and Condition Codes4.1 Introduction4.2 CPU Registers4.3 Register Transfers4.4 The Condition Code Register4.5 The Programmer's Model4.6 Conclusion and Chapter Summary Points4.7 Problems5. Memory Addressing Modes5.1 Introduction5.2 Addressing Terminology5.3 Memory Types5.4 Computer Types and Memory Maps5.5 Memory Architectures5.6 Addressing Modes5.7 Stack Addressing5.8 Chapter Conclusion and Summary Points5.9 Problems6. Assembly Language Programming6.1 Assembly Language Programming Style6.2 Structured Assembly Language Programming6.3 Interprocess Communication6.4 Assembly Language Tricks of the Trade6.5 Making it Look Pretty6.6 Conclusion and Chapter Summary Points6.7 Bibliography and Further Reading6.8 Problems7. C Programming for Embedded Systems7.1 Introduction7.2 Major Differences between C for Embedded and Desktop Applications7.3 Architecture of a C Program7.4 Assembly Language Interface7.5 Bits and Bytes - Accessing I/O Registers7.6 Interrupts7.7 Conclusion and Chapter Summary Points7.8 Bibliography and Further Reading7.9 Problems8. Debugging Microcontroller Software and Hardware8.1 Introduction8.2 Program Debugging8.3 Debugging Your Code8.4 Debugging Tools8.5 Typical Assembly Language Program Bugs8.6 Debugging and Testing C Programs8.7 Other Debugging Techniques8.8 Conclusion and Chapter Summary Points8.9 Bibliography and Further Reading8.10 Problems9. Computer Buses and Parallel I/O9.1 Introduction9.2 The Computer Bus9.3 I/O Addressing9.4 More Bus Ideas9.5 Microcontroller I/O9.6 More I/O Ideas9.7 I/O Software9.8 Conclusion and Chapter Summary Points9.9 Problems10. Interrupts and Real-Time Events10.1 Introduction10.2 The Interrupt Process10.3 Multiple Sources of Interrupts10.4 Simultaneous Interrupts - Priorities10.5 Nested Interrupts10.6 Other Interrupts10.7 The Interrupt Service Routine or Interrupt Handler10.8 An Interrupt Program Template10.9 Advanced Interrupts10.10 Watchdog Timer or Computer Operating Properly (COP)10.11 Real-Time Interrupt10.12 Conclusion and Chapter Summary Points10.13 Problems11. Memory11.1 Introduction11.2 A Short History of Random-Access Memory11.3 Semiconductor Memory11.4 Memory Timing Requirements11.5 Chapter Conclusion and Summary Points11.6 Problems12. Serial I/O12.1 Introduction12.2 The Asynchronous Serial Communication System12.3 Standards for the Asynchronous Serial I/O Interface12.4 Asynchronous Serial Hardware Interfaces12.5 ASCII Data and Control Codes12.6 Asynchronous Data Flow Control12.7 Debugging and Trouble Shooting12.8 Asynchronous Serial I/O Software12.9 Synchronous Serial Peripheral Interface (SPI)12.10 SPI Interface Examples12.11 Inter-Integrated Circuit (IIC or I2C)12.12 The Controller Area Network (CAN) Bus12.13 Conclusion and Chapter Summary Points12.14 Problems13. Analog Input and Output13.1 Introduction13.2 Data Acquisition and Conversion13.3 Shannon's Sampling Theorem and Aliasing13.4 A/D Errors13.5 Choosing the A/D Converter13.6 The Analog-to-Digital Converter Interface13.7 Analog-to-Digital Converter Types13.8 Digital-to-Analog Conversion13.9 Other Analog I/O Methods13.10 Conclusion and Chapter Summary Points13.11 Problems14. Counters and Timers14.1 Introduction14.2 The Timer/Counter14.3 Pulse-Width Modulation (PWM) Waveforms14.4 "Real" Real-Time Clock - Clock Time14.5 Conclusion and Chapter Summary Points14.6 Problems15. Single-Chip Microcontroller Interfacing Techniques15.1 Microcontroller Chip I/O15.2 Simple Input Devices15.3 Simple Display Devices15.4 Parallel I/O Expansion15.5 Parallel I/O Electronics15.6 Temperature Measurements15.7 Motor Control15.8 Conclusion and Chapter Summary Points15.9 Bibliography and Further Reading15.10 Problems16. Real-Time Operating Systems16.1 Introduction16.2 The Real-Time Operating System (RTOS)16.3 Conclusion and Chapter Summary Points16.4 Bibliography and Further Reading16.5 ProblemsAppendix A Binary CodesA.1 Binary Codes ReviewA.2 Problems