(0) items

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.
Microcontrollers and Microcomputers Principles of Software and Hardware Engineering,9780195371611
This item qualifies for

Your order must be $59 or more, you must select US Postal Service Shipping as your shipping preference, and the "Group my items into as few shipments as possible" option when you place your order.

Bulk sales, PO's, Marketplace Items, eBooks, Apparel, and DVDs not included.

Microcontrollers and Microcomputers Principles of Software and Hardware Engineering



Pub. Date:
Oxford University Press
List Price: $120.48

Rent Textbook


Buy New Textbook

Usually Ships in 3-5 Business Days

Used Textbook

We're Sorry
Sold Out


We're Sorry
Not Available

More New and Used
from Private Sellers
Starting at $20.91

Questions About This Book?

Why should I rent this book?

Renting is easy, fast, and cheap! Renting from can save you hundreds of dollars compared to the cost of new or used books each semester. At the end of the semester, simply ship the book back to us with a free UPS shipping label! No need to worry about selling it back.

How do rental returns work?

Returning books is as easy as possible. As your rental due date approaches, we will email you several courtesy reminders. When you are ready to return, you can print a free UPS shipping label from our website at any time. Then, just return the book to your UPS driver or any staffed UPS location. You can even use the same box we shipped it in!

What version or edition is this?

This is the 2nd edition with a publication date of 6/19/2009.

What is included with this book?

  • The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any CDs, lab manuals, study guides, etc.
  • The Rental copy of this book is not guaranteed to include any supplemental materials. You may receive a brand new copy, but typically, only the book itself.

  • Microcontrollers and Microcomputers Principles of Software and Hardware Engineering
    Microcontrollers and Microcomputers Principles of Software and Hardware Engineering
  • Microcontrollers and Microcomputers: Principles of Software and Hardware Engineering; and Software and Hardware Engineering: Motorola M68HC12
    Microcontrollers and Microcomputers: Principles of Software and Hardware Engineering; and Software and Hardware Engineering: Motorola M68HC12


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.

Author Biography

Fredrick M. Cady is 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 Distinguished Teaching.

Table of Contents

Prefacep. ix
Introductionp. 1
Computers, Microprocessors, Microcomputers, Microcontrollersp. 1
Moore's Lawp. 4
Microcontrollersp. 5
Some Basic Definitionsp. 6
Notationp. 8
Study Planp. 8
General Principles of Microcontrollersp. 9
Introductionp. 9
A Typical Microcontrollerp. 9
The Picocontrollerp. 11
The Microcontroller's Memoryp. 21
The Central Processor Unitp. 26
Timingp. 30
The I/O Interfacep. 35
The Address, Data, and Control Busesp. 36
Some More Instructionsp. 36
The Final Picocontroller Designp. 38
Software/Firmware Developmentp. 38
The Software Development Tool Setp. 40
Remaining Questionsp. 44
Conclusion and Chapter Summary Pointsp. 44
Problemsp. 45
Structured Program Designp. 48
The Need for Software Designp. 48
The Software Development Processp. 49
Top-Down Designp. 49
Design Partitioningp. 53
Bottom-Up Designp. 53
The Real-World Approachp. 54
Types of Design Activityp. 54
Design Toolsp. 55
Top-Down Debugging and Testingp. 62
Structured Programming in Assembly Languagep. 63
Program Commentsp. 63
Software Documentationp. 68
A Top-Down Design Examplep. 69
Chapter Summary Pointsp. 73
Bibliography and Further Readingp. 75
Problemsp. 75
Introduction to the CPU: Registers and Condition Codesp. 78
Introductionp. 78
CPU Registersp. 78
Register Transfersp. 79
The Condition Code Registerp. 80
The Programmer's Modelp. 88
Conclusion and Chapter Summary Pointsp. 88
Problemsp. 88
Memory Addressing Modesp. 91
Introductionp. 91
Addressing Terminologyp. 91
Memory Typesp. 92
Computer Types and Memory Mapsp. 92
Memory Architecturesp. 95
Addressing Modesp. 98
Stack Addressingp. 105
Chapter Conclusion and Summary Pointsp. 107
Problemsp. 108
Assembly Language Programmingp. 110
Assembly Language Programming Stylep. 110
Structured Assembly Language Programmingp. 119
Interprocess Communicationp. 125
Assembly Language Tricks of the Tradep. 132
Making It Look Prettyp. 133
Conclusion and Chapter Summary Pointsp. 133
Bibliography and Further Readingp. 134
Problemsp. 134
C Programming for Embedded Systemsp. 141
Introductionp. 141
Major Differences Between C for Embedded and Desktop Applicationsp. 141
Architecture of a C Programp. 144
Assembly Language Interfacep. 146
Bits and Bytes: Accessing I/O Registersp. 149
Interruptsp. 155
Conclusion and Chapter Summary Pointsp. 156
Bibliography and Further Readingp. 156
Problemsp. 157
Debugging Microcontroller Software and Hardwarep. 159
Introductionp. 159
Program Debuggingp. 159
Debugging Your Codep. 161
Debugging Toolsp. 170
Typical Assembly Language Program Bugsp. 174
Debugging and Testing C Programsp. 182
Other Debugging Techniquesp. 184
Conclusion and Chapter Summary Pointsp. 186
Bibliography and Further Readingp. 187
Problemsp. 187
Computer Buses and Parallel I/Op. 189
Introductionp. 189
The Computer Busp. 191
I/O Addressingp. 197
More Bus Ideasp. 206
Microcontroller I/Op. 209
More I/O Ideasp. 211
I/O Softwarep. 211
Conclusion and Chapter Summary Pointsp. 219
Problemsp. 219
Interrupts and Real-Time Eventsp. 222
Introductionp. 222
The Interrupt Processp. 226
Multiple Sources of Interruptsp. 231
Simultaneous Interrupts: Prioritiesp. 232
Nested Interruptsp. 234
Other Interruptsp. 236
The Interrupt Service Routine or Interrupt Handlerp. 237
An Interrupt Program Templatep. 238
Advanced Interruptsp. 240
Watchdog Timer or Computer Operating Properly (COP)p. 241
Real-Time Interruptp. 242
Conclusion and Chapter Summary Pointsp. 242
Problemsp. 244
Memoryp. 246
Introductionp. 246
A Short History of Random Access Memoryp. 246
Semiconductor Memoryp. 248
Memory Timing Requirementsp. 254
Chapter Conclusion and Summary Pointsp. 258
Problemsp. 258
Serial I/Op. 260
Introductionp. 260
The Asynchronous Serial Communication Systemp. 260
Standards for the Asynchronous Serial I/O Interfacep. 264
Asynchronous Serial Hardware Interfacesp. 267
ASCII Data and Control Codesp. 273
Asynchronous Data Flow Controlp. 276
Debugging and Trouble Shootingp. 276
Asynchronous Serial I/O Softwarep. 277
Synchronous Serial Peripheral Interface (SPI)p. 278
SPI Interface Examplesp. 283
Inter-Integrated Circuit (IIC or I2C)p. 293
The Controller Area Network (CAN) Busp. 298
Conclusion and Chapter Summary Pointsp. 305
Problemsp. 306
Analog Input and Outputp. 309
Introductionp. 309
Data Acquisition and Conversionp. 310
Shannon's Sampling Theorem and Aliasingp. 313
A/D Errorsp. 316
Choosing the A/D Converterp. 320
The Analog-to-Digital Converter Interfacep. 323
Analog-to-Digital Converter Typesp. 324
Digital-to-Analog Conversionp. 328
Other Analog I/O Methodsp. 332
Conclusion and Chapter Summary Pointsp. 332
Problemsp. 334
Counters and Timersp. 336
Introductionp. 336
The Timer/Counterp. 336
Pulse-Width Modulation (PWM) Waveformsp. 343
"Real" Real-Time Clock: Clock Timep. 344
Conclusion and Chapter Summary Pointsp. 344
Problemsp. 346
Single-Chip Microcontroller Interfacing Techniquesp. 348
Microcontroller Chip I/Op. 348
Simple Input Devicesp. 351
Simple Display Devicesp. 365
Parallel I/O Expansionp. 368
Parallel I/O Electronicsp. 372
Temperature Measurementsp. 376
Motor Controlp. 377
Conclusion and Chapter Summary Pointsp. 396
Bibliography and Further Readingp. 397
Problemsp. 397
Real-Time Operating Systemsp. 399
Introductionp. 399
The Real-Time Operating System (RTOS)p. 400
Conclusion and Chapter Summary Pointsp. 415
Bibliography and Further Readingp. 416
Problemsp. 416
Appendix Binary Codesp. 419
Binary Codes Reviewp. 419
Problemsp. 432
Solutions to Selected Problemsp. 435
Indexp. 459
Table of Contents provided by Ingram. All Rights Reserved.

Please wait while the item is added to your cart...