ADVANCED PIC MICROCONTROLLER PROJECTS IN C

By B. KULIL

CONTENTS CHAPTER 1: MICROCOMPUTER SYSTEMS 1 1 INTRODUCTION 1 2 MICROCONTROLLER SYSTEMS RAM ROM PROM EPROM EEPROM FLASH EEPROM 1 3 MICROCONTROLLER FEATURES SUPPLY VOLTAGE THE CLOCK TIMERS WATCHDOG RESET INPUT INTERRUPTS BROWN-OUT DETECTOR ANALOG-TO-DIGITAL CONVERTER SERIAL INPUT-OUTPUT 1 3 10 EEPROM DATA MEMORY 1 3 11 LCD DRIVERS 1 3 12 ANALOG COMPARATOR 1 3 13 REAL-TIME CLOCK 1 3 14 SLEEP MODE 1 3 15 POWER-ON RESET 1 3 16 LOW-POWER OPERATION 1 3 17 CURRENT SINK/SOURCE CAPABILITY 1 3 18 USB INTERFACE 1 3 19 MOTOR CONTROL INTERFACE 1 3 20 CAN INTERFACE 1 3 21 ETHERNET INTERFACE 1 3 22 ZIGBEE INTERFACE MICROCONTROLLER ARCHITECTURES 1 4 1 RISC AND CISC NUMBER SYSTEMS 1 5 1 DECIMAL NUMBER SYSTEM 1 5 2 BINARY NUMBER SYSTEM 1 5 3 OCTAL NUMBER SYSTEM 1 5 4 HEXADECIMAL NUMBER SYSTEM CONVERTING BINARY NUMBERS INTO DECIMAL CONVERTING DECIMAL NUMBERS INTO BINARY CONVERTING BINARY NUMBERS INTO HEXADECIMAL CONVERTING HEXADECIMAL NUMBERS INTO BINARY 1 10 CONVERTING HEXADECIMAL NUMBERS INTO DECIMAL 1 11 CONVERTING DECIMAL NUMBERS INTO HEXADECIMAL 1 12 CONVERTING OCTAL NUMBERS INTO DECIMAL 1 13 CONVERTING DECIMAL NUMBERS INTO OCTAL 1 14 CONVERTING OCTAL NUMBERS INTO BINARY 1 15 CONVERTING BINARY NUMBERS INTO OCTAL 1 16 NEGATIVE NUMBERS 1 17 ADDING BINARY NUMBERS 1 18 SUBTRACTING BINARY NUMBERS 1 19 MULTIPLICATION OF BINARY NUMBERS 1 20 DIVISION OF BINARY NUMBERS 1 21 FLOATING POINT NUMBERS 1 22 CONVERTING A FLOATING POINT NUMBER INTO DECIMAL 1 22 1 NORMALIZING FLOATING POINT NUMBERS 1 22 2 CONVERTING A DECIMAL NUMBER INTO FLOATING POINT 1 22 3 MULTIPLICATION AND DIVISION OF FLOATING POINT NUMBERS 1 22 4 ADDITION AND SUBTRACTION OF FLOATING POINT NUMBERS 1 23 BCD NUMBERS 1 24 SUMMARY 1 25 EXERCISES CHAPTER 2: PIC18F MICROCONTROLLER SERIES PIC18FXX2 ARCHITECTURE 2 1 1 PROGRAM MEMORY ORGANIZATION DATA MEMORY ORGANIZATION THE CONFIGURATION REGISTERS THE POWER SUPPLY THE RESET THE CLOCK SOURCES WATCHDOG TIMER PARALLEL I/O PORTS 2 1 10 CAPTURE/COMPARE/PWM MODULES (CCP) 2 1 11 ANALOG-TO-DIGITAL CONVERTER (A/D) MODULE 2 1 12 INTERRUPTS 2 2 SUMMARY 2 3 EXERCISES CHAPTER 3: C PROGRAMMING LANGUAGE 3 1 STRUCTURE OF A MIKROC PROGRAM COMMENTS BEGINNING AND ENDING OF A PROGRAM TERMINATING PROGRAM STATEMENTS WHITE SPACES CASE SENSITIVITY VARIABLE NAMES VARIABLE TYPES CONSTANTS ESCAPE SEQUENCES 3 1 10 STATIC VARIABLES 3 1 11 EXTERNAL VARIABLES 3 1 12 VOLATILE VARIABLES 3 1 13 ENUMERATED VARIABLES 3 1 14 ARRAYS 3 1 15 POINTERS 3 1 16 STRUCTURES 3 1 17 UNIONS 3 1 18 OPERATORS IN C 3 1 19 MODIFYING THE FLOW OF CONTROL 3 1 20 MIXING MIKROC WITH ASSEMBLY LANGUAGE STATEMENTS 3 2 PIC MICROCONTROLLER INPUT-OUTPUT PORT PROGRAMMING 3 3 PROGRAMMING EXAMPLES 3 4 SUMMARY 3 5 EXERCISES CHAPTER 4: FUNCTIONS AND LIBRARIES IN MIKROC 4 1 MIKROC FUNCTIONS 4 1 1 FUNCTION PROTOTYPES 4 1 2 PASSING ARRAYS TO FUNCTIONS 4 1 3 PASSING VARIABLES BY REFERENCE TO FUNCTIONS 4 1 4 VARIABLE NUMBER OF ARGUMENTS 4 1 5 FUNCTION REENTRANCY 4 1 6 STATIC FUNCTION VARIABLES 4 2 MIKROC BUILT-IN FUNCTIONS 4 3 MIKROC LIBRARY FUNCTIONS 4 3 1 EEPROM LIBRARY 4 3 2 LCD LIBRARY 4 3 3 SOFTWARE UART LIBRARY 4 3 4 HARDWARE USART LIBRARY 4 3 5 SOUND LIBRARY 4 3 6 ANSI C LIBRARY 4 3 7 MISCELLANEOUS LIBRARY 4 4 SUMMARY 4 5 EXERCISES CHAPTER 5: PIC18 DEVELOPMENT TOOLS 5 1 SOFTWARE DEVELOPMENT TOOLS 5 1 1 TEXT EDITORS 5 1 2 ASSEMBLERS AND COMPILERS 5 1 3 SIMULATORS 5 1 4 HIGH-LEVEL LANGUAGE SIMULATORS 5 1 5 INTEGRATED DEVELOPMENT ENVIRONMENTS (IDES) 5 2 HARDWARE DEVELOPMENT TOOLS 5 2 1 DEVELOPMENT BOARDS 5 2 2 DEVICE PROGRAMMERS 5 2 3 IN-CIRCUIT DEBUGGERS 5 2 4 IN-CIRCUIT EMULATORS 5 2 5 BREADBOARDS 5 3 MIKROC INTEGRATED DEVELOPMENT ENVIRONMENT (IDE) 5 3 1 MIKROC IDE SCREEN 5 3 2 CREATING AND COMPILING A NEW FILE 5 3 3 USING THE SIMULATOR 5 3 4 USING THE MIKROICD IN-CIRCUIT DEBUGGER 5 3 5 USING A DEVELOPMENT BOARD 5 4 SUMMARY 5 5 EXERCISES CHAPTER 6: SIMPLE PIC18 PROJECTS 6 1 PROGRAM DESCRIPTION LANGUAGE (PDL) 6 1 1 START-END 6 1 2 SEQUENCING 6 1 3 IF-THEN-ELSE-ENDIF 6 1 4 DO-ENDDO 6 1 5 REPEAT-UNTIL PROJECT 6 1—CHASING LEDS PROJECT 6 2—LED DICE PROJECT 6 3—TWO-DICE PROJECT PROJECT 6 4—TWO-DICE PROJECT USING FEWER I/O PINS PROJECT 6 5—7-SEGMENT LED COUNTER PROJECT 6 6—TWO-DIGIT MULTIPLEXED 7-SEGMENT LED PROJECT 6 7—TWO-DIGIT MULTIPLEXED 7-SEGMENT LED COUNTER WITH TIMER INTERRUPT PROJECT 6 8—VOLTMETER WITH LCD DISPLAY PROJECT 6 9—CALCULATOR WITH KEYPAD AND LCD PROJECT 6 10—SERIAL COMMUNICATION–BASED CALCULATOR CHAPTER 7: ADVANCED PIC18 PROJECTS—SD CARD PROJECTS 7 1 THE SD CARD 7 1 1 THE SPI BUS 7 1 2 OPERATION OF THE SD CARD IN SPI MODE 7 2 MIKROC LANGUAGE SD CARD LIBRARY FUNCTIONS PROJECT 7 1—READ CID REGISTER AND DISPLAY ON A PC SCREEN PROJECT 7 2—READ/WRITE TO SD CARD SECTORS PROJECT 7 3—USING THE CARD FILING SYSTEM PROJECT 7 4—TEMPERATURE LOGGER CHAPTER 8: ADVANCED PIC18 PROJECTS—USB BUS PROJECTS 8 1 SPEED IDENTIFICATION ON THE BUS 8 2 USB STATES 8 3 USB BUS COMMUNICATION 8 3 1 PACKETS 8 3 2 DATA FLOW TYPES 8 3 3 ENUMERATION 8 4 DESCRIPTORS 8 4 1 DEVICE DESCRIPTORS 8 4 2 CONFIGURATION DESCRIPTORS 8 4 3 INTERFACE DESCRIPTORS 8 4 4 HID DESCRIPTORS 8 4 5 ENDPOINT DESCRIPTORS 8 5 PIC18 MICROCONTROLLER USB BUS INTERFACE 8 6 MIKROC LANGUAGE USB BUS LIBRARY FUNCTIONS PROJECT 8 1—USB-BASED MICROCONTROLLER OUTPUT PORT PROJECT 8 2—USB-BASED MICROCONTROLLER INPUT/OUTPUT PROJECT 8 3—USB-BASED AMBIENT PRESSURE DISPLAY ON THE PC CHAPTER 9: ADVANCED PIC18 PROJECTS—CAN BUS PROJECTS DATA FRAME 9 1 1 START OF FRAME (SOF) 9 1 2 ARBITRATION FIELD 9 1 3 CONTROL FIELD 9 1 4 DATA FIELD 9 1 5 CRC FIELD 9 1 6 ACK FIELD REMOTE FRAME ERROR FRAME OVERLOAD FRAME BIT STUFFING TYPES OF ERRORS NOMINAL BIT TIMING PIC MICROCONTROLLER CAN INTERFACE PIC18F258 MICROCONTROLLER 9 9 1 CONFIGURATION MODE 9 9 2 DISABLE MODE 9 9 3 NORMAL OPERATION MODE 9 9 4 LISTEN-ONLY MODE 9 9 5 LOOP-BACK MODE 9 9 6 ERROR RECOGNITION MODE 9 9 7 CAN MESSAGE TRANSMISSION 9 9 8 CAN MESSAGE RECEPTION 9 9 9 CALCULATING THE TIMING PARAMETERS 9 10 MIKROC CAN FUNCTIONS 9 10 1 CANSETOPERATIONMODE 9 10 2 CANGETOPERATIONMODE 9 10 3 CANINITIALIZE 9 10 4 CANSETBAUDRATE 9 10 5 CANSETMASK 9 10 6 CANSETFILTER 9 10 7 CANREAD 9 10 8 CANWRITE 9 11 CAN BUS PROGRAMMING PROJECT 9 1—TEMPERATURE SENSOR CAN BUS PROJECT CHAPTER 10: MULTI-TASKING AND REAL-TIME OPERATING SYSTEMS 10 1 STATE MACHINES 10 2 THE REAL-TIME OPERATING SYSTEM (RTOS) 10 2 1 THE SCHEDULER 10 3 RTOS SERVICES 10 4 SYNCHRONIZATION AND MESSAGING TOOLS 10 5 CCS PIC C COMPILER RTOS 10 5 1 PREPARING FOR RTOS 10 5 2 DECLARING A TASK PROJECT 10 1—LEDS PROJECT 10 2—RANDOM NUMBER GENERATOR PROJECT 10 3—VOLTMETER WITH RS232 SERIAL OUTPUT

ISBN978-93-7719-944-9
Copyright Year2027
Pages552
Price$271.99
LanguageEnglish
FormatPDF
CategoryELECTRONICS