You are previewing Microcontrollers: Architecture, Programming, Interfacing and System Design, 2nd Edition.
O'Reilly logo
Microcontrollers: Architecture, Programming, Interfacing and System Design, 2nd Edition

Book Description

This book prepares the students for system development using the 8051 as well as 68HC11, 80x96, ARM and PIC family microcontrollers. It provides a perfect blend of both hardware and software aspects of the subject.

Table of Contents

  1. Cover
  2. Title page
  3. Contents
  4. Dedication
  5. Preface to the second edition
  6. Preface to the first edition
  7. Chapter 1. Types, Selection and Applications of Microcontrollers
    1. 1.1 Microcontrollers
    2. 1.1.1 Numbering and Coding Systems
    3. 1.1.2 Central Processing Unit (CPU)
    4. 1.1.3 Microprocessor
    5. 1.1.4 Microcomputer
    6. 1.1.5 Computer System
    7. 1.1.6 Microcontroller
    8. 1.1.7 Embedded Processors
    9. 1.2 Types of Microcontrollers
    10. 1.2.1 The 8, 16 and 32-Bit Microcontrollers
    11. 1.2.2 Embedded and External Memory Microcontrollers
    12. 1.2.3 CISC and RISC Architecture Microcontrollers
    13. 1.2.4 Harvard and Princeton Memory Architecture Microcontrollers
    14. 1.3 Examples of the Popular Microcontrollers
    15. 1.3.1 8051, Extended 8051XA and 8051MXFamilies
    16. 1.3.2 MC68HC11/68HC12 Families
    17. 1.3.3 8051 Based MCU of Atmel C51 Family
    18. 1.3.4 Turbo μPSD
    19. 1.3.5 High-density Flash 8051 Based Turbo fiPSD 3300 Family
    20. 1.3.6 PIC
    21. 1.3.7 ARM
    22. 1.4 Selection of a Microcontroller
    23. 1.4.1 Checklist of the Needed Features and Factors Taken into Consideration
    24. 1.4.2 Selection of Processor and Processor Family
    25. 1.4.3 Selection of On-Chip Resources-Base
    26. 1.4.4 Selection of Software Building Blocks
    27. 1.4.5 Selection of Development Tool-Base
    28. 1.5 Applications (Examples)
    29. 1.5.1 Automatic Process Control
    30. 1.5.2 Instrumentation Applications
    31. Summary
    32. Key Terms
    33. Review Questions
    34. Practice Exercises
    35. Multiple Choice Questions
  8. Chapter 2. Overview of Architecture and Microcontroller Resources
    1. 2.1 Architecture of a Microcontroller
    2. 2.1.1 Functional Overview of8048 and 8049 Microcontroller Architecture
    3. 2.1.2 Basic Processing Unit in the 8048 Microcomputer
    4. 2.2 Family Members of 8051 and 68HC11/12 Families
    5. 2.3 Microcontroller On-Chip Resources
    6. 2.3.1 Basic Processing Unit, Internal Buses and Interrupt Handling
    7. 2.3.2 Program and Data Memory
    8. 2.3.3 Parallel Ports
    9. 2.3.4 On-chip Registers
    10. 2.3.5 Special Function Registers
    11. 2.3.6 UART
    12. 2.3.7 Synchronous Serial Communication
    13. 2.3.8 Timers/Counters
    14. 2.3.9 PWM
    15. 2.3.10 On-chip A/D Converters (ADC)
    16. 2.3.11 Watchdog Timer (WDT)
    17. 2.3.12 Bit-wise Manipulation Capability
    18. 2.3.13 Power-Down Mode
    19. 2.3.14 Real-Time Clock
    20. 2.3.15 Reset Circuit
    21. 2.3.16 Oscillator Circuit
    22. 2.4 Resources in Advanced and Next-Generation Microcontrollers
    23. Summary
    24. Key Terms
    25. Review Questions
    26. Practice Exercises
    27. Multiple Choice Questions
  9. Chapter 3. Intel 8051/8031 Family Architecture
    1. 3.1 8051 Microcontroller Architecture
    2. 3.1.1 Architecture
    3. 3.1.2 Special Function Registers
    4. 3.1.3 PSW Register Bits And Flags
    5. 3.1.4 The 8052/8032 Family
    6. 3.1.5 ATMEL 89C51
    7. 3.2 Microcontroller 8051 Pins
    8. 3.3 8051 PORTS
    9. 3.4 Internal and External Memory
    10. 3.5 Counters and Timers
    11. 3.5.1 Programmable Timers in the Intel 8051 Family
    12. 3.5.2 8052 Additional Timer T2
    13. 3.5.3 Watchdog Timer
    14. 3.6 Serial Communication in 8051
    15. 3.6.1 Mode 0 in Serial Communication
    16. 3.6.2 UART Modes 1,2 and 3 for Serial Asynchronous Communication
    17. 3.6.3 Multiprocessor UART Mode Communication
    18. 3.6.4 Serial Buffer
    19. 3.6.5 Interconnections RS232
    20. 3.7 Interrupts
    21. 3.8 Interrupts in 8051
    22. 3.9 External Interrupts
    23. Summary
    24. Key Terms
    25. Review Questions
    26. Practice Exercises
    27. Multiple Choice Questions
    28. Fill in the Blanks Type Questions
  10. Chapter 4. 8051 Family Microcontrollers Instruction Set
    1. 4.1 Programming Basics
    2. 4.1.1 Machine Codes
    3. 4.1.2 Program as a Set of Instructions and Routines
    4. 4.2 Introduction to Machine Instrucions and Assembly
    5. 4.2.1 Opcode
    6. 4.2.2 Operand
    7. 4.2.3 Register
    8. 4.2.4 Accumulator
    9. 4.2.5 Program Counter
    10. 4.2.6 Stack Pointer
    11. 4.2.7 Program Status Word
    12. 4.2.8 Assembly and Machine, Assembly and C Instruction Formats
    13. 4.3 Instruction Cycle
    14. 4.4 Execution Time of an Instruction
    15. 4.5 Addressing Modes
    16. 4.6 Classification of the Instructions at the Instruction Set
    17. 4.7 Data Transfer Instructions
    18. 4.7.1 MOV Instructions
    19. 4.7.2 MOVC-type Instructions
    20. 4.7.3 MO VX-type Instructions
    21. 4.7.4 PUSH and POP Instructions for Using the Stack Area Employing the SP
    22. 4.7.5 XCH-type Instructions
    23. 4.8 Data and Bit-Manipulation Instructions
    24. 4.8.1 Data Byte Manipulate (Clear, Complement, Rotate and Swap) Instructions
    25. 4.8.2 Boolean Variable (Bit) Manipulate and Boolean Processing Instructions
    26. 4.9 Arithmetic Instructions
    27. 4.10 Instructions for Logical Operations on Bytes at the Registers, Internal RAM and SFRs
    28. 4.11 Program-Flow Control Instructions
    29. 4.11.1 Delay-cycle (NOP) Instructions
    30. 4.11.2 Long, Absolute and Short Jumps
    31. 4.11.3 Conditional Short Relative Jumps
    32. 4.11.4 Decrement and Conditional Jump on Zero
    33. 4.11.5 Jump After Comparison
    34. 4.11.6 Call to a Routine and Return from Routine
    35. 4.12 Interrupt Control Flow (RETI Instruction)
    36. 4.13 ASCII-Related Application Program
    37. 4.14 BCD-Related Application Program
    38. 4.15 Serial Port-Related Application Programs
    39. Summary
    40. Key Terms
    41. Review Questions
    42. Practice Exercises
    43. Multiple Choice Questions
    44. Fill in the Blanks Type Questions
  11. Chapter 5. Real Time Control: Interrupts
    1. 5.1 Interrupt Application Examples
    2. 5.2 Routine, Interrupt and Interrupt Service Routine
    3. 5.2.1 Call To a Routine
    4. 5.3 Interrupt-Handling Structure of an MCU
    5. 5.3.1 Identification of an Interrupt Source
    6. 5.3.2 Resetting of Interrupt Identification Flags
    7. 5.3.3 Address of Interrupt Service Routine
    8. 5.4 Interrupt Latency and Interrupt Deadline
    9. 5.5 Multiple Sources of the Interrupts
    10. 5.6 Hardware Interrupts Related To Internal Devices:
    11. 5.7 Enabling (Unmasking) or Disabling of the Sources
    12. 5.8 Polling to Determine the Interrupt Sources and Assignment of the Priorities Among Them
    13. 5.8.1 Advantage of Finding Pending Higher Priority Interrupt Sources at the End of Each Instruction 205
    14. 5.8.2 Advantage of Finding by Interrupt Hardware for Pending Higher Priority Interrupt Sources at the End of an ISR
    15. 5.8.3 Default MCU-assigned Priorities
    16. 5.8.4 User-assigned Priorities
    17. 5.9 Interrupt Structure in Intel 8051
    18. 5.9.1 The 8051 Family MCU Sources of Interrupt
    19. 5.9.2 The 8051 Family MCU Interrupt Source Groups and Default Priorities for Vectored Priority Interrupts
    20. 5.9.3 Unmasking and Masking of an Interrupt Source
    21. 5.9.4 Default Priority Assignments for Service
    22. 5.9.5 User Priority Assignments for Service
    23. 5.9.6 Vector Address for the Interrupt Service Routine
    24. 5.9.7 Servicing of Interrupts in 8051
    25. 5.10 Programming Approach for Interrupt-Related Programs
    26. 5.11 Programming Examples in Assembly and C
    27. Summary
    28. Key Terms
    29. Review Questions
    30. Practice Exercises
    31. Multiple Choice Questions
    32. Fill in the Blanks Type Questions
  12. Chapter 6. Real-Time Control: Timers 2
    1. 6.1 Programmable Timers in the MCUs
    2. 6.1.1 Programming Features in 8051/8052
    3. 6.1.2 Programming for Finding the Time Interval Between Two Events
    4. 6.1.3 Timer Overflow in MCUs
    5. 6.1.4 Precession Effects in the Timers
    6. 6.1.5 Effects on Interrupt Latencies
    7. 6.1.6 Timer Features in 68HC11/12 and Other MCUs for Greater Precession in Timings
    8. 6.2 Free-Running Counter and Real-Time Control
    9. 6.2.1 Overflows of Free-Running Counter
    10. 6.2.2 Using an Output-Compare Register Along with a Timer Running as a Free-Running Counter
    11. 6.2.3 Using an Input-Capture Register on an External Input Capturing of Counts at a Timer Running as a Free-Running Counter
    12. 6.2.4 Programming for a Delay Using Out-Compare after an External Input-Capture
    13. 6.3 Real-Time Clock Interrupts
    14. 6.4 Software Timers
    15. 6.5 Interrupt Interval and Density Constraints
    16. 6.5.1 Interrupt Service Latency
    17. 6.5.2 Examples of Interrupt Service Latency Calculation
    18. 6.5.3 Interrupt Service Intervals
    19. 6.5.4 Fraction of Time Spent by the CPU in the RTC Interrupt-Service
    20. 6.5.5 Interrupt Density
    21. 6.5.6 Interrupt Constraints
    22. 6.5.7 Advantage of Combined Instructions for Reducing Interrupt Density
    23. Summary
    24. Key Terms
    25. Review Questions
    26. Practice Exercises
    27. Multiple Choice Questions
    28. Fill in the Blanks Type Questions
  13. Chapter 7. System Design: Peripherals and Interfacing
    1. 7.1 Serial UART and USART Communication Interfaces
    2. 7.1.1 Serial Interface in 8051
    3. 7.1.2 Serial UART Chip 8250
    4. 7.1.3 Serial USART Chip 8251
    5. 7.1.4 Programming 8251
    6. 7.1.5 Interfacing to Processor and DCE
    7. 7.2 Parallel IO Ports Interface 8255
    8. 7.2.1 Programming 8255
    9. 7.2.2 Interfacing 8255 to Processor
    10. 7.3 DMA Controller 8257
    11. 7.3.1 Methods for IO Transactions
    12. 7.3.2 Programming 825 7
    13. 7.3.3 Interfacing to 8086, 8051, 8096 and 68HC11/12
    14. 7.4 Programmable Interrupt Controller 8259
    15. 7.4.1 Interfacing 8259 to Processors
    16. 7.5 ADC Circuit Interfacing
    17. 7.6 DAC Circuit Interfacing
    18. 7.7 Inter-Integrated Circuits Interfacing (I2C Bus Standard)
    19. Summary
    20. Key Terms
    21. Review Questions
    22. Practice Exercises
    23. Multiple Choice Questions
    24. Fill in the Blanks Type Questions
  14. Chapter 8. Systems Design: Digital and Analog Interfacing Methods
    1. 8.1 Interfacing of the Key (Switch), Keypad and Keyboard
    2. 8.1.1 A Single Key (switch) and Its Interface
    3. 8.1.2 Bounces in a Key (switch)
    4. 8.1.3 Removing Bounce Effects on Input State from Key Using Hardware
    5. 8.1.4 Array (Row) of Keys and Its Interface
    6. 8.1.5 Keypad (Matrix of Keys) and Its Interfacing
    7. 8.1.6 Keyboard and Its Interfacing
    8. 8.1.7 Keyboard Controller
    9. 8.2 Debouncing Program Examples for Key/Switches
    10. 8.3 LED and Array of LEDS
    11. 8.3.1 LED
    12. 8.3.2 Array of LEDs or Annunciators
    13. 8.3.3 Array of LEDs in a 7-Segment Hex-Digit
    14. 8.3.4 Four-digit Display
    15. 8.4 Alphanumeric Devices—Display Systems and Their Interfaces
    16. 8.4.1 Alphanumeric Display by Sixteen-segment Display Systems
    17. 8.4.2 Dot-matrix Display Systems for Multilingual, Multi-fonts and Graphic Displays
    18. 8.5 LCD and LCD Controller
    19. 8.5.1 LCD
    20. 8.5.2 LCD Controller Circuit
    21. 8.5.3 LCD Controller
    22. 8.5.4 Interfacing with LCD Controller
    23. 8.5.5 Programming Aspects of Hitachi 44780, Optrex DMC 16xx, DMC 16xxx, DMC 20xxx and DMC 24xxx Series Compatible LCD Controller
    24. 8.6 Touch Screen and Touch -Screen Controller
    25. 8.6.1 Touch Screen
    26. 8.6.2 Touch-screen Controller
    27. 8.6.3 Touch-screen Software Driver
    28. 8.6.4 Software Functions Library to Enable Developing of the Applications
    29. 8.6.5 Multi-touch and Multi-touch Controller
    30. 8.6.6 Virtual Keypad
    31. 8.7 Keyboard-Cum-Display Controller (8279)
    32. 8.7.1 Keyboard-cum-Display Controller 8279
    33. 8.7.2 Interfacing of8279
    34. 8.7.3 Programming Aspects of8279
    35. 8.8 Interface with Printer
    36. 8.8.1 Parallel Centronics Interface — A Printer Interface
    37. 8.8.2 Serial RS232C Interface for a Print Controller in a Printer
    38. 8.9 Programmable Interface for Instruments using IEEE488 (GPIB) Bus
    39. 8.10 Interfacing of 8051 MCU with External Memory
    40. 8.11 Interfacing with Flash Memory
    41. 8.11.1 Programming the Flash Memory Chip
    42. 8.12 Interfacing with MCU IO Port using Optoisolator
    43. 8.13 Interfacing with Inductive Circuit
    44. 8.14 Interface for a Loudspeaker
    45. 8.15 Interfacing the Keypad and Speaker in a Music Playing system
    46. 8.16 Interface for Stepper Motor(s) in a Robot or Printer or Industrial Drive
    47. 8.17 Analog Inputs Interface with the MCU
    48. 8.17.1 Interfacing Thermocouple
    49. 8.17.2 Interfacing Load Cell— Electronic Weighing Machine
    50. 8.17.3 Interfacing - Precision Weighing Machine
    51. 8.18 Analog Output Generating Interface with MCU
    52. 8.19 Using PWM for DC Motor Control
    53. 8.20 Servomotor Control
    54. 8.21 Interfacing to High Power Devices
    55. 8.21.1 Interfacing for the Input and Output Modules
    56. 8.21.2 Interfacing with AC and DC High Power Motors
    57. 8.21.3 Interfacing with the Heater (Furnace)
    58. 8.21.4 Interfacings Power Devices Using Advanced Microcontrollers
    59. 8.22 Optical Motor Shaft Encoder
    60. 8.22.1 Incremental Rotation Encoder
    61. 8.22.2 Rotatory Absolute Angle Encoder
    62. 8.22.3 MCU-based Scale for Measuring Linear Position
    63. 8.23 Industrial Control Interface
    64. 8.23.1 Automatic Control Applications
    65. 8.24 Industrial Process Control System
    66. 8.25 Measurement Applications and Prototype MCU-based Measuring Instruments
    67. 8.26 Robotics and Embedded Control
    68. 8.27 Digital Signal Processing and Digital Filters
    69. 8.27.1 Digital Signal Processing (DSP)
    70. 8.27.2 Digital Filters
    71. Summary
    72. Key Terms
    73. Review Questions
    74. Practice Exercises
    75. Multiple Choice Questions
    76. Fill in the Blanks Type Questions
  15. Chapter 9. Programming in Assembly
    1. 9.1 Programming Basics for Assembly Language Programming
    2. 9.1.1 Benefits of Assembly Language Program (ALP)
    3. 9.1.2 Assembler
    4. 9.1.3 Types of Assemblers
    5. 9.1.4 Using an Assembler
    6. 9.1.5 Assembly Language Program
    7. 9.1.6 Program Steps for Basic Instructions
    8. 9.1.7 Default Settings for the Ports, Timer and Interrupts on Reset in 8051
    9. 9.1.8 Programming Approach for the Foreground (Main) Program
    10. 9.1.9 Program Approach for Programming ISR Instructions
    11. 9.1.10 Default Settings for the A, B, PSW, DPTR and SP on Reset in 8051
    12. 9.2 Programming Examples for Ports
    13. 9.2.1 Programming All 8-bits of a Port Simultaneously
    14. 9.2.2 Programming Individual Port Bits
    15. 9.3 Programming Examples for Timers
    16. 9.3.1 Programming the Mode 0, 1, 2 and 3 of the Timer
    17. 9.3.2 Programming a Delay by Using Loop Instructions
    18. 9.4 Program for Blinking of LEDs
    19. 9.5 Program for Real-Time Clock Interrupts
    20. 9.6 Program for Pulse Width Modulated (PWM) Outputs
    21. 9.7 Program for LED Brightness Control Using Pulse Width Modulated (PWM) Output
    22. 9.8 Program for a DC Motor Speed and Direction Control Using PWM
    23. 9.9 Programming Examples for Serial Port
    24. 9.9.1 Serial Synchronous (USRT) Communication Mode 0
    25. 9.9.2 Serial Asynchronous (UART) Communication Mode 1
    26. 9.9.3 Serial Asynchronous (UART) Communication Mode 2
    27. 9.9.4 Serial Asynchronous (UART) Communication Mode 3
    28. 9.10 Programming Examples for INT0 and INT1 Interrupts
    29. 9.11 Programming Examples for Read and Write at External Data Memory
    30. Summary
    31. Key Terms
    32. Review Questions
    33. Practice Exercises
    34. Multiple Choice Questions
    35. Fill in the Blanks Type Questions
  16. Chapter 10. Programming in C
    1. 10.1 Programming in C
    2. 10.1.1 Use of High-level Language Like ‘C’
    3. 10.1.2 ANSI C
    4. 10.2 Memory Constitution, Constants, Variables and Data Types In 8051
    5. 10.2.1 Memory Constitution in 8051
    6. 10.2.2 Constant
    7. 10.2.3 Variable
    8. 10.2.4 Data Types
    9. 10.2.5 Static, Extern, Register and Auto Storage Classes
    10. 10.2.6 Memory Models in 8051
    11. 10.2.7 Stack
    12. 10.3 Arrays, Structures and Unions
    13. 10.3.1 Arrays
    14. 10.3.2 Struct
    15. 10.3.3 Union
    16. 10.4 Pointers
    17. 10.5 Loops and Decisions—Control Structure Constructs
    18. 10.5.1 Loops
    19. 10.5.2 Decision Blocks
    20. 10.6 Functions and Library Functions
    21. 10.6.1 Function
    22. 10.6.2 Passing the Parameter
    23. 10.6.3 Library Functions
    24. 10.7 In-line Assembly
    25. 10.8 Modules and Programs
    26. 10.9 Program Build Process and Development Tools
    27. 10.10 C Compilers—GNU, SDCC and Keil
    28. 10.10.1 GNU Tools
    29. 10.10.2 SDCC Compiler
    30. 10.10.3 Keil C Compiler Cx51
    31. 10.11 Comments, Signs and Names in C Programs
    32. 10.12 Programming Examples for Ports
    33. 10.12.1 Using All 8-bits of Port Simultaneously
    34. 10.12.2 Using Individuall Port Bit
    35. 10.13 Programming Examples for Timers
    36. 10.14 Programming Examples for Serial Port
    37. 10.15 Programming Examples for Interrupts
    38. 10.16 Programming Examples for External Data
    39. 10.17 Programming Examples for Real-Time Clock
    40. Summary
    41. Key Terms
    42. Review Questions
    43. Practice Exercises
    44. Multiple Choice Questions
    45. Fill in the Blanks Type Questions
  17. Chapter 11. Real-time Operating System for System Design
    1. 11.1 Real-Time Operating System
    2. 11.1.1 Multi-tasking System
    3. 11.1.2 Tasks in a Multi-tasking System and Real-time Operating System (RTOS)
    4. 11.1.3 Inter-Process Communication (Inter-Task Message) Functions
    5. 11.1.4 Real-time Operating System
    6. 11.1.5 Task Characteristics in a Multi-tasking System
    7. 11.1.6 Semaphores and Mailboxes
    8. 11.2 RTOS of Keil (RTX51)
    9. 11.2.1 RTX51 Functions
    10. 11.2.2 Using RTOS Functions for Preemptive Scheduling in RTX51
    11. 11.2.3 RTX51 Versions
    12. 11.2.4 C Functions in RTX51 Tiny
    13. 11.2.5 C Functions in RTX51 Full
    14. 11.3 Use of RTOS in System Design
    15. 11.3.1 Simple Program Examples for Use of RTX51 in Design
    16. 11.3.2 Case Study of Traffic Light and Use of RTOS in Design
    17. 11.3.3 RTOS Functions for Design of Baby Weighing Machine
    18. 11.3.4 Case Study of Toffee Vending Machine and Use of RTOS in Design
    19. Summary
    20. Key Terms
    21. Review Questions
    22. Practice Exercises
    23. Multiple Choice Questions
    24. Fill in the Blanks Type Questions
  18. Chapter 12. Development Tools for Microcontroller Applications
    1. 12.1 Development Phases of a Microcontroller Based System
    2. 12.2 Software Development Cycle and Applications
    3. 12.3 Software Development Tools
    4. 12.3.1 Integrated Development Environment (IDE)
    5. 12.3.2 Open Source IDE and Tools
    6. 12.3.3 RTOS
    7. 12.3.4 Compiler
    8. 12.3.5 Macro Assembler and Dissembler
    9. 12.3.6 Library and Library Manager
    10. 12.3.7 Linker/Locator and Hex File Generation
    11. 12.3.8 Debugger
    12. 12.3.9 Simulator
    13. 12.4 Example of an IDE—μVision and Tools from KEIL
    14. 12.4.1 IDE μVision2
    15. 12.4.2 C51 Compiler
    16. 12.4.3 A51 Assembler
    17. 12.4.4 LIB51 Library Manager
    18. 12.4.5 BL51 Linker/Locator
    19. 12.4.6 OC51 and OH51 Banked Object File Converter and Object to Hex Converter
    20. 12.5 Emulator and in-Circuit Emulator (ICE)
    21. 12.5.1 In-circuit Emulator (ICE)
    22. 12.5.2 Joint Test Action Group (JTAG)
    23. 12.5.3 Logic Analyser Circuit
    24. 12.6 Target Board
    25. 12.7 Device Programmer
    26. Summary
    27. Key Terms
    28. Review Questions
    29. Practice Exercises
    30. Multiple Choice Questions
    31. Fill in the Blanks Type Questions
  19. Chapter 13. PIC Family Microcontrollers
    1. 13.1 PIC Family
    2. 13.1.1 MCU Families
    3. 13.2 Hardware of PIC 16F877
    4. 13.2.1 Overview of the Internal Hardware in PIC MCU
    5. 13.2.2 Architecture of PIC Microcontroller
    6. 13.2.3 Features of the CPU of PIC 16F877
    7. 13.3 Memory and Memory Map in Microchip PIC Family MCU System
    8. 13.3.1 On-Chip SFRs/GPRs/Internal RAM, Program Memory and Data EEPROM
    9. 13.3.2 On-Chip Data Memory RAM
    10. 13.3.3 Program Memory Map
    11. 13.3.4 SFR Addresses in Data Memory
    12. 13.4 IO Ports
    13. 13.4.1 Serial Ports— MSSP and USART
    14. 13.5 Timers and CCP Devices
    15. 13.5.1 Timers 0, 1 and 2
    16. 13.5.2 Compare Outputs and Interrupts Using CCP1 and CCP2
    17. 13.5.3 Software Timer Interrupts Using CCP1 and CCP2
    18. 13.5.4 Input Captures Using CCP1 and CCP2
    19. 13.5.5 Pulse Width Modulated Output
    20. 13.6 ADC
    21. 13.7 Interrupts
    22. 13.7.1 Maskable Sources of Interrupts
    23. 13.7.2 Servicing of Interrupts
    24. 13.8 Instructions and Instruction Set
    25. 13.8.1 Instruction Formats
    26. 13.8.2 Addressing Modes
    27. 13.8.3 PIC 16F877Instruction Set
    28. 13.8.4 PIC16F877Instructions
    29. 13.9 Development Tools
    30. 13.9.1 MPLAB IDE
    31. Summary
    32. Key Terms
    33. Review Questions
    34. Practice Exercises
    35. Multiple Choice Questions
    36. Fill in the Blanks Type Questions
  20. Chapter 14. 16-BIT Microcontrollers: 8096/80196 Family
    1. 14.1 Hardware
    2. 14.1.1 Overview of the 80196 CPU and Internal Address and Data Buses
    3. 14.1.2 Architecture of 80196
    4. 14.2 Memory Map in Intel 80196 Family MCU System
    5. 14.2.1 On-Chip RAM
    6. 14.2.2 On-Chip ROM/EPROM
    7. 14.2.3 External Program/Data Memory (PROM/RAM) Space
    8. 14.3 IO Ports
    9. 14.4 Timers
    10. 14.5 High-Speed Outputs
    11. 14.5.1 HSOs
    12. 14.5.2 Software Timers
    13. 14.5.3 Start ofADC Using T1 or T2
    14. 14.6 High-Speed Inputs and Input Captures
    15. 14.7 Pulse Width Modulated Output
    16. 14.8 Interrupts
    17. 14.8.1 Non-maskable and Maskable Sources of Interrupts
    18. 14.8.2 Servicing of Interrupts
    19. 14.9 Instructions and Instruction Set
    20. Summary
    21. Key Terms
    22. Review Questions
    23. Practice Exercises
    24. Multiple Choice Questions
    25. Fill in the Blanks Type Questions
  21. Chapter 15. 32-Bit ARM7, ARM9 AND ARM MCUs: Architecture, Programming and Development Tools
    1. 15.1 Introduction To 16/32 BIT Processors
    2. 15.2 ARM Architecture
    3. 15.3 ARM7
    4. 15.4 ARM9
    5. 15.5 ARM-based MCUs
    6. 15.6 ARM Cortex-M3
    7. 15.7 ARM Instruction Set
    8. 15.7.1 32/16-bit ARM Instruction Set
    9. 15.7.2 Data Transfer, Bit Clearing and Masking Instructions
    10. 15.7.3 Arithmetic Operation Instructions
    11. 15.7.4 Logic Operation Instructions
    12. 15.7.5 Data and Bit Manipulations During Move, Arithmetic, Data Swap, Branch and Exchange Instructions
    13. 15.7.6 Program Flow Control Instructions
    14. 15.7.7 SWI Interrupt Control Instruction
    15. 15.7.8 Formats of 32-bit Instruction
    16. 15.8 Thumb® Instruction-Set Extension
    17. 15.8.1 Thumb Instruction Set
    18. 15.8.2 Thumb Instruction Format
    19. 15.8.3 ARM/Thumb Inter-working
    20. 15.8.4 Thumb 2
    21. 15.9 Exception Handling in ARM
    22. 15.10 Development Tools
    23. 15.11 Porting Developed Codes in ARM Based System
    24. 15.12 Porting Linux in ARM
    25. 15.13 Assembly and C Programming (GNU Tools)
    26. Summary
    27. Key Terms
    28. Review Questions
    29. Practice Exercises
    30. Multiple Choice Questions
    31. Fill in the Blanks Type Questions
  22. Chapter 16. Motorola MC68HC11/12 Family
    1. 16.1 Architecture
    2. 16.1.1 CPU Registers and Internal Buses
    3. 16.1.2 Ports
    4. 16.1.3 Internal Devices
    5. 16.1.4 Memory Addresses
    6. 16.1.5 On-Chip Registers (RAM) at 256-byte Address Space 256 Bytes
    7. 16.1.6 On-Chip Program and EEPROM
    8. 16.1.7 64 Byte Space for Internal-device Function Registers
    9. 16.1.8 Addressable Register Space of 192 B Internal RAM
    10. 16.1.9 Internal RAM
    11. 16.1.10 Memory Map
    12. 16.2 Addressing Modes and Instructions
    13. 16.2.1 Addressing Modes in the Instruction Set
    14. 16.2.2 Instructions
    15. 16.3 Interfacing Methods
    16. 16.3.1 General-purpose Parallel Port IO Interface
    17. 16.3.2 Memory Interfacing, IO Additional Ports andIO Interfacing
    18. 16.3.3 Serial IO Devices
    19. 16.3.4 RS232 and RS485
    20. 16.4 Interrupts
    21. 16.4.1 Non-maskable, Maskable Sources of Interrupts and Reset
    22. 16.4.2 Servicing of Interrupts
    23. 16.5 Programmable Timer
    24. 16.5.1 Timing Signal Generation—TCNT Overflow and Real Time Clock Interrupts
    25. 16.5.2 Input Capture
    26. 16.5.3 Timing Measurements of External Event
    27. 16.5.4 Out Compare
    28. 16.5.5 P WM Outputs
    29. 16.5.6 Frequency Measurement
    30. 16.5.7 Pulse Accumulator Counter
    31. 16.6 Applications of Analog Interfacing
    32. Summary
    33. Key Terms
    34. Review Questions
    35. Practice Exercises
    36. Multiple Choice Questions
    37. Fill in the Blanks Type Questions
  23. Appendices
  24. References
  25. Notes
  26. Solutions to Multiple Choice Questions
  27. Solutions to Fill in the blanks Questions
  28. Acknowledgements
  29. Copyright