This is the Table of Contents forThe 8051 Microcontroller by Kenneth Ayala. Table of ContentsNote that this Table of Contents refers to the earlier, 2nd EditionMicroprocessors and Microcontrollers Introduction Microprocessors and Microcontrollers Microprocessors Microcontrollers Comparing Microprocessors and Microcontrollers The Z80 and the 8051 A Microcontroller Survey Four-Bit Microcontroller Eight-Bit Microcontrollers Sixteen-Bit Microcontrollers Thirty-Two Bit Microcontrollers Development Systems for Microcontrollers Summary Questions Numbering Systems and Binary Arithmetic Introduction Symbolic Number Systems Positional Number Systems Integer Binary Numbers Binary Digital Computers The Binary Number System Conversions Between Decimal and Binary Numbers Hexadecimal Numbers Conversions Between Hexadecimal, Binary, and Decimal Numbers Fractional Binary Numbers Converting Binary Fractions to Decimal Converting Hexadecimal Fractions to Decimal Converting Decimal Fractions to Binary and Hexadecimal Number System Notation Binary Addition and Subtraction Binary Number Addition and Subtraction Signed Binary Numbers Complementary Numbers Two's Complement Mathematics Binary Multiplication and Division Binary Multiplication Binary Division Binary Codes Character Codes Numeric Codes Other Binary Codes Error Correction and Detection Codes Summary Problems The 8051 Architecture Introduction 8051 Microcontroller Hardware The 8051 Oscillator and Clock Program Counter and Data Pointer A and B CPU Registers Flags and the Program Status Word (PSW) Internal Memory Internal RAM The Stack and the Stack Pointer Special Function Registers Internal ROM Input/Output Pins, Ports, and Circuits Port 0 Port 1 Port 2 Port 3 External Memory Connecting External Memory Counter and Timers Timer Counter Interrupts Timing Timer Modes of Operation Counting Serial Data Input/Output Serial Data Interrupts Data Transmission Data Reception Serial Data Transmission Modes Interrupts Timer Flag Interrupt Serial Port Interrupt External Interrupts Reset Interrupt Control Interrupt Priority Interrupt Destinations Software-Generated Interrupts Summary Questions Basic Assembly Language Programming Concepts The Forest and the Trees A Generic Computer Hardware Concepts: The Central Processing Unit Hardware Concepts: Memory Software Concepts: Code and Data Memory Computer Concepts: A Computer Model Computer Concepts: Starting Up Computer Concepts: Machine Language Software Concepts: Assembly Language Mnemonics The Mechanics of Programming Getting Instructions into Code Memory Computer Languages Why Use Assembly Language? The Assembly Language Programming Process The PAL Practice CPU PAL Instructions Programming Tools and Techniques Understanding Assembly Language Syntax Understanding the Assembler Program Understanding the Problem to Be Solved Designing the Program Flow Charts Writing and Testing the Program Programming the 8051 Lines of Code 8051 Instruction Syntax Summary Questions and Problems Moving Data Introduction Addressing Modes Immediate Addressing Mode Register Addressing Mode Direct Addressing Mode Indirect Addressing Mode External Data Moves Code Memory Read-Only Data Moves Push and Pop Opcodes Data Exchanges Example Programs Summary Problems Logical Operations Introduction Byte-Level Logical Operations Bit-Level Logical Operations Internal RAM Bit Addresses SFR Bit Addresses Bit-Level Boolean Operations Rotate and Swap Operations Example Programs Summary Problems Arithmetic Operations Introduction Flags Instructions Affecting Flags Incrementing and Decrementing Addition Unsigned and Signed Addition Unsigned Addition Signed Addition Multiple-Byte Signed Arithmetic Subtraction Unsigned and Signed Subtraction Unsigned Subtraction Signed Subtraction Multiplication and Division Multiplication Division Decimal Arithmetic Example Programs Summary Problems Jump and Call Instructions Introduction The Jump and Call Program Range Relative Range Short Absolute Range Long Absolute Range Jumps Bit Jumps Byte Jumps Unconditional Jumps Calls and Subroutines Subroutines Calls and the Stack Calls and Returns Interrupts and Returns More Detail on Interrupts The Interrupt Enable (IE) Special Function Register The Enable All Interrupts (EA) Bit Individual Interrupt Enable Bits The Interrupt Priority (IP) Special Function Register Ties Interrupts and Interrupt Handler Subroutines The Fine Print In Conclusion Example Problems Summary Problems An 8051 Microcontroller Design Introduction A Microcontroller Specification A Microcontroller Design External Memory and Memory Space Decoding Reset and Clock Circuits Expanding I/O Memory-Mapped I/O Memory Address Decoding Part Speed Memory Access Times Production Concerns Testing the Design Crystal Test ROM Test RAM Test Timing Subroutines Time Delays Pure Software Time Delay Software Polled Timer Pure Hardware Delay Lookup Tables for the 8051 PC as a Base Address DPTR as a Base Address Serial Data Transmission Character Transmission Using a Time Delay Character Transmission by Polling Interrupt-Driven Character Transmission Receiving Serial Data Polling for Received Data Interrupt-Driven Data Reception Summary Questions and Problems Applications Introduction Keyboards Human Factors Key Switch Factors Key Configurations Programs for Keyboards A Scanning Program for Small Keyboards Interrupt-Driven Programs for Small Keyboards Program for a Large Matrix Keyboard Displays Seven-Segment Numeric Display Intelligent LCD Display Pulse Measurement Measuring Frequency Pulse Width Measurement D/A and A/D Conversions D/A Conversions A/D Conversion Multiple Interrupts Hardware Circuits for Multiple Interrupts Putting it all Together Summary Questions and Problems Serial Data Communication Introduction Network Configurations 8051 Data Communication Modes Example Programs Shift Register Mode Standard 8-Bit UART Mode Multiprocessor Summary Questions and Problems Appendix A 8051 Operational Code Mnemonics A.0 Introduction A.1 Mnemonics, Arranged by Function Arithmetic Logic Data Moves Calls and Jumps Boolean A.2 Mnemonics, Arranged Alphabetically Mnemonic Acronyms A.3 Intel Corporation Mnemonics, Arranged Alphabetically Acronyms A.4 8051 Instruction Hexadecimal Codes Appendix B How to Use the A51 Assembler B.0 Introduction B.1 Using the Assembler The Big Picture How to Assemble B.2 Assembler Directives B.3 Numbers B.4 Labels Typing a Line B.5 Symbols Appendix C How to Use the Simulator C.0 Introduction C.1 Computer Configuration Needed to Run the Simulator C.2 Features C.3 The Simulator Programs Starting the Simulator Running the Simulation of YOURFILE.OBJ BOOK.BSS Simulator Screens Changing Register and Memory Contents Setting Breakpoints Generating Interrupts Saving a Session C.4 Creating Your Own Screens Setting RAM and ROM Window Starting Addresses Setting Memory Attributes Appendix D The 8255 Programmable I/O Port D.0 Introduction D.1 Functional Description Addressing the 8255 D.2 Programming the 8255 8255 I/O Modes Reset Condition Appendix E The Rest of the Family E.0 Introduction E.1 The 8052 Capture Timers T2 Software Additions Timer T2 Interrupt Uses for Timer 2 E.2 A/D and D/A Equipped Family Members Watchdog Timer Pulse Width Modulation (PWM) Analog Comparators Inter-Integrated Circuit (I2C) Serial Bus Controller Area Network (CAN) E.3 Faster and Smaller Faster Fastest Smaller Faster and Smaller E.4 Bigger The XA Family E.5 The Future Appendix F Control Registers F.0 Introduction F.1 Control Special-Function Register Figures F.2 Internal RAM and SFR Addresses F.3 ASCII Codes for Text and Control Characters---No Parity IndexThis is the Table of Contents forThe 8051 Microcontroller by Kenneth Ayala. |