Cover image for Microcontrollers and microcomputers : principles of software and hardware engineering
Title:
Microcontrollers and microcomputers : principles of software and hardware engineering
Personal Author:
Publication Information:
New York : Oxford University Press, 1997
ISBN:
9780195110081

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