Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000003923269 | TJ223.P76 C32 1997 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
There are a mind-boggling number of microcontrollers in use today. Hundreds of millions are shipped every year in products such as automobiles and coffee makers. In order to fully understand this technology, it is necessary to grasp current principles of microprocessor technology and their relationship to microcontrollers. Microcontrollers and Microcomputers: Principles of Software and Hardware Engineering is a top-down introductory treatment of microprocessors which provides students with an accessible and thorough overview of the key hardware and software engineering issues of today. The text begins with an explanation of the mystery of a stored-program computer, and goes on to explore the resources of the processor in a laboratory setting. Cady leads students step-by-step through examples that utilize various instructions. More difficult programming assignments are given as readers progress. These assignments demonstrate the need for techniques used in debugging, which is a critical step in developing software for microprocessors. A key chapter dedicated to software design presents top down design and promotes pseudocode. Ideal for use in microprocessor courses in electrical engineering and computer science, the text is accompanied by an instructor's manual which includes problem solutions and a course outline. A World Wide Web site provides an errata and other additional information: http://www.coe.montana.edu/ee/cady/cadyhmpg.htm.
Author Notes
Frederick M. Cady is at Montana State University.
Table of Contents
Preface |
Chapter 1 Introduction |
1.1 Computers, Microprocessors, Microcomputers, Microcontrollers |
1.2 Some Basic Definitions |
1.3 Notation |
1.4 Study Plan |
Chapter 2 The Picoprocessor: An Introduction to Computer Architecture |
2.1 Introduction |
2.2 Computer Operation Codes |
2.3 Basic Computer Hardware |
2.4 Computer Timing |
2.5 More Instructions |
2.6 Control Instructions |
2.7 The Final Design |
2.8 Chapter Summary Points |
2.9 Problems |
Chapter 3 Introduction to the CPU: Registers and Condition Codes |
3.1 Introduction |
3.2 CPU Register |
3.3 Register Transfers |
3.4 Your Real Processor's Registers |
3.5 The Condition Code Register |
3.6 The Programmer's Model |
3.7 Chapter Summary Points |
3.8 Problems |
Chapter 4 Addressing Modes |
4.1 Introduction |
4.2 Addressing Terminology |
4.3 Memory Architectures |
4.4 Addressing Modes |
4.5 Stack Addressing |
4.6 Chapter Summary Points |
4.7 Your Own Processor's Addressing Modes |
4.8 Problems |
Chapter 5 Assembly Language Programming and Debugging |
5.1 Introduction |
5.2 The Assembler |
5.3 The Code Location Problem |
5.4 The Linker |
5.5 The Librarian |
5.6 The Loader |
5.7 Assembly-Time, Link-Time, Load-Time, and Run-Time |
5.8 Your Assembler |
5.9 The Debugger |
5.10 Typical Assembly Language Program Bugs |
5.11 Tricks of the Trade |
5.12 Chapter Summary Points |
5.13 Problems |
Chapter 6 Top-Down Software Design |
6.1 The Need for Software Design |
6.2 The Software Tree |
6.3 The Software Development Process |
6.4 Top-Down Design |
6.5 Design Partitioning |
6.6 Bottom-Up Design |
6.7 The Real-World Approach |
6.8 Types of Design Activity |
6.9 Design Tools |
6.10 Top-Down Debugging and Testing |
6.11 Structured Programming in Assembly Language |
6.12 Modular Design |
6.13 Interprocess Communication |
6.14 Software Documentation |
6.15 Chapter Summary Points |
6.16 Problems |
Chapter 7 Computer Buses and Parallel Input/Output |
7.1 Introduction |
7.2 The Computer Bus |
7.3 I/O Addressing |
7.4 I/O Synchronization |
7.5 More Bus Ideas |
7.6 Simple I/O Devices |
7.7 Programmable I/O Devices |
7.8 More I/O Ideas |
7.9 Chapter Summary Points |
7.10 References and Other Reading |
7.11 Problems |
Chapter 8 Interrupts and Real-Time Events |
8.1 Introduction |
8.2 Interrupt System Specifications |
8.3 Asynchronous Events and Internal Processor Timing |
8.4 Internal CPU Interrupt Hardware |
8.5 Multiple Sources of Interrupts |
8.6 Sequential and Nested Interrupts |
8.7 Simultaneous Interrupts - Priorities |
8.8 Transferring Control to the Interrupt Service Routine |
8.9 The Interrupt Service Routine |
8.10 Interrupt Routine Returns |
8.11 Other Interrupt Request Signals |
8.12 Conclusion and Chapter Summary Points |
8.13 Further Reading |
8.14 Problems |
Chapter 9 Computer Memories |
9.1 Introduction |
9.2 Computer Types and Memory Maps |
9.3 Semiconductor RAM |
9.4 ROM Memory |
9.5 Memory Timing Requirements |
9.6 Putting it All Together |
9.7 Conclusion and Chapter Summary Points |
9.8 Further Reading |
9.9 Problems |
Chapter 10 Serial Input/Output |
10.1 Introduction |
10.2 The Components of an Asynchronous Serial Communication System |
10.3 Standards for the Serial I/O Interface |
10.4 RS-232-C Interconnections |
10.5 Standard Electrical Signal Levels |
10.6 The UART |
10.7 ASCII Data and Control Codes |
10.8 Flow Control |
10.9 Debugging and Trouble Shooting |
10.10 Chapter Summary Points |
10.11 Problems |
Chapter 11 Analog Input and Output |
11.1 Introduction |
11.2 Data Acquisition and Conversion |
11.3 Shannon's Sampling Theorem and Aliasing |
11.4 Analog-to-Digital Conversion |
11.5 Digital-to-Analog Conversion |
11.6 Other Analog I/O Methods |
11.7 Chapter Summary Points |
11.8 Further Reading |
11.9 Problems |
Appendix A: Binary Codes |
A.1 Binary Codes Review |
A.2 ProblemsSolutions to Chapter Problems |
Index |