PROGRAMMING AND CUSTOMIZING THE PIC MICROCONTROLLER
CONTENTS CHAPTER EMBEDDED MICROCONTROLLERS MICROCONTROLLER TYPES INTERNAL HARDWARE APPLICATIONS PROCESSOR ARCHITECTURES INSTRUCTIONS AND SOFTWARE PERIPHERAL FUNCTIONS MEMORY TYPES MICROCONTROLLER COMMUNICATION DEVICE PACKAGING APPLICATION DEVELOPMENT TOOLS CHAPTER THE MICROCHIP PIC MICROCONTROLLER ACCESSING THE MICROCHIP WEB SITE PIC MICROCONTROLLER FEATURE SUMMARY FEATURES UNIQUE TO THE PIC MICROCONTROLLER PIC MICROCONTROLLER FAMILIES SOFTWARE DEVELOPMENT TOOLS TOOLS OVERVIEW HIGH LEVEL LANGUAGES MICROCHIP MPLAB IDE PROGRAMMING PIC MICROCONTROLLERS HEX FILE FORMAT CODE PROTECTION PARALLEL PROGRAMMING PIC ICSP PROGRAMMER INTERFACE MICROCHIP PROGRAMMERS MY PROGRAMMERS THIRD-PARTY PROGRAMMERS EMULATORS AND DEBUGGERS MPLAB REAL ICE MPLAB ICD 2 DEBUGGER THE EMU-II OTHER EMULATORS THE MICROCHIP PIC MCU PROCESSOR ARCHITECTURE THE CPU HARDWARE AND FILE REGISTERS THE PIC MICROCONTROLLER’S ALU DATA MOVEMENT THE PROGRAM COUNTER AND STACK RESET INTERRUPTS ARCHITECTURE DIFFERENCES USING THE PIC MCU INSTRUCTION SET SETTING UP THE MPLAB IDE SIMULATOR WITH A TEST TEMPLATE PIC MCU INSTRUCTION TYPES THE MID-RANGE INSTRUCTION SET LOW-END PIC MICROCONTROLLER INSTRUCTION SET PIC18 INSTRUCTION SET ASSEMBLY-LANGUAGE SOFTWARE TECHNIQUES SAMPLE TEMPLATE LABELS, ADDRESSES, AND FLAGS SUBROUTINES WITH PARAMETER PASSING SUBTRACTION, COMPARING AND NEGATION BIT AND AND OR 16-BIT OPERATIONS MULDIV, CONSTANT MULTIPLICATION AND DIVISION DELAYS PATCH SPACE STRUCTURES, POINTERS, AND ARRAYS SORTING DATA REENTRANT SUBROUTINES SIMULATING LOGIC EVENT-DRIVEN PROGRAMMING STATE MACHINE PROGRAMMING PORTING CODE BETWEEN PIC MICROCONTROLLER DEVICE ARCHITECTURES OPTIMIZING PIC MICROCONTROLLER APPLICATIONS A BAKER’S DOZEN RULES TO FOLLOW THAT WILL HELP TO AVOID APPLICATION SOFTWARE PROBLEMS BASIC OPERATING FEATURES POWER INPUT AND DECOUPLING CON?GURATION FUSES OPTION REGISTER INTERRUPT OPERATION THE RIGHT PIC MICROCONTROLLER TO LEARN ON MACRO DEVELOPMENT PIC MICROCONTROLLER ASSEMBLY-LANGUAGE MACROS THE DIFFERENCE BETWEEN DE?NES AND MACROS THE ASSEMBLER CALCULATOR MULTILINE C MACROS CONDITIONAL ASSEMBLY/COMPILATION USING DE?NES AND CONDITIONAL ASSEMBLY FOR APPLICATION DEBUG DEBUGGING MACROS STRUCTURED PROGRAMMING MACROS BUILDING AND LINKING CREATING LINKED APPLICATIONS BOOTLOADERS BOOTLOADER REQUIREMENTS MID-RANGE BOOTLOADERS PIC18 BOOTLOADERS REAL-TIME OPERATING SYSTEMS LOW-END AND MID-RANGE RTOSS PIC18 RTOS DESIGN DEBUGGING YOUR APPLICATIONS DOCUMENT THE EXPECTED STATE CHARACTERIZE THE PROBLEM HYPOTHESIZE AND TEST YOUR HYPOTHESIS PROPOSE CORRECTIVE ACTIONS TEST FIXES RELEASE YOUR SOLUTION DEBUG: AN APPLICATION TO TEST YOUR DEBUG SKILLS PIC MICROCONTROLLER APPLICATION DESIGN AND HARDWARE INTERFACING REQUIREMENTS DE?NITION PIC MICROCONTROLLER RESOURCE ALLOCATION EFFECTIVE USER INTERFACING PROJECT MANAGEMENT POWER MANAGEMENT INTERFACING TO EXTERNAL DEVICES PIC MCU OPTIONAL HARDWARE FEATURES MID-RANGE BUILT-IN EEPROM/FLASH ACCESS COMPARE/CAPTURE/PWM (CCP) MODULE SERIAL I/O ANALOG I/O PARALLEL SLAVE PORT (PSP) IN-CIRCUIT SERIAL PROGRAMMING (ICSP) PIC MCU INPUT AND OUTPUT DEVICE INTERFACING LEDS SWITCH BOUNCE MATRIX KEYPADS LCDS AUDIO OUTPUT RELAYS AND SOLENOIDS ASYNCHRONOUS (NRZ) SERIAL INTERFACES SYNCHRONOUS SERIAL INTERFACES MOTOR CONTROL DC MOTORS STEPPER MOTORS R/C SERVO CONTROL PRACTICAL PC INTERFACING PC SOFTWARE APPLICATION DEVELOPMENT TOOLS SERIAL PORT PARALLEL PORT PIC MICROCONTROLLER APPLICATION BASICS JUMPING AROUND SOME BASIC FUNCTIONS ANALOG INPUT/OUTPUT I/O WITH INTERRUPTS PROJECTS LOW-END DEVICES MID-RANGE DEVICES PIC18 DEVICES