MICROCONTROLLER PROGRAMMING

By M. RAMAD

TABLE OF CONTENTS CHAPTER 1 - BASIC ELECTRONICS 10 THE ATOM 11 ISOTOPES AND IONS 12 STATIC ELECTRICITY 13 ELECTRICAL CHARGE 131 VOLTAGE 132 CURRENT 133 POWER 134 OHM'S LAW 14 ELECTRICAL CIRCUITS 141 TYPES OF CIRCUITS 15 CIRCUIT ELEMENTS 151 RESISTORS 152 REVISITING OHM'S LAW 153 RESISTORS IN SERIES AND PARALLEL 154 CAPACITORS 155 CAPACITORS IN SERIES AND IN PARALLEL 156 INDUCTORS 157 TRANSFORMERS 16 SEMICONDUCTORS 161 INTEGRATED CIRCUITS 162 SEMICONDUCTOR ELECTRONICS 163 P-TYPE AND N-TYPE SILICON 164 THE DIODE CHAPTER 2 - NUMBER SYSTEMS 20 COUNTING 201 THE TALLY SYSTEM 202 ROMAN NUMERALS 21 THE ORIGINS OF THE DECIMAL SYSTEM 211 NUMBER SYSTEMS FOR DIGITAL-ELECTRONICS 212 POSITIONAL CHARACTERISTICS 213 RADIX OR BASE OF A NUMBER SYSTEM 22 TYPES OF NUMBERS 221 WHOLE NUMBERS 222 SIGNED NUMBERS 223 RATIONAL, IRRATIONAL, AND IMAGINARY NUMBERS 23 RADIX REPRESENTATIONS 231 DECIMAL VERSUS BINARY NUMBERS 232 HEXADECIMAL AND OCTAL 24 NUMBER SYSTEM CONVERSIONS 241 BINARY-TO-ASCII-DECIMAL 242 BINARY-TO-HEXADECIMAL CONVERSION 243 DECIMAL-TO-BINARY CONVERSION CHAPTER 3 - DATA TYPES AND DATA STORAGE 30 ELECTRONIC-DIGITAL MACHINES 31 CHARACTER REPRESENTATIONS 311 ASCII 312 EBCDIC AND IBM 313 UNICODE 32 STORAGE AND ENCODING OF INTEGERS 321 SIGNED AND UNSIGNED REPRESENTATIONS 322 WORD SIZE 323 BYTE ORDERING 324 SIGN-MAGNITUDE REPRESENTATION 325 RADIX COMPLEMENT REPRESENTATION 33 ENCODING OF FRACTIONAL NUMBERS 331 FIXED-POINT REPRESENTATIONS 332 FLOATING-POINT REPRESENTATIONS 333 STANDARDIZED FLOATING-POINT REPRESENTATIONS 334 IEEE 754 SINGLE FORMAT 335 ENCODING AND DECODING FLOATING-POINT NUMBERS 34 BINARY-CODED DECIMALS (BCD) 341 FLOATING-POINT BCD CHAPTER 4 - DIGITAL LOGIC, ARITHMETIC, AND CONVERSIONS 40 MICROCONTROLLER LOGIC AND ARITHMETIC 401 CPU FLAGS 402 WORD SIZE 41 LOGICAL INSTRUCTIONS 411 LOGICAL AND 412 LOGICAL OR 413 LOGICAL XOR 414 LOGICAL NOT 42 MICROCONTROLLER ARITHMETIC 421 UNSIGNED AND TWO’S COMPLEMENT ARITHMETIC 422 OPERATIONS ON DECIMAL NUMBERS 43 BIT MANIPULATIONS AND AUXILIARY OPERATIONS 431 BIT SHIFT AND ROTATE 432 COMPARISON OPERATIONS 433 OTHER SUPPORT OPERATIONS 44 UNSIGNED BINARY ARITHMETIC 441 MULTI-BYTE UNSIGNED ADDITION 442 UNSIGNED MULTIPLICATION 443 UNSIGNED DIVISION 45 SIGNED BINARY ARITHMETIC 451 OVERFLOW DETECTION IN SIGNED ARITHMETIC 452 SIGN EXTENSION OPERATIONS 453 MULTI-BYTE SIGNED OPERATIONS 46 DATA FORMAT CONVERSIONS 461 BCD DIGITS TO ASCII DECIMAL 462 UNSIGNED BINARY TO ASCII DECIMAL DIGITS 463 ASCII DECIMAL STRING TO UNSIGNED BINARY 464 UNSIGNED BINARY TO ASCII HEXADECIMAL DIGITS 466 SIGNED NUMERICAL CONVERSIONS CHAPTER 5 - CIRCUITS AND LOGIC GATES 50 DIGITAL CIRCUITS 51 THE DIODE REVISITED 511 THE LIGHT-EMITTING DIODE (LED) 52 THE TRANSISTOR 521 BIPOLAR TRANSISTOR 522 MOS TRANSISTOR 53 LOGIC GATES 54 TRANSISTOR-TRANSISTOR LOGIC 541 INVERTER GATES 542 THE AND GATE 543 THE NAND GATE 544 THE OR GATE 545 THE NOR GATE 546 POSITIVE AND NEGATIVE LOGIC 547 THE XOR GATE 548 SCHMITT TRIGGER INVERTER 55 OTHER TTL LOGIC FAMILIES 56 CMOS LOGIC GATES CHAPTER 6 - CIRCUIT COMPONENTS 60 POWER SUPPLIES 61 CLOCKED LOGIC AND FLIP-FLOPS 611 THE RS FLIP-FLOP 612 CLOCKED RS FLIP-FLOP 613 THE D FLIP-FLOP 614 THE EDGE-TRIGGERED D FLIP-FLOP 615 PRESET AND CLEAR SIGNALS 616 D FLIP-FLOP WAVEFORM ACTION 617 FLIP-FLOP APPLICATIONS 62 CLOCKS 621 CLOCK WAVEFORMS 622 THE TTL CLOCK 623 THE 555 TIMER 624 MICROCONTROLLER CLOCKS 63 FREQUENCY DIVIDERS AND COUNTERS 631 FREQUENCY DIVIDERS 632 THE JK FLIP-FLOP COUNTER 633 RIPPLE COUNTERS 634 DECODING GATES 635 SYNCHRONOUS COUNTERS 636 COUNTER ICS 637 SHIFT REGISTERS 64 MULTIPLEXERS AND DEMULTIPLEXERS 641 MULTIPLEXERS 642 DEMULTIPLEXERS 643 MULTIPLEXER AND DEMULTIPLEXER ICS 65 INPUT DEVICES 651 SWITCHES 652 SWITCH CONTACT BOUNCE 653 KEYPADS 66 OUTPUT DEVICES 661 SEVEN-SEGMENT LED 662 LIQUID CRYSTAL DISPLAYS 663 LCD TECHNOLOGIES CHAPTER 7 - THE MICROCHIP PIC 70 THE PICMICRO MICROCONTROLLER 701 PROGRAMMING THE PIC PIC PROGRAMMERS DEVELOPMENT BOARDS 702 PROTOTYPING THE PIC CIRCUIT 71 PIC ARCHITECTURE 711 BASELINE PIC FAMILY PIC10 DEVICES PIC12 DEVICES PIC14 DEVICES 712 MID-RANGE PIC FAMILY PIC16 DEVICES 713 HIGH-PERFORMANCE PIC FAMILY PIC18 DEVICES CHAPTER 8 - MID-RANGE PIC ARCHITECTURE 80 PROCESSOR ARCHITECTURE AND DESIGN 801 HARVARD ARCHITECTURE 802 RISC CPU DESIGN 803 SINGLE-WORD INSTRUCTIONS 804 INSTRUCTION FORMAT 805 MID-RANGE DEVICE VERSIONS 81 THE MID-RANGE CORE FEATURES 811 OSCILLATOR 812 SYSTEM RESET 813 INTERRUPTS 82 MID-RANGE CPU AND INSTRUCTION SET 821 MID-RANGE INSTRUCTION SET 822 STATUS AND OPTION REGISTERS 83 EEPROM DATA STORAGE 831 EEPROM IN MID-RANGE PICS 84 DATA MEMORY ORGANIZATION 841 THE W REGISTER 842 THE DATA REGISTERS MEMORY BANKS THE SFRS THE GPRS 843 INDIRECT ADDRESSING 85 MID-RANGE I/O AND PERIPHERAL MODULES 851 I/O PORTS 852 TIMER MODULES 853 CAPTURE-AND-COMPARE MODULE 854 MASTER SYNCHRONOUS SERIAL PORT (MSSP) MODULE 855 USART MODULE 856 A/D MODULE CHAPTER 9 - PIC PROGRAMMING: TOOLS AND TECHNIQUES 90 MICROCHIP’S MPLAB 901 EMBEDDED SYSTEMS 91 INTEGRATED DEVELOPMENT ENVIRONMENT 911 INSTALLING MPLAB 912 CREATING THE PROJECT 913 PROJECT BUILD OPTIONS 914 BUILDING THE PROJECT 92 SIMULATORS AND DEBUGGERS 921 MPLAB SIM 922 MPLAB HARDWARE DEBUGGERS 923 A “QUICK-AND-DIRTY” DEBUGGER 93 PROGRAMMERS 94 ENGINEERING PIC SOFTWARE 941 USING PROGRAM COMMENTS PROGRAM HEADER COMMENTED BANNERS COMMENTED BITMAPS 942 DEFINING DATA ELEMENTS THE CBLOCK DIRECTIVE 943 BANKING TECHNIQUES THE BANKSEL DIRECTIVE BANK SELECTION MACROS DEPRECATED BANKING INSTRUCTIONS 944 PROCESSOR AND CONFIGURATION CONTROLS CONFIGURATION BITS 945 NAMING CONVENTIONS 946 ERRORLEVEL DIRECTIVE 95 PSEUDO INSTRUCTIONS CHAPTER 10 - PROGRAMMING ESSENTIALS: INPUT AND OUTPUT 100 16F84A PROGRAMMING TEMPLATE 101 INTRODUCING THE 16F84A 1011 TEMPLATE CIRCUIT FOR 16F84A 1012 POWER SUPPLIES VOLTAGE REGULATOR 1013 COMPARISONS IN PIC PROGRAMMING THE INFAMOUS PIC CARRY FLAG 102 SIMPLE CIRCUITS AND PROGRAMS 1021 A SINGLE LED CIRCUIT LED FLASHER PROGRAM 1022 LED/PUSHBUTTON CIRCUIT 1023 MULTIPLE LED CIRCUIT 103 PROGRAMMING THE SEVEN-SEGMENT LED 104 A DEMONSTRATION BOARD 1041 PCB IMAGES FOR DEMO BOARD 1042 TESTDEMO1 PROGRAM CHAPTER 11 - INTERRUPTS 1101 THE INTERRUPT CONTROL REGISTER 1102 THE OPTION REGISTER 111 INTERRUPT SOURCES 1111 PORT-B EXTERNAL INTERRUPT 1112 TIMER0 INTERRUPT 1113 PORT-B LINE CHANGE INTERRUPT MULTIPLE EXTERNAL INTERRUPTS 1114 EEPROM DATA WRITE INTERRUPT 112 INTERRUPT HANDLERS 1121 CONTEXT SAVING OPERATIONS SAVING W AND STATUS REGISTERS 113 INTERRUPT PROGRAMMING 1131 PROGRAMMING THE EXTERNAL INTERRUPT RB0 INTERRUPT INITIALIZATION RB0 INTERRUPT SERVICE ROUTINE 1132 WAKEUP FROM SLEEP USING THE RB0 INTERRUPT THE SLEEPDEMO PROGRAM 1133 PORT-B BITS 4-7 STATUS CHANGE INTERRUPT RB4-7 INTERRUPT INITIALIZATION RB4-7 CHANGE INTERRUPT SERVICE ROUTINE 114 SAMPLE PROGRAMS 1141 THE RB0INT PROGRAM 1142 THE SLEEPDEMO PROGRAM 1143 THE RB4TO7INT PROGRAM CHAPTER 12 - TIMERS AND COUNTERS 120 THE 16F84 TIMER0 MODULE 1201 TIMER0 OPERATION TIMER0 INTERRUPT TIMER0 PRESCALER 1211 LONG DELAY LOOPS HOW ACCURATE THE DELAY? THE BLACK-AMMERMAN METHOD 122 TIMER0 AS A COUNTER 123 TIMER0 PROGRAMMING 1231 PROGRAMMING A COUNTER A TIMER/COUNTER TEST CIRCUIT THE TMR0COUNTER PROGRAM 1232 TIMER0 AS A SIMPLE DELAY TIMER 1233 MEASURED TIME LAPSE INTERRUPT-DRIVEN TIMER 124 THE WATCHDOG TIMER 1241 WATCHDOG TIMER PROGRAMMING 125 SAMPLE PROGRAMS 1251 THE TMR0COUNTER PROGRAM THE TIMER0 PROGRAM 1253 THE LAPSETIMER PROGRAM 1254 THE LAPSETMRINT PROGRAM CHAPTER 13 - LCD INTERFACING AND PROGRAMMING 130 LCD FEATURES AND ARCHITECTURE 1301 LCD FUNCTIONS AND COMPONENTS INTERNAL REGISTERS BUSY FLAG ADDRESS COUNTER DISPLAY DATA RAM (DDRAM) CHARACTER GENERATOR ROM (CGROM) CHARACTER GENERATOR RAM (CGRAM) TIMING GENERATION CIRCUIT LIQUID CRYSTAL DISPLAY DRIVER CIRCUIT CURSOR/BLINK CONTROL CIRCUIT 1302 CONNECTIVITY AND PIN-OUT 1311 BUSY FLAG OR TIMED DELAY OPTIONS 1312 CONTRAST CONTROL 1313 DISPLAY BACKLIGHT 1314 DISPLAY MEMORY MAPPING 132 HD44780 INSTRUCTION SET 1321 INSTRUCTION SET OVERVIEW CLEARING THE DISPLAY RETURN HOME ENTRY MODE SET DISPLAY AND CURSOR ON/OFF CURSOR/DISPLAY SHIFT FUNCTION SET SET CGRAM ADDRESS SET DDRAM ADDRESS READ BUSY FLAG AND ADDRESS REGISTER WRITE DATA READ DATA 1322 A 16F84 8-BIT DATA MODE CIRCUIT 133 LCD PROGRAMMING 1331 DEFINING CONSTANTS AND VARIABLES USING MPLAB DATA DIRECTIVES 1332 LCD INITIALIZATION FUNCTION SET COMMAND DISPLAY OFF DISPLAY AND CURSOR ON SET ENTRY MODE CURSOR AND DISPLAY SHIFT CLEAR DISPLAY 1333 AUXILIARY OPERATIONS TIME DELAY ROUTINE PULSING THE E LINE READING THE BUSY FLAG BIT MERGING OPERATIONS 1334 TEXT DATA STORAGE AND DISPLAY GENERATING AND STORING A TEXT STRING DISPLAYING THE TEXT STRING 1335 DATA COMPRESSION TECHNIQUES 4-BIT DATA TRANSFER MODE MASTER/SLAVE SYSTEMS 134 SAMPLE PROGRAMS 1342 LCDTEST2 PROGRAM 1343 LCDTEST3 PROGRAM CHAPTER 14 - COMMUNICATIONS 140 PIC COMMUNICATIONS OVERVIEW 141 SERIAL DATA TRANSMISSION 1411 ASYNCHRONOUS SERIAL TRANSMISSION 1412 SYNCHRONOUS SERIAL TRANSMISSION 1413 PIC SERIAL COMMUNICATIONS 1414 THE RS-232-C STANDARD ESSENTIAL CONCEPTS THE SERIAL BIT STREAM PARITY TESTING CONNECTORS AND WIRING THE NULL MODEM THE NULL MODEM CABLE 1415 THE EIA-485 STANDARD EIA-485 IN PIC-BASED SYSTEMS 142 PARALLEL DATA TRANSMISSION 1421 PIC PARALLEL SLAVE PORT (PSP) 143 PIC “FREE-STYLE” SERIAL PROGRAMMING 1431 PIC-TO-PIC SERIAL COMMUNICATIONS PIC-TO-PIC SERIAL COMMUNICATIONS CIRCUITS PIC-TO-PIC SERIAL COMMUNICATIONS PROGRAMS 1432 PROGRAM USING SHIFT REGISTER ICS THE 74HC165 PARALLEL-TO-SERIAL SHIFT REGISTER 74HC164 SERIAL-TO-PARALLEL SHIFT REGISTER 144 PIC PROTOCOL-BASED SERIAL PROGRAMMING THE RS-232-C TRANSCEIVER IC PIC TO PC COMMUNICATIONS AN RS-232-C TTY BOARD A 16F84A UART EMULATION AN LCD SCROLLING ROUTINE 1442 RS-232-C COMMUNICATIONS ON THE 16F87X THE 16F87X USART MODULE THE USART BAUD RATE GENERATOR 16F87X USART ASYNCHRONOUS TRANSMITTER 16F87X USART ASYNCHRONOUS RECEIVER PIC-TO-PC RS-232-C COMMUNICATIONS CIRCUIT 16F877 PIC INITIALIZATION CODE USART RECEIVE AND TRANSMIT ROUTINES THE USART RECEIVE INTERRUPT 145 SAMPLE PROGRAMS 1451 SERIALSND PROGRAM 1452 SERIALRCV PROGRAM 1453 SERIAL6465 PROGRAM 1454 TTYUSART PROGRAM 1455 SERCOMLCD PROGRAM 1456 SERINTLCD PROGRAM CHAPTER 15 - DATA EEPROM PROGRAMMING 150 PIC INTERNAL EEPROM MEMORY 16F84 EEPROM DATA MEMORY WRITE 16F84 EEPROM DEMONSTRATION PROGRAM 1502 EEPROM PROGRAMMING ON THE 16F87X READING EEPROM DATA MEMORY ON THE 16F87X WRITING TO EEPROM DATA MEMORY IN THE 16F87X GFR ACCESS ISSUE IN THE 16F87X 1503 16F87X EEPROM CIRCUIT AND PROGRAM 151 EEPROM DEVICES AND INTERFACES 1511 THE I2C SERIAL INTERFACE 1512 I2C COMMUNICATIONS 1513 EEPROM COMMUNICATIONS CONDITIONS 1514 EEPROM WRITE OPERATION 1515 EEPROM READ OPERATION 1516 I2C EEPROM DEVICES 1517 PIC MASTER SYNCHRONOUS SERIAL PORT (MSSP) MSSP IN MASTER MODE IC2 INITIALIZATION PROCEDURE I2C WRITE BYTE PROCEDURE I2C READ BYTE PROCEDURE 152 SAMPLE PROGRAMS 1521 EECOUNTER PROGRAM 1522 SER2EEP PROGRAM 1523 I2CEEP PROGRAM CHAPTER 16 - ANALOG TO DIGITAL AND REALTIME CLOCKS A/D CONVERTERS 1601 CONVERTER RESOLUTION 1602 ADC IMPLEMENTATION 161 A/D INTEGRATED CIRCUITS 1611 ADC0331 SAMPLE CIRCUIT AND PROGRAM 162 PIC ON-BOARD A/D HARDWARE 1621 A/D MODULE ON THE 16F87X THE ADCON0 REGISTER THE ADCON1 REGISTER SLEEP MODE OPERATION 1622 A/D MODULE SAMPLE CIRCUIT AND PROGRAM 163 REALTIME CLOCKS 1631 THE NJU6355 REALTIME CLOCK 1632 RTC DEMONSTRATION CIRCUIT AND PROGRAM BCD CONVERSION PROCEDURES 164 SAMPLE PROGRAMS 1641 ADF84 PROGRAM 1642 A2DINLCD PROGRAM 1643 RTC2LCD PROGRAM

ISBN978-93-7796-528-0
Copyright Year2027
Pages627
Price$275.99
LanguageEnglish
FormatPDF