The 8051 Microcontroller
Author: |
I. Scott MacKenzie |
Publisher: |
Prentice Hall |
Year: |
1999 |
Edition: |
3rd |
ISBN: |
0-13-780008-8
|
Table of Contents
1 - INTRODUCTION TO MICROCONTROLLERS
- Introduction
- Terminology
- The Central Processing Unit
- Semiconductor Memory: RAM and ROM
- The Buses: Address, Data, and Control
- Input/Output Devices
- Mass Storage Devices
- Human Interface Devices
- Control/Monitor Devices
- Programs: Big and Small
- Micros, Minis, and Mainframes
- Microprocessors vs. Microcontrollers
- Hardware Architecture
- Applications
- Instruction Set Features
- New Concepts
- Gains and Losses: A Design Example
- Problems
- MCS-51 Family Overview
- Once Around the Pins
- Port 0
- Port 1
- Port 2
- Port 3
- PSEN (Program Store Enable)
- ALE (Address Latch Enable)
- EA (External Access)
- RST (Reset)
- On-chip Oscillator Inputs
- Power Connections
- I/O Port Structure
- Memory Organization
- General Purpose RAM
- Bit-addressable RAM
- Register Banks
- Special Function Registers
- Program Status Word
- B Register
- Stack Pointer
- Data Pointer
- Port Registers
- Timer Registers
- Serial Port Registers
- Interrupt Registers
- Power Control Register
- External Memory
- Accessing External Code Memory
- Accessing External Data Memory
- Address Decoding
- Overlapping the External Code and Data Spaces
- 8032/8052 Enhancements
- Reset Operation
- Summary
- Problems
- Introduction
- Addressing Modes
- Register Addressing
- Direct Addressing
- Indirect Addressing
- Immediate Addressing
- Relative Addressing
- Absolute Addressing
- Long Addressing
- Indexed Addressing
- Instruction Types
- Arithmetic Instructions
- Logical Instructions
- Data Transfer Instructions
- Boolean Instructions
- Program Branching Instructions
- Problems
- Introduction
- Timer Mode Register (TMOD)
- Timer Control Register (TCON)
- Timer Modes and the Overflow Flag
- 13-Bit Timer Mode (Mode 0)
- 16-Bit Timer Mode (Mode 1)
- 8-Bit Auto-Reload Mode (Mode 2)
- Split Timer Mode (Mode 3)
- Clocking Sources
- Interval Timing
- Event Counting
- Starting, Stopping, and Controlling the Timers
- Initializing and Accessing Timer Registers
- Reading a Timer "On the Fly"
- Short Intervals and Long Intervals
- 8052 Timer 2
- Auto-Reload Mode
- Capture Mode
- Baud Rate Generation
- Summary
- Problems
- Introduction
- Serial Port Control Register
- Modes of Operation
- 8-Bit Shift Register (Mode 0)
- 8-Bit UART with Variable Baud Rate (Mode 1)
- 9-Bit UART with Fixed Baud Rate (Mode 2)
- 9-Bit UART with Variable Baud Rate (Mode 3)
- Initialization and Accessing Serial Port Register
- Receiver Enable
- The 9th Data Bit
- Adding a Parity Bit
- Interrupt Flags
- Multiprocessor Communication
- Serial Port Baud Rates
- Using Timer 1 as the Baud Rate Clock
- Summary
- Problems
- Introduction
- 8051 Interrupt Organization
- Enabling and Disabling Interrupts
- Interrupt Priority
- Polling Sequence
- Processing Interrupts
- Interrupt Vectors
- Program Design Using Interrupts
- Small Interrupt Service Routines
- Large Interrupt Service Routines
- Serial Port Interrupts
- External Interrupts
- Interrupt Timings
- Summary
- Problems
- Introduction
- Assembler Operation
- Pass One
- Pass Two
- Assembly Language Program Format
- Label Field
- Mnemonic
- Operand Field
- Comment Field
- Special Assembler Symbols
- Indirect Address
- Immediate Data
- Data Address
- Bit Address
- Code Address
- Generic Jumps and Calls
- Assemble-Time Expression Evaluation
- Number Bases
- Character Strings
- Arithmetic Operators
- Logical Operators
- Special Operators
- Relational Operators
- Expression Examples
- Operator Precedence
- Assembler Directives
- Assembler State Control
- Symbol Definition
- Storage Initialization/Reservation
- Program Linkage
- Segment Selection Directives
- Assembler Controls
- Linker Operations
- Annotated Example: Linking Relocatable Segments and Modules
- ECHO.LST
- IO.LST
- EXAMPLES.M51
- Macros
- Parameter Passing
- Local Labels
- Repeat Operations
- Control Flow Operations
- Problems
- Introduction
- Advantages and Disadvantages of Structure Programming
- The Three Structures
- Statements
- The Loop Structure
- The Choice Structure
- Pseudo Code Syntax
- Assembly Language Programming Style
- Labels
- Comments
- Comment Blocks
- Saving Registers on the Stack
- The Use of Equates
- The Use of Subroutines
- Program Organization
- Summary
- Problems
- Introduction
- The Development Cycle
- Software Development
- Hardware Development
- Integration and Verification
- Software Simulation
- Hardware Emulation
- Execution from RAM
- Execution from EPROM
- The Factor Mask Process
- Commands and Environments
- Summary
- Problems
- Introduction
- The SBC-51
- Hexadecimal Keypad Interface
- Interface to Multiple 7-Segment LEDs
- Loudspeaker Interface
- Non-Volatile RAM Interface
- Input/Output Expansion
- Analog Output
- Analog Input
- Summary
- Problems
- A Quick Reference Chart
- B OPCODE Map
- C Instruction Definitions
- D Special Function Registers
- E 8051 Data Sheet
- F ASCII Code Chart
- G MON51 -- An 8051 Monitor Program
- H Sources of 8051 Development Products
BIBLIOGRAPHY