0%

Book Description

During the development of an engineered product, developers often need to create an embedded system—a prototype—that demonstrates the operation/function of the device and proves its viability. Offering practical tools for the development and prototyping phases, Embedded Systems Circuits and Programming provides a tutorial on microcontroller programming and the basics of embedded design.

The book focuses on several development tools and resources:

  • Standard and off-the-shelf components, such as input/output devices, integrated circuits, motors, and programmable microcontrollers
  • The implementation of circuit prototypes via breadboards, the in-house fabrication of test-time printed circuit boards (PCBs), and the finalization by the manufactured board
  • Electronic design programs and software utilities for creating PCBs
  • Sample circuits that can be used as part of the targeted embedded system
  • The selection and programming of microcontrollers in the circuit

For those working in electrical, electronic, computer, and software engineering, this hands-on guide helps you successfully develop systems and boards that contain digital and analog components and controls. The text includes easy-to-follow sample circuits and their corresponding programs, enabling you to use them in your own work. For critical circuits, the authors provide tested PCB files.

Table of Contents

  1. Cover
  2. Half Title
  3. Title Page
  4. Copyright Page
  5. Table of Contents
  6. Preface
  7. Chapter 1 – Real-Time Computing
    1. 1.0 Defining the Embedded System
    2. 1.1 Embedded Systems History
    3. 1.2 Hardware Complexity
      1. 1.2.1 Processor
      2. 1.2.2 Microcontrollers
      3. 1.2.3 Hardware and Software
    4. 1.3 Execution in Real-Time
    5. 1.3.1 Hard and Soft Real-Time Systems
  8. Chapter 2 – Circuit Fundamentals
    1. 2.1 Electrical Circuit
    2. 2.2 Circuit Concepts and Components
    3. 2.3 Digital Electronics
    4. 2.4 Diode
      1. 2.4.1 Light-Emitting Diode (LED)
    5. 2.5 Transistors
      1. 2.5.1 Bipolar Transistor
      2. 2.5.2 MOS Transistor
  9. Chapter 3 – Logic Gates and Circuit Components
    1. 3.1 Logic Gates
    2. 3.2 Power Supplies
    3. 3.3 Clocked Logic and Flip-Flops
      1. 3.3.1 RS Flip-Flop
      2. 3.3.2 Clocked Circuits
      3. 3.3.3 D Flip-Flop
      4. 3.3.4 Edge-Triggered D Flip-Flop
      5. 3.3.5 Preset and Clear Signals
      6. 3.3.6 D Flip-Flop Waveform Action
      7. 3.3.7 Flip-Flop Applications
    4. 3.4 Digital Clocks
      1. 3.4.1 Clock Waveforms
      2. 3.4.2 TTL Clock
      3. 3.4.3 555 Timer
      4. 3.4.4 Microcontroller Clocks
    5. 3.5 Counters and Frequency Dividers
      1. 3.5.1 Fre quency Dividers
      2. 3.5.2 JK Flip-Flop Counter
      3. 3.5.3 Ripple Counters
      4. 3.5.4 Decoding Gates
      5. 3.5.5 Synchronous Counters
      6. 3.5.6 Counter ICs
      7. 3.5.7 Shift Registers
    6. 3.6 Multiplexers and Demultiplexers
      1. 3.6.1 Multiplexers
      2. 3.6.2 Demultiplexers
      3. 3.6.3 Multiplexer and Demultiplexer ICs
  10. Chapter 4 – Input and Output Devices
    1. 4.1 Obtaining Input
    2. 4.2 Switches
      1. 4.2.1 Switch Contact Bounce
      2. 4.2.2 Keypads
    3. 4.3 Output Devices
      1. 4.3.1 Seven-Segment LED
      2. 4.3.2 Liquid Crystal Displays
      3. 4.3.3 LCD Technologies
  11. Chapter 5 – From Circuit Schematics to PCB
    1. 5.1 Circuit Diagram
      1. 5.1.1 Symbols
      2. 5.1.2 Tools for Electronic Circuit Design
    2. 5.2 Circuit Board Design
      1. 5.2.1 Board Design Standards
      2. 5.2.2 Gerber File Format
    3. 5.3 Developing the Circuit Prototype
      1. 5.3.1 Breadboard
        1. Limitations of Breadboards
        2. Breadboarding Tools and Techniques
      2. 5.3.2 Wire-Wrapping
      3. 5.3.3 Perfboards
    4. 5.4 Printed Circuit Boards
      1. 5.4.1 PCB Layers
      2. 5.4.2 PCB Connectors
    5. 5.5 Making Your Own PCB
      1. 5.5.1 Drawing the CPB Circuit
      2. 5.5.2 Printing the PCB
      3. 5.5.3 Transferring the PCB Image
      4. 5.5.4 Etching the Board
      5. 5.5.5 Finishing the Board
      6. 5.5.6 Backside Image
    6. 5.6 Surface-Mount Components
      1. 5.6.1 SMT Adapters
      2. 5.6.2 Soldering SMT Components
    7. 5.7 Troubleshooting the Circuit Board
      1. 5.7.1 Circuit Testing Tools
  12. Chapter 6 – Introducing the Microcontroller
    1. 6.1 A Computer on a Chip
    2. 6.2 PICMicro Microcontroller
      1. 6.2.1 Programming the PIC
        1. Development Boards
      2. 6.2.2 Prototyping a PIC Circuit
    3. 6.3 PIC Architecture
      1. 6.3.1 Baseline PIC Family
        1. PIC10 Devices
        2. PIC12 Devices
        3. PIC14 Devices
      2. 6.3.2 Mid-Range PIC Family
        1. PIC16 Devices
      3. 6.3.3 High-Performance PIC Family
        1. PIC18 Devices
  13. Chapter 7 – Architecture and Instruction Set
    1. 7.1 Mid-Range PIC Architecture
      1. 7.1.1 Harvard Architecture
      2. 7.1.2 CISC versus RISC
      3. 7.1.3 Single-Word Instructions
      4. 7.1.4 Instruction Format
      5. 7.1.5 Mid-Range Device Versions
      6. 7.1.6 Arithmetic-Logic Unit
    2. 7.2 Data Memory Organization
      1. 7.2.1 w Register
      2. 7.2.2 Data Registers
        1. Memory Banks
        2. SFRs
        3. GPRs
      3. 7.2.3 Indirect Addressing
    3. 7.3 Mid-Range I/O and Peripherals
      1. 7.3.1 Ports
      2. 7.3.2 Timers
      3. 7.3.3 Capture and Compare Module
      4. 7.3.4 Master Synchronous Serial Port
      5. 7.3.5 USART Module
      6. 7.3.6 A/D Module
    4. 7.4 Mid-Range PIC Core Features
      1. 7.4.1 Oscillator
      2. 7.4.2 System Reset
      3. 7.4.3 Interrupts
    5. 7.5 Mid-Range Instruction Set
      1. 7.5.1 STATUS and OPTION Registers
    6. 7.6 EEPROM Data Storage
      1. 7.6.1 EEPROM in Mid-Range PICs
  14. Chapter 8 – Embedded Systems Programming
    1. 8.1 Assembly versus High-Level Languages
      1. 8.1.2 Embedded Systems
    2. 8.2 Integrated Development Environment
      1. 8.2.1 Installing MPLAB
      2. 8.2.2 MPLAB Project
      3. 8.2.3 Project Build Options
      4. 8.2.4 Building the Project
      5. 8.2.5 Quickbuild Option
    3. 8.3 Simulators and Debuggers
      1. 8.3.1 MPLAB SIM
      2. 8.3.2 MPLAB Hardware Debuggers
      3. 8.3.3 Improvised Debugger
    4. 8.4 Programmers
    5. 8.5 Engineering PIC Software
      1. 8.5.1 Using Program Comments
        1. Program Header
        2. Commented Banners
        3. Commented Bitmaps
      2. 8.5.2 Defining Data Elements
        1. cblock Directive
      3. 8.5.3 Banking Techniques
        1. banksel Directive
        2. Bank Selection Macros
        3. Deprecated Banking Instructions
      4. 8.5.4 Processor and Configuration Controls
        1. Configuration Bits
      5. 8.5.5 Naming Conventions
      6. 8.5.6 Errorlevel Directive
    6. 8.6 Pseudo In structions
  15. Chapter 9 – I/O Circuits and Programs
    1. 9.1 Simple Input and Output
      1. 9.1.1 16F84A Programming Template
    2. 9.2 Template Circuits
      1. 9.2.1 MCLR and Oscillator Template
      2. 9.2.2 Power Supplies
        1. Voltage Regulator
    3. 9.3 Simple Circuits and Programs
      1. 9.3.1 Single LED Circuit
        1. LED Flasher Program
      2. 9.3.2 LED/Pushbutton Circuit
      3. 9.3.3 Multiple LED Circuit
    4. 9.4 Seven-Segment LED
    5. 9.5 I/O Demo Board
      1. 9.5.1 TestDemo1 Program
    6. 9.6 Comparisons in PIC Programming
      1. 9.6.1 PIC Carry Flag
  16. Chapter 10 – PIC Interrupt System
    1. 10.1 Interrupts
      1. 10.1.1 16F84 Interrupts
      2. 10.1.2 Interrupt Control Register
      3. 10.1.3 OPTION Register
    2. 10.2 Interrupt Sources
      1. 10.2.1 Port B External Interrupt
      2. 10.2.2 Timer0 Interrupt
      3. 10.2.3 Port B Line Change Interrupt
        1. Multiple External Interrupts
      4. 10.2.4 EEPROM Data Write Interrupt
    3. 10.3 Developing the Interrupt Handler
      1. 10.3.1 Context Saving Operations
        1. Saving W and STATUS Registers
      2. 10.4 Interrupt Programming
      3. 10.4.1 Programming the External Interrupt
        1. RB0 Interrupt Initialization
        2. RB0 ISR
      4. 10.4.2 Wake-Up from SLEEP Using the RB0 Interrupt
        1. SleepDemo Program
      5. 10.4.3 Port B Bits 4-7 Status Change Interrupt
        1. RB4-7 Interrupt Initialization
        2. RB4-7 Change ISR
    4. 10.5 Sample Programs
    5. 10.6 Demonstration Programs
      1. 10.6.1 RB0Int Program
      2. 10.6.2 SleepDemo Program
      3. 10.6.3 RB4to7Int Program
  17. Chapter 11 – Timers and Counters
    1. 11.1 Controlling the Time Lapse
      1. 11.1.1 16F84 Timer0 Module
      2. 11.1.2 Timer0 Operation
        1. Timer0 Interrupt
        2. Timer0 Prescaler
    2. 11.2 Delays Using Timer0
      1. 11.2.1 Long Delay Loops
        1. How Accurate Is the Delay?
    3. 11.3 Timer0 as a Counter
    4. 11.4 Timer0 Programming
      1. 11.4.1 Programming a Counter
        1. Timer/Counter Test Circuit
        2. TimerCounter Program
        3. Code Details
      2. 11.4.2 Timer0 as a Delay Timer
        1. Delay Timer Circuit
      3. 11.4.3 DelayTimer Program
        1. Code Details
      4. 11.4.4 Variable Time Lapse
      5. 11.4.5 Variable Lapse Timer Program
        1. Code Details
      6. 11.4.6 Interrupt-Driven Timer
      7. 11.4.7 TimerInt Program
        1. Code Details
    5. 11.5 Watchdog Timer
      1. 11.5.1 Watch dog Timer Programming
    6. 11.6 Demonstration Programs
      1. 11.6.1 Tmr0Counter program
      2. 11.6.2 Timer0 Program
      3. 11.6.3 LapseTimer Program
      4. 11.6.4 LapseTmrInt Program
  18. Chapter 12 – LCD Hardware and Programming
    1. 12.1 Liquid Crystal Display
      1. 12.1.1 LCD Features and Architecture
      2. 12.1.2 LCD Functions and Components
        1. Internal Registers
        2. Busy Flag
        3. Address Counter
        4. Display Data RAM (DDRAM)
        5. Character Generator ROM (CGROM)
        6. Character Generator RAM (CGRAM)
        7. Timing Generation Circuit
        8. Liquid Crystal Display Driver Circuit
        9. Cursor/Blink Control Circuit
      3. 12.1.3 Connectivity and Pin-Out
    2. 12.2 Interfacing with the HD44780
      1. 12.2.1 Busy Flag or Timed Delay Options
      2. 12.2.2 Contrast Control
      3. 12.2.3 Display Backlight
      4. 12.2.4 Display Memory Mapping
    3. 12.3 HD44780 Instruction Set
      1. 12.3.1 Instruction Set Overview
        1. Clearing the Display
        2. Return Home
        3. Entry Mode Set
        4. Display and Cursor ON/OFF
        5. Cursor/Display Shift
        6. Function Set
        7. Set CGRAM Address
        8. Set DDRAM Address
        9. Read Busy Flag and Address Register
        10. Write Data
        11. Read Data
      2. 12.3.2 A 16F84 8-Bit Data Mode Circuit
    4. 12.4 LCD Programming
      1. 12.4.1 Defining Constants and Variables
        1. Using MPLAB Data Directives
      2. 12.4.2 LCD Initialization
        1. Function Set Command
        2. Display Off
        3. Display and Cursor On
        4. Set Entry Mode
        5. Cursor and Display Shift
        6. Clear Display
      3. 12.4.3 Auxiliary Operations
        1. Time Delay Routine
        2. Pulsing the E Line
        3. Reading the Busy Flag
        4. Bit Merging Operations
      4. 12.4.4 Text Data Storage and Display
        1. Generating and Storing a Text String
        2. Displaying the Text String
      5. 12.4.5 Data Compression Techniques
        1. 4-Bit Data Transfer Mode
        2. Master/Slave Systems
    5. 12.5 Sample Programs
  19. Chapter 13 – Analog-to-Digital and Real-Time Clocks
    1. 13.1 Clocks and the Digital Revolution
    2. 13.2 A/D Converters
      1. 13.2.1 Converter Resolution
      2. 13.2.2 ADC Implementation
    3. 13.3 A/D Integrated Circuits
      1. 13.3.1 ADC0331 Sample Circuit and Program
    4. 13.4 PIC Onboard A/D Hardware
      1. 13.4.1 A/D Module on the 16F87x
        1. ADCON0 Register
        2. ADCON1 Register
        3. SLEEP Mode Operation
      2. 13.4.2 A/D Module Sample Circuit and Program
    5. 13.5 Real-Time Clocks
      1. 13.5.1 NJU6355 Real-Time Clock
      2. 13.5.2 RTC Demonstration Circuit and Program
        1. BCD Conversion Procedures
    6. 13.6 Demonstration Programs
      1. 13.6.1 ADF84 Program
      2. 13.6.2 A2DinLCD Program
      3. 13.6.3 RTC2LCD Program
  20. Chapter 14 – Data EEPROM
    1. 14.1 EEPROM Programming
      1. 14.1.1 Data EEPROM
    2. 14.2 EEPROM Programming
      1. 14.2.1 Reading EEPROM Data
      2. 14.2.2 EEPROM Data Memory Write
    3. 14.3 EEPROM Programming Application
      1. 14.3.1 EECounter Program
        1. Code Details
    4. 14.4 Demonstration Programs
      1. 14.4.1 EECounter Program
      2. 14.4.2 Ser2EEP Program
      3. 14.4.3 I2CEEP Program
  21. Chapter 15 – Stepper Motors
    1. 15.1 Description and Operation
      1. 15.1.1 Stepper Motor Types
        1. Variable Reluctance
        2. Permanent Magnet
        3. Hybrid
      2. 15.1.2 Unipolar Stepper Motors
      3. 15.1.3 Determining Unipolar and Bipolar Wiring
        1. Four-Wire Motor
        2. Six-Wire Unipolar Motor
        3. Five-Wire Unipolar
      4. 15.1.4 Bipolar Stepper Motors
    2. 15.2 Stepper Motor Controls
      1. 15.2.1 Stepping Modes
        1. Wave Drive Mode
        2. Full Step Mode
        3. Half Step Mode
        4. Microstepping
  22. Chapter 16 – Stepper Motor Circuit Components
    1. 16.1 Circuit Elements
      1. 16.1.1 Input, Output, and Feedback
    2. 16.2 Translator
      1. 16.2.1 PIC Microcontroller as a Translator
    3. 16.3 Translator/Drivers
      1. 16.3.1 UCN 5804
      2. 16.3.2 L297
      3. 16.3.3 EDE1204
      4. 16.3.4 SLA7060 and SLA7024
    4. 16.4 Power Driver
      1. 16.4.1 Unipolar Drivers
        1. PIC Microcontroller as a Driver
        2. ULN2803A
        3. TIP 120
      2. 16.4.2 Bipolar Drivers
      3. 16.4.3 Transistorized H Bridge
        1. Snubber Diodes
      4. 16.4.4 H Bridge ICs
        1. L293D
        2. L298
    5. 16.5 Modules in Circuit Schematics
      1. 16.5.1 Example 16F84 Translator Modules
  23. Chapter 17 – Unipolar Motor Circuits and Programs
    1. 17.1 Stepper Motor Control Circuits
      1. 17.1.1 Stepper Motor Circuit Schematic Conventions
    2. 17.2 Motor Speed Control
      1. 17.2.1 Speed Control from Digital Input
      2. 17.2.2 An a log Input Speed Control
    3. 17.3 Unipolar Motor Control Circuits
      1. 17.3.1 Matching Circuit to Motor Power
      2. 17.3.2 16F84 Unipolar Circuit
        1. Sample Program SMU_PIC16F84.asm
      3. 17.3.3 5804 Unipolar Circuit
        1. Sample Program SMU_5804.asm
        2. Generating the Motor Pulses
        3. Interrupt-Driven Motor Pulsing
      4. 17.3.4 16F686 PIC Circuit
      5. 17.3.5 16F686 Programming
        1. Sample Program SMU_PIC16F684.asm
        2. Sample Program SMU_PIC16F684_INT.asm
      6. 17.3.6 Stepper Motor Position Control
        1. Sample Program SMU_POSITION.asm
    4. 17.4 Demonstration Programs
      1. 17.4.1 SMB_297_293D.asm
      2. 17.4.2 SMU_PIC16F84.asm Program
      3. 17.4.3 SMU_5804.asm
      4. 17.4.4 SMU_5804_INT.asm
      5. 17.4.5 SMU_PIC16F684.asm
      6. 17.4.6 SMU_PIC16F684_INT.asm
      7. 17.4.7 SMU_POSITION.asm
  24. Chapter 18 – Constant-Voltage Bipolar Motor Controls
    1. 18.1 Unipolar versus Bipolar
      1. 18.1.1 Bipolar Drive Circuits
    2. 18.2 Simple, L293 Bipolar Circuit
      1. 18.2.1 L297- and L293-Based Circuit
      2. 18.2.2 Minimal L297- and L298-based Circuit
    3. 18.3 Demonstration Programs
      1. 18.3.1 SMB_L293D.asm
      2. 18.3.2 SMB_297_293D.asm
      3. 18.3.3 SMB_297_298.asm
  25. Chapter 19 – Advanced Motor Controls
    1. 19.1 Choppers and Microstepping
    2. 19.2 Chopper Circuit Fundamentals
    3. 19.3 L297/298 Chopper Circuit
      1. 19.3.1 Setting the Reference Voltage
    4. 19.4 A Chopper-Based Demo Board
      1. 19.4.1 Motor Circuit Power Requirements
      2. 19.4.2 Chopper Demo Program
    5. 19.5 Microstepping
      1. 19.5.1 Microstepping Fundamentals
        1. Microstepping Theory
        2. Pulse Width Modulation (PWM)
    6. 19.6 Programming PWM
      1. 19.6.1 CCP Module
      2. 19.6.2 PWM Circuit and Software
      3. 19.6.3 Microstepping by PWM
      4. 19.6.4 Microstepping Sample Program
    7. 19.7 Microstepping ICs
      1. 19.7.1 Allegro 3955 IC
      2. 19.7.2 3955-Based Circuit
      3. 19.7.3 3955 Motor Driver Program
    8. 19.8 Demonstration Programs
      1. 19.8.1 PWM_DEMO_873.asm
      2. 19.8.2 PIC_Chopper.asm
      3. 19.8.3 PWM_Micstep.asm
      4. 19.8.4 PIC873_3955.asm
  26. Chapter 20 – Communications
    1. 20.1 PIC Communications Overview
    2. 20.2 Serial Data Transmission
      1. 20.2.1 Asynchronous Serial Transmission
      2. 20.2.2 Synchronous Serial Transmission
      3. 20.2.3 PIC Serial Communications
      4. 20.2.4 RS-232-C Standard
        1. Essential Concepts
        2. Serial Bit Stream
        3. Parity Testing
        4. Connectors and Wiring
        5. Null Modem
        6. Null Modem Cable
      5. 20.2.5 EIA-485 Standard
        1. EIA-485 in PIC-based Systems
    3. 20.3 Parallel Data Transmission
      1. 20.3.1 PIC Parallel Slave Port (PSP)
    4. 20.4 PIC “Free-Style” Serial Programming
      1. 20.4.1 PIC-to-PIC Serial Communications
        1. PIC-to-PIC Serial Communications Circuits
        2. PIC-to-PIC Serial Communications Programs
      2. 20.4.2 Program Using Shift Register ICs
        1. 74HC165 Parallel-to-Serial Shift Register
        2. 74HC164 Serial-to-Parallel Shift Register
    5. 20.5 PIC Protocol-Based Serial Programming
      1. 20.5.1 RS-232-C Communications on the 16F84
        1. RS-232-C Transceiver IC
        2. PIC-to-PC Communications
        3. RS-232-C TTY Board
        4. 16F84A UART Emulation
        5. LCD Scrolling Routine
      2. 20.5.2 RS-232-C Communications on the 16F87x
        1. 16F87x USART Module
        2. USART Baud Rate Generator
        3. 16F87x USART Asynchronous Transmitter
        4. 16F87x USART Asynchronous Receiver
        5. PIC-to-PC RS-232-C Communications Circuit
        6. 16F877 PIC Initialization Code
        7. USART Receive and Transmit Routines
        8. USART Receive In terrupt
    6. 20.6 Demonstration Programs
      1. 20.6.1 SerialSnd Program
      2. 20.6.2 SerialRcv Program
      3. 20.6.3 Serial6465 Program
      4. 20.6.4 TTYUsart Program
      5. 20.6.5 SerComLCD Program
      6. 20.6.6 SerIntLCD Program
  27. Appendix A – Resistor Color Codes
  28. Appendix B – Essential Electronics
    1. B.1 Atom
    2. B.2 Isotopes and Ions
    3. B.3 Static Electricity
    4. B.4 Electrical Charge
      1. B.4.1 Voltage
      2. B.4.2 Current
      3. B.4.3 Power
      4. B.4.4 Ohm’s Law
    5. B.5 Electrical Circuits
      1. B.5.1 Types of Circuits
    6. B.6 Circuit Elements
      1. B.6.1 Resistors
      2. B.6.2 Revisiting Ohm’s Law
      3. B.6.3 Resistors in Series and Parallel
      4. B.6.4 Capacitors
      5. B.6.5 Capacitors in Series and in Parallel
      6. B.6.6 Inductors
      7. B.6.7 Transformers
    7. B.7 Semiconductors
      1. B.7.1 Integrated Circuits
      2. B.7.2 Semiconductor Electronics
      3. B.7.3 P-Type and N-Type Silicon
      4. B.7.4 Diode
  29. Appendix C – Numeric Data
    1. C.1 Numbers in Computing
      1. C.1.1 Counting
      2. C.1.2 Tally System
      3. C.1.3 Roman Numerals
    2. C.2 Origins of the Decimal System
      1. C.2.1 Number Systems for Digital-Electronics
      2. C.2.2 Positional Characteristics
      3. C.2.3 Radix or Base of a Number System
    3. C.3 Types of Numbers
      1. C.3.1 Whole Numbers
      2. C.3.2 Signed Numbers
      3. C.3.3 Rational, Irrational, and Imaginary Numbers
    4. C.4 Radix Representations
      1. C.4.1 Decimal versus Binary Numbers
      2. C.4.2 Hexa decimal and Octal
    5. C.5 Number System Conversions
      1. C.5.1 Binary-to-ASCII-Decimal
      2. C.5.2 Binary-to-Hexa decimal Conversion
      3. C.5.3 Decimal-to-Binary Conversion
  30. Appendix D – Character Data
    1. D.1 Character Representations
      1. D.1.1 Electronic-Digital Machines
    2. D.2 Character Representations
      1. D.2.1 ASCII
      2. D.2.2 EBCDIC and IBM
      3. D.2.3 Unicode
    3. D.3 Storage and Encoding of Integers
      1. D.3.1 Signed and Unsigned Representations
      2. D.3.2 Word Size
      3. D.3.3 Byte Ordering
      4. D.4.4 Sign-Magnitude Representation
      5. D.3.5 Radix Complement Representation
    4. D.4 Encoding of Fractional Numbers
      1. D.4.1 Fixed-Point Representations
      2. D.4.2 Floating-Point Representations
      3. D.4.3 Standardized Floating-Point Representations
      4. D.4.4 IEEE 754 Single Format
      5. D.4.5 Encoding and Decoding Floating-Point Numbers
    5. D.5 Binary-Coded Decimals (BCD)
      1. D.5.1 Floating-Point BCD
  31. Appendix E – Digital Arithmetic and Conversions
    1. E.1 Microcontroller Arithmetic
    2. E.2 Unsigned and Two’s Complement Arithmetic
      1. E.2.1 Operations on Decimal Numbers
    3. E.3 Bit Manipulations and Auxiliary Operations
      1. E.3.1 Bit Shift and Rotate
      2. E.3.2 Comparison Operations
      3. E.3.3 Other Support Operations
    4. E.4 Un signed Binary Arithmetic
      1. E.4.1 Multi-Byte Unsigned Addition
      2. E.4.2 Unsigned Multiplication
      3. E.4.3 Unsigned Division
    5. E.5 Signed Binary Arithmetic
      1. E.5.1 Overflow Detection in Signed Arithmetic
      2. E.5.2 Sign Extension Operations
      3. E.5.3 Multi-Byte Signed Operations
    6. E.6 Data Format Conversions
      1. E.6.1 BCD Digits to ASCII Decimal
      2. E.6.2 Unsigned Binary to ASCII Decimal Digits
      3. E.6.3 ASCII Decimal String to Unsigned Binary
      4. E.6.4 Unsigned Binary to ASCII Hexadecimal Digits
      5. E.6.5 Signed Numerical Conversions
  32. Appendix F – Mid-Range Instruction Set
  33. Appendix G – Printed Circuit Boards
    1. G.1 Introduction
    2. G.2 Printed Circuit Boards (PCBs)
    3. G.3 Parts Lists
    4. G.4 Building Your Own Circuit Boards
      1. G.4.1 Tools and Materials
      2. G.4.2 Single-Sided Demo Board
      3. G.4.3 PCB Images for Demo Board
        1. Drawing the Circuit Diagram
        2. Printing the PCB Diagram
        3. Selecting the Paper
        4. Transferring the PCB Image
        5. Etching the Board
        6. Finishing the Board
        7. Component-Side Image
    5. G.5 Caveats
  34. Appendix H – Additional Code
  35. Index
3.138.200.66