Contents

  • Preface  
    • How this book came to be written 
    • Highlights of this book 
    • Is this book for you? 
    • WARNINGS! 
  • Chapter 1 Introduction 
    • Microcontrollers 
    • Programming Languages 
  • Chapter 2 Efficiency & Planning  
    • Efficient Design With a Microcontroller 
    • Plan, Plan, Plan, Plan, and Then Do 
    • System Integration 
  • Chapter 3 C: Variables and Operators  
    • Programming languages 
    • Variables 
    • 8051 Memory spaces 
    • Operators 
  • Chapter 4 C: Branching & Looping  
    • Branching Constructs 
    • Looping Constructs 
  • Chapter 5 C: Functions  
    • Five Kinds of Functions 
    • Function Examples 
    • Advanced Function Topics 
  • Chapter 6 C: Arrays & Pointers  
    • Arrays 
    • Structures 
    • Memory Spaces 
    • Pointers 
    • Unions 
  • Chapter 7 IDE: Program Development  
  • Chapter 8 IDE: Modular Programming  
    • Why Modular? 
    • C Language Modules 
    • Assembly Language Modules 
    • Scope of Variables and Functions 
    • Mixing Module Languages 
    • Libraries 
    • Code Efficiency 
  • Chapter 9 Hardware: Basics & Assembly Language  
    • Microcomputers 
    • Computer Instructions 
    • 8051 Instruction Summary 
    • Clock Cycles & Software Delays 
  • Chapter 10 Hardware: Memory, Ports & Expansion  
    • Memory Technologies 
    • 8051 Memory 
    • Parallel Ports 
    • Bus expansion 
    • Stand-alone Microcontrollers 
  • Chapter 11 Hardware: Interrupts & Timers  
    • Interrupts 
    • Counters 
    • Timers 
    • Chapter 12 RTOS: Multitasking  
    • RTOS Basics 
    • Commercial RTOS 
  • Chapter 13 RTOS: Scheduler  
  • Chapter 14 RTOS: Real-Time Kernel Small  
    • Including RTKS in Projects 
    • Small RTOS compared 
  • Chapter 15 RTOS: Big Kernel  
    • RTKB—Priority-Based Pre-emptive Kernel 
    • Commercial operating Systems 
    • Cost & Benefits of RTOS 
  • Chapter 16 Algorithms: User Input/Output  
    • Numbers and Notations 
    • Number Conversion 
    • Conversion to ASCII (for a Display) 
    • Decimal to Binary (input from a keypad) 
    • Parsing 
    • Random numbers 
  • Chapter 17 Algorithms: Scaling & Tables  
    • Scaling 
    • Look-up Tables 
    • Linear interpolation 
    • Floating Point Variables 
  • Chapter 18 Algorithms: Time  
    • Measuring Frequency or Period 
    • Maintaining a Calendar 
  • Chapter 19 Algorithms: Miscellaneous  
    • Library Functions 
    • Self-calibration of Sensors 
    • Digital Signal Processing 
    • Smoothing & Averaging 
    • Control Algorithms 
    • Fuzzy Logic 
    • Adaptive Control (Self-tuning) 
    • Tracking & Hill Climbing 
    • Dynamic Memory Allocation 
  • Chapter 20 Networks: Serial Communication  
    • UART Fundamentals 
    • UART Examples 
    • Software-only “UARTs” 
    • Serial Driver Hardware 
    • EIA/TIA-232 (RS-232) Specification 
    • Other Serial Protocols 
  • Chapter 21 Algorithms: Buffers  
    • Single-use Buffers 
    • Cyclic (FIFO/Ring) Buffers 
  • Chapter 22 Networks: Ring Topology  
    • Topologies 
    • Common Network Issues 
  • Chapter 23 Networks: Bus Topology  
    • Shared Line Communication 
    • RS-422, RS-485 
    • Waking Nodes—9th Bit Mode 
  • Chapter 24 Networks: SPI Bus  
    • 8051 UART Shift Register Mode 
    • SPI Bus 
  • Chapter 25 Networks: I2C / SMB  
    • Networking Protocols Are Similar 
    • I2C/ACCESS/SMB History & Overview 
    • SMB/I2C Protocol 
    • Electrical Details 
  • Chapter 26 Networks: CAN Bus  
    • CAN Message Frame 
    • CAN & the OSI Model 
    • Collision/Arbitration/Priority 
    • Signals 
    • CAN Error Handling 
    • Chip support 
    • Example: CAN Message Exchange 
  • Chapter 27 Networks: USB  
    • All things to all people? 
    • USB Architecture 
    • USB Logical Abstractions 
    • USB Electrical Features 
    • Protocol Overview 
    • Doing USB Applications 
  • Chapter 28 Hardware: Digital Input  
    • Interfacing TTL 
    • Inputs to TTL 
    • Switches & Buttons 
    • Keypads 
    • Keyboards 
    • Music Keyboards 
    • Signals From IR Remotes 
  • Chapter 29 Hardware: Digital Output  
    • Light-Emitting Diodes 
    • Liquid Crystal Displays 
    • Other Types of Alphanumeric Displays 
    • CRT (Video) Drivers 
    • DC Motors 
    • Relays and Solenoids 
    • Stepper Motors 
  • Chapter 30 Hardware: Position Input  
    • Knobs & Sliders 
    • Proximity & Ranging Inputs 
    • Relative X-Y Position Devices 
    • Absolute X-Y Position: Digitizers 
    • Optical Interruptors
    • Angle Sensing
    • Optical Isolation
  • Chapter 31 Hardware: Analog Input
    • A-D Conversion
    • Analog Comparators
    • Voltage to Frequency
    • Electrical Measurements
    • Physical measurements
    • Light Inputs
    • Magnetic Inputs
    • Measuring & Recognizing Sounds
    • Speech Recognition
    • Inputs from the Physically-disabled
  • Chapter 32 Hardware: Analog Output  
    • Resistor-Ladder D-A
    • Other D-A Techniques
    • Music Outputs
    • Speech Synthesis
  • Chapter 33 Hardware: Power Interfacing  
    • AC Measurements 
    • AC Power Production & Control
  • Chapter 34: Efficiency at Work
    • Zone Heat System
    • Light Meter
  • Chapter 35: Lists: Assembly Instructions
    • Alphabetic-ordered List
    • Numeric-ordered List