| |
| |
| |
Introduction to Microcontroller and the Intel 8051 | |
| |
| |
| |
Objectives | |
| |
| |
| |
Number System Issue | |
| |
| |
| |
Converting from Binary to Decimal | |
| |
| |
| |
Converting from Decimal to Binary | |
| |
| |
| |
Why Octal and Hexadecimal Numbers? | |
| |
| |
| |
Convert from Binary to Octal | |
| |
| |
| |
Convert from Octal to Binary | |
| |
| |
| |
Convert from Binary to Hexadecimal | |
| |
| |
| |
Convert from Hexadecimal to Binary | |
| |
| |
| |
Specifying the Number Base | |
| |
| |
| |
Binary Addition and Subtraction | |
| |
| |
| |
Two+s Complement Numbers | |
| |
| |
| |
Two+s Complement Subtraction | |
| |
| |
| |
Overflow | |
| |
| |
| |
Representing Nonnumeric Data | |
| |
| |
| |
Computer Hardware Organization | |
| |
| |
| |
The Processor | |
| |
| |
| |
Microprocessor | |
| |
| |
| |
Microcontroller | |
| |
| |
| |
Embedded Systems | |
| |
| |
| |
Memory | |
| |
| |
| |
Magnetic Memory | |
| |
| |
| |
Optical Memory | |
| |
| |
| |
Semiconductor Memory | |
| |
| |
| |
Non-Volatile and Volatile Memory | |
| |
| |
| |
Random Access Memory | |
| |
| |
| |
Read-Only Memory | |
| |
| |
| |
Memory System Operation | |
| |
| |
| |
Read Operation | |
| |
| |
| |
Write Operation | |
| |
| |
| |
Program Execution | |
| |
| |
| |
The Circuit of the Program Counter | |
| |
| |
| |
Where does the Processor Start to Execute Program? | |
| |
| |
| |
Instruction Execution Process | |
| |
| |
| |
Instruction Sequence Example | |
| |
| |
| |
Instruction Execution Process | |
| |
| |
| |
Overview of the 8051 Microcontroller | |
| |
| |
| |
The 8051 Memory Space | |
| |
| |
| |
The 8051 Registers | |
| |
| |
| |
Methods for Addressing Instruction Operands | |
| |
| |
| |
Implied Register Mode | |
| |
| |
| |
Direct Register Mode | |
| |
| |
| |
Immediate Value Mode | |
| |
| |
| |
Indirect Addressing Mode | |
| |
| |
| |
Indexed Addressing Mode | |
| |
| |
| |
Relative Addressing Mode | |
| |
| |
| |
Absolute Addressing Mode | |
| |
| |
| |
Long Address Mode | |
| |
| |
| |
Implied Bit Mode | |
| |
| |
| |
Direct Bit Mode | |
| |
| |
| |
Examples of 8051 Instructions | |
| |
| |
| |
Data Movement Instructions | |
| |
| |
| |
The ADD Instructions | |
| |
| |
| |
The SUB Instructions | |
| |
| |
| |
Machine Instruction Timing | |
| |
| |
| |
Chapter Summary | |
| |
| |
| |
Exercise Problems | |
| |
| |
| |
8051 Assembly Programming | |
| |
| |
| |
Objectives | |
| |
| |
| |
What is an Assembly Language Program? | |
| |
| |
| |
The Label Field | |
| |
| |
| |
The Operation or Directive Field | |
| |
| |
| |
The Operand or Argument Field | |
| |
| |
| |
The Comment Field | |
| |
| |
| |
The 8051 Memory Classes | |
| |
| |
| |
Assembler Directives | |
| |
| |
| |
Segments | |
| |
| |
| |
Location Counter | |
| |
| |
| |
Directives for Controlling Segments | |
| |
| |
| |
Directives for Defining Symbols | |
| |
| |
| |
Directives for Initializing Memory Locations | |
| |
| |
| |
Directives for Reserving Memory Locations | |
| |
| |
| |
Directives for Controlling Addresses | |
| |
| |
| |
Other Directives | |
| |
| |
| |
Directives for Macro Definitions | |
| |
| |
| |
Software Development Issue | |
| |
| |
| |
Assembly Program Template | |
| |
| |
| |
Writing Programs to Perform Computation | |
| |
| |
| |
The Carry/Borrow Flag | |
| |
| |
| |
Multi-Byte Addition | |
| |
| |
| |
The CY flag and Subtraction | |
| |
| |
| |
Multi-Byte Subtraction | |
| |
| |
| |
Multiplication and Division | |
| |
| |
| |
Writing Program Loops | |
| |
| |
| |
The Infinite Loop | |
| |
| |
| |
The For Loop | |
| |
| |
| |
The While Loop | |
| |
| |
| |
The Repeat Until Loop | |
| |
| |
| |
Jump Table | |
| |
| |
| |
Looping-Support Instructions | |
| |
| |
| |
Logical Instructions | |
| |
| |
| |
Rotate Instructions | |
| |
| |
| |
Boolean Variable Manipulation Instructions | |
| |
| |
| |
Hardware and Software Development Tools | |
| |
| |
| |
Debug Adapter | |
| |
| |
| |
Demo Boards | |
| |
| |
| |
Software Tools | |
| |
| |
| |
A Using the SiLabs IDE | |
| |
| |
| |
8051 Program Memory Map | |
| |
| |
| |
Getting Started with SiLabs IDE | |
| |
| |
| |
Tool Chain Integration | |
| |
| |
| |
Creating a New Project | |
| |
| |
| |
Entering Source Programs | |
| |
| |
| |
Adding Files to the Project | |
| |
| |
| |
Building the Project | |
| |
| |
| |
Downloading the Program for Debugging | |
| |
| |
| |
Target Build Configuration | |
| |
| |
| |
Program Execution and Debugging | |
| |
| |
| |
Tips for Assembly Program Debugging | |
| |
| |
| |
Syntax Errors | |
| |
| |
| |
Logical Errors | |
| |
| |
| |
Using Keil+s?Vision | |
| |
| |
| |
Using the Raisonance+ RIDE | |
| |
| |
| |
Chapter Summary | |
| |
| |
| |
Exercise Problems | |
| |
| |
| |
Laboratory Exercise Problems and Assignments | |
| |
| |
| |
Assembly Programming and Simple I/O Operations | |
| |
| |
| |
Objectives | |
| |
| |
| |
Introduction to I/O Ports | |
| |
| |
| |
Original 8051 I/O Port Structures and Operations | |
| |
| |
| |
C8051F040 I/O Ports | |
| |
| |
| |
Pin Assignment and Allocation using the Crossbar Decoder | |
| |
| |
| |
Configuring the Output Modes of the Port Pins | |
| |
| |
| |
Port Da | |