Because Knetbooks knows college students. Our rental program is designed to save you time and money. Whether you need a textbook for a semester, quarter or even a summer session, we have an option for you. Simply select a rental period, enter your information and your book will be on its way!
| Preface | p. ix |
| Introduction | p. 1 |
| Computers, Microprocessors, Microcomputers, Microcontrollers | p. 1 |
| Moore's Law | p. 4 |
| Microcontrollers | p. 5 |
| Some Basic Definitions | p. 6 |
| Notation | p. 8 |
| Study Plan | p. 8 |
| General Principles of Microcontrollers | p. 9 |
| Introduction | p. 9 |
| A Typical Microcontroller | ... MOREp. 9 |
| The Picocontroller | p. 11 |
| The Microcontroller's Memory | p. 21 |
| The Central Processor Unit | p. 26 |
| Timing | p. 30 |
| The I/O Interface | p. 35 |
| The Address, Data, and Control Buses | p. 36 |
| Some More Instructions | p. 36 |
| The Final Picocontroller Design | p. 38 |
| Software/Firmware Development | p. 38 |
| The Software Development Tool Set | p. 40 |
| Remaining Questions | p. 44 |
| Conclusion and Chapter Summary Points | p. 44 |
| Problems | p. 45 |
| Structured Program Design | p. 48 |
| The Need for Software Design | p. 48 |
| The Software Development Process | p. 49 |
| Top-Down Design | p. 49 |
| Design Partitioning | p. 53 |
| Bottom-Up Design | p. 53 |
| The Real-World Approach | p. 54 |
| Types of Design Activity | p. 54 |
| Design Tools | p. 55 |
| Top-Down Debugging and Testing | p. 62 |
| Structured Programming in Assembly Language | p. 63 |
| Program Comments | p. 63 |
| Software Documentation | p. 68 |
| A Top-Down Design Example | p. 69 |
| Chapter Summary Points | p. 73 |
| Bibliography and Further Reading | p. 75 |
| Problems | p. 75 |
| Introduction to the CPU: Registers and Condition Codes | p. 78 |
| Introduction | p. 78 |
| CPU Registers | p. 78 |
| Register Transfers | p. 79 |
| The Condition Code Register | p. 80 |
| The Programmer's Model | p. 88 |
| Conclusion and Chapter Summary Points | p. 88 |
| Problems | p. 88 |
| Memory Addressing Modes | p. 91 |
| Introduction | p. 91 |
| Addressing Terminology | p. 91 |
| Memory Types | p. 92 |
| Computer Types and Memory Maps | p. 92 |
| Memory Architectures | p. 95 |
| Addressing Modes | p. 98 |
| Stack Addressing | p. 105 |
| Chapter Conclusion and Summary Points | p. 107 |
| Problems | p. 108 |
| Assembly Language Programming | p. 110 |
| Assembly Language Programming Style | p. 110 |
| Structured Assembly Language Programming | p. 119 |
| Interprocess Communication | p. 125 |
| Assembly Language Tricks of the Trade | p. 132 |
| Making It Look Pretty | p. 133 |
| Conclusion and Chapter Summary Points | p. 133 |
| Bibliography and Further Reading | p. 134 |
| Problems | p. 134 |
| C Programming for Embedded Systems | p. 141 |
| Introduction | p. 141 |
| Major Differences Between C for Embedded and Desktop Applications | p. 141 |
| Architecture of a C Program | p. 144 |
| Assembly Language Interface | p. 146 |
| Bits and Bytes: Accessing I/O Registers | p. 149 |
| Interrupts | p. 155 |
| Conclusion and Chapter Summary Points | p. 156 |
| Bibliography and Further Reading | p. 156 |
| Problems | p. 157 |
| Debugging Microcontroller Software and Hardware | p. 159 |
| Introduction | p. 159 |
| Program Debugging | p. 159 |
| Debugging Your Code | p. 161 |
| Debugging Tools | p. 170 |
| Typical Assembly Language Program Bugs | p. 174 |
| Debugging and Testing C Programs | p. 182 |
| Other Debugging Techniques | p. 184 |
| Conclusion and Chapter Summary Points | p. 186 |
| Bibliography and Further Reading | p. 187 |
| Problems | p. 187 |
| Computer Buses and Parallel I/O | p. 189 |
| Introduction | p. 189 |
| The Computer Bus | p. 191 |
| I/O Addressing | p. 197 |
| More Bus Ideas | p. 206 |
| Microcontroller I/O | p. 209 |
| More I/O Ideas | p. 211 |
| I/O Software | p. 211 |
| Conclusion and Chapter Summary Points | p. 219 |
| Problems | p. 219 |
| Interrupts and Real-Time Events | p. 222 |
| Introduction | p. 222 |
| The Interrupt Process | p. 226 |
| Multiple Sources of Interrupts | p. 231 |
| Simultaneous Interrupts: Priorities | p. 232 |
| Nested Interrupts | p. 234 |
| Other Interrupts | p. 236 |
| The Interrupt Service Routine or Interrupt Handler | p. 237 |
| An Interrupt Program Template | p. 238 |
| Advanced Interrupts | p. 240 |
| Watchdog Timer or Computer Operating Properly (COP) | p. 241 |
| Real-Time Interrupt | p. 242 |
| Conclusion and Chapter Summary Points | p. 242 |
| Problems | p. 244 |
| Memory | p. 246 |
| Introduction | p. 246 |
| A Short History of Random Access Memory | p. 246 |
| Semiconductor Memory | p. 248 |
| Memory Timing Requirements | p. 254 |
| Chapter Conclusion and Summary Points | p. 258 |
| Problems | p. 258 |
| Serial I/O | p. 260 |
| Introduction | p. 260 |
| The Asynchronous Serial Communication System | p. 260 |
| Standards for the Asynchronous Serial I/O Interface | p. 264 |
| Asynchronous Serial Hardware Interfaces | p. 267 |
| ASCII Data and Control Codes | p. 273 |
| Asynchronous Data Flow Control | p. 276 |
| Debugging and Trouble Shooting | p. 276 |
| Asynchronous Serial I/O Software | p. 277 |
| Synchronous Serial Peripheral Interface (SPI) | p. 278 |
| SPI Interface Examples | p. 283 |
| Inter-Integrated Circuit (IIC or I2C) | p. 293 |
| The Controller Area Network (CAN) Bus | p. 298 |
| Conclusion and Chapter Summary Points | p. 305 |
| Problems | p. 306 |
| Analog Input and Output | p. 309 |
| Introduction | p. 309 |
| Data Acquisition and Conversion | p. 310 |
| Shannon's Sampling Theorem and Aliasing | p. 313 |
| A/D Errors | p. 316 |
| Choosing the A/D Converter | p. 320 |
| The Analog-to-Digital Converter Interface | p. 323 |
| Analog-to-Digital Converter Types | p. 324 |
| Digital-to-Analog Conversion | p. 328 |
| Other Analog I/O Methods | p. 332 |
| Conclusion and Chapter Summary Points | p. 332 |
| Problems | p. 334 |
| Counters and Timers | p. 336 |
| Introduction | p. 336 |
| The Timer/Counter | p. 336 |
| Pulse-Width Modulation (PWM) Waveforms | p. 343 |
| "Real" Real-Time Clock: Clock Time | p. 344 |
| Conclusion and Chapter Summary Points | p. 344 |
| Problems | p. 346 |
| Single-Chip Microcontroller Interfacing Techniques | p. 348 |
| Microcontroller Chip I/O | p. 348 |
| Simple Input Devices | p. 351 |
| Simple Display Devices | p. 365 |
| Parallel I/O Expansion | p. 368 |
| Parallel I/O Electronics | p. 372 |
| Temperature Measurements | p. 376 |
| Motor Control | p. 377 |
| Conclusion and Chapter Summary Points | p. 396 |
| Bibliography and Further Reading | p. 397 |
| Problems | p. 397 |
| Real-Time Operating Systems | p. 399 |
| Introduction | p. 399 |
| The Real-Time Operating System (RTOS) | p. 400 |
| Conclusion and Chapter Summary Points | p. 415 |
| Bibliography and Further Reading | p. 416 |
| Problems | p. 416 |
| Appendix Binary Codes | p. 419 |
| Binary Codes Review | p. 419 |
| Problems | p. 432 |
| Solutions to Selected Problems | p. 435 |
| Index | p. 459 |
| Table of Contents provided by Ingram. All Rights Reserved. |