Summary of 123 PIC Microcontroller Experiments for the Evil Genius By Myke Predko E-book
This book, "123 PIC Microcontroller Experiments for the Evil Genius," serves as a comprehensive guide for professionals and enthusiasts to master PIC microcontrollers using C and Assembly languages. It covers fundamental concepts like I/O pins, memory registers, and basic programming structures, progressing to advanced interfacing with sensors, motors, displays, and robotics projects. The text emphasizes practical experimentation with tools like MPLAB IDE and the PICkit 1 Starter Kit, offering over 100 experiments ranging from simple LED sequencing to complex robot control systems.
Parts used in the 123 PIC Microcontroller Experiments:
- PIC16F684 Microcontroller
- MPLAB IDE
- PICkit 1 Starter Kit
- Seven-Segment LED Display
- LED Matrix Displays
- LCD Display
- Switch Matrix Keypad
- Sharp GP2D120 Ranging Object Sensors
- Ultrasonic Distance-Range Sensor
- DC Motor
- Bipolar Stepper Motor
- Unipolar Stepper Motor
- Radio-Control Model Servo
- IR TV Remote Control
- IR Line-Following Sensors
- PIC MCU Electronics PCB
- BS2 User Interface
- ZipZaps Robot components
Book Introduction:
Microchip continually updates its product line with more capable and lower cost products. They also provide excellent development tools. Few books take advantage of all the work done by Microchip. 123 PIC Microcontroller Experiments for the Evil Genius uses the best parts, and does not become dependent on one tool type or version, to accommodate the widest audience possible. Building on the success of 123 Robotics Experiments for the Evil Genius, as well as the unbelievable sales history of Programming and Customizing the PIC Microcontroller, this book will combine the format of the evil genius title with the following of the microcontroller audience for a sure-fire hit.
Audience: Professional
Format: Paperback
Language: English
Number Of Pages: 384
Published: 21st June 2005
Dimensions (cm): 27.9 x 21.6 x 1.8
Weight (kg): 0.726
Table of Contents:
| Acknowledgments | p. ix |
| About the Author | p. x |
| Introduction | p. 1 |
| Under the Covers of the PIC16F684 | p. 13 |
| I/O Pins | p. 14 |
| Configuration Word | p. 16 |
| PIC MCU Variable Memory, Registers, and Program Memory | p. 18 |
| Simulating cFlash.c in MPLAB IDE | p. 20 |
| Introductory C Programming | p. 27 |
| Variable Declaration Statements | p. 28 |
| C Data Types | p. 29 |
| Constant Formatting | p. 31 |
| Assignment Statements | p. 32 |
| Expressions | p. 33 |
| Bitwise Operators | p. 35 |
| Logical Expressions | p. 37 |
| Conditional Execution Using the If Statement | p. 39 |
| Nested Conditional Statements | p. 41 |
| The Switch Decision Statement | p. 43 |
| Conditional Looping | p. 45 |
| The For Statement | p. 46 |
| Simple PIC MCU Applications | p. 51 |
| Basic Delays | p. 53 |
| Sequencing PICkit 1 Starter Kit LEDs | p. 55 |
| Binary Number Output Using PICkit 1 Starter Kit LEDs | p. 56 |
| Basic Button Inputs | p. 58 |
| Debouncing Button Inputs | p. 59 |
| MCLR Operation | p. 61 |
| Ending Applications | p. 63 |
| C Language Features | p. 67 |
| Functions and Subroutines | p. 69 |
| Global and Local Variables | p. 70 |
| Defines and Macros | p. 71 |
| Variable Arrays | p. 73 |
| Structures and Unions | p. 75 |
| Pointers and Lists | p. 76 |
| Character Strings | p. 79 |
| Library Functions | p. 81 |
| PIC16F684 Microcontroller Built-in Functions | p. 89 |
| Brownout Reset | p. 91 |
| ADC Operation | p. 93 |
| Comparator Operation | p. 96 |
| Watchdog Timer | p. 99 |
| Short Timer Delays Using TMR0 | p. 101 |
| Using the TMR0 Prescaler | p. 102 |
| Long Timer Delays Using TMR1 | p. 104 |
| Comparing Clock Oscillators | p. 106 |
| Pin Resistance Measurements | p. 109 |
| Generating PWM Signals | p. 111 |
| Storing and Retrieving Data | p. 114 |
| Interfacing Projects for the PIC Microcontroller | p. 117 |
| Driving a Seven-Segment LED Display Directly from the PIC16F684 | p. 119 |
| Multiple Seven-Segment LED Displays | p. 121 |
| LED Matrix Displays | p. 124 |
| LCD Display | p. 126 |
| Producing Random Numbers | p. 128 |
| Two-Bit LCD Display | p. 129 |
| Switch Matrix Keypad Mapping | p. 131 |
| Sample C Microcontroller Applications | p. 137 |
| Pumpkin LED Display | p. 138 |
| Reaction-Time Tester | p. 140 |
| Rokenbok Monorail/Traffic Lights | p. 143 |
| Seven-Segment LED Thermometer | p. 146 |
| PIC MCU “Piano” | p. 151 |
| Model Railway Switch Control | p. 153 |
| PC Operating Status Display | p. 156 |
| Introduction to PIC MCU Assembly Language Programming | p. 159 |
| The asmTemplate.asm File and Basic Directives | p. 160 |
| Specifying Program Memory Addresses | p. 161 |
| Loading the WREG and Saving Its Contents | p. 164 |
| Defining Variables | p. 165 |
| Bitwise Instructions | p. 167 |
| Addition Instructions | p. 168 |
| AddLibs: Strange Simulator Results | p. 170 |
| Subtraction Instructions | p. 171 |
| Bank Addressing | p. 173 |
| Bit Instructions | p. 175 |
| Bit Skip Instructions | p. 177 |
| Conditional Execution | p. 178 |
| decfsz Looping | p. 180 |
| Subroutines | p. 181 |
| Defining and Implementing Arrays | p. 182 |
| PIC Microcontroller Assembly Language Resource Routines | p. 187 |
| Logic Simulation Using the PIC16F684 | p. 188 |
| The C “Switch” Statement | p. 191 |
| Defines | p. 194 |
| Conditional Assembly | p. 197 |
| Macros | p. 199 |
| 16-Bit Values/Variables | p. 201 |
| Universal Delay Macro | p. 203 |
| High-Level Programming | p. 205 |
| Implementing Read-Only Arrays | p. 208 |
| Data Stacks | p. 210 |
| Circular Buffers | p. 212 |
| Reading and Writing the EEPROM Data Memory | p. 214 |
| Sensors | p. 221 |
| PIC MCU BS2 User Interface | p. 224 |
| PIC MCU BS2 Keypad Interface | p. 230 |
| PIC MCU Instrument Interface | p. 231 |
| Sound Detection | p. 235 |
| Multiple Microswitch Debouncing | p. 237 |
| Light Sensors | p. 238 |
| Infrared (IR) Surface Sensor | p. 239 |
| Interfacing to Sharp GP2D120 Ranging Object Sensors | p. 242 |
| Do-It-Yourself IR Object Sensor | p. 243 |
| IR Object-Ranging Sensor | p. 247 |
| Ultrasonic Distance-Range Sensor | p. 249 |
| Robot IR Tag | p. 251 |
| Motor Control | p. 255 |
| DC Motor Driven Using the CCP PWM and Using a Potentiometer Control | p. 257 |
| DC Motor Control with Simple TMR0 PWM | p. 261 |
| Controlling Multiple Motors with PWM and BS2 Interface | p. 264 |
| Bipolar Stepper Motor Control | p. 265 |
| Unipolar Stepper Motor Control | p. 269 |
| Radio-Control Model Servo Control | p. 272 |
| Multiple Servo Control Software Structure | p. 274 |
| Two-Servo Robot Base with BS2 Interface | p. 277 |
| Solving Programming Problems in PIC Microcontroller Assembly Language | p. 279 |
| Eight-Bit Multiplication with a 16-Bit Product | p. 280 |
| Division of a 16-Bit Value by an Eight-Bit Value | p. 282 |
| Squaring a Number Using Finite Difference Theory | p. 284 |
| Find the Square Root of a 16-Bit Number | p. 286 |
| Converting a Byte into Three Decimal, Two Hex, or Eight Binary ASCII Bytes | p. 289 |
| Produce the Even Parity Values for a Byte | p. 291 |
| Sort a List of 10 Eight-Bit Values Using the Bubble-Sort Algorithm | p. 292 |
| Encrypt and Decrypt an ASCIIZ String Using a Simple Substitution Algorithm | p. 294 |
| Generate a Fibonacci Number Sequence | p. 297 |
| Find the Largest Common Factor of Two Eight-Bit Numbers | p. 298 |
| ZipZaps Robot | p. 301 |
| Characterizing the ZipZaps | p. 303 |
| PIC MCU Power Supply | p. 305 |
| PIC MCU Electronics PCB | p. 307 |
| IR TV Remote Control | p. 310 |
| Motor and Steering Control | p. 311 |
| Basic Task-Control Software | p. 313 |
| IR Remote Control | p. 316 |
| Light Sensors and Following | p. 317 |
| IR Object-Detection Sensors | p. 318 |
| IR Line-Following Sensors | p. 320 |
| Index | p. 327 |
| Table of Contents provided by Ingram. All Rights Reserved. |
Link to Purchase E-Book:
123 PIC Microcontroller Experiments for the Evil Genius By Myke Predko E-book
- What is the primary microcontroller used in this book?
The book primarily uses the PIC16F684 microcontroller for its experiments. - How can I simulate code before running it on hardware?
You can use Simulating cFlash.c in MPLAB IDE to simulate code. - Can this book be used for professional development?
Yes, the intended audience includes professionals seeking to build on their skills. - Does the book cover both C and Assembly language?
Yes, the text includes sections on Introductory C Programming and Introduction to PIC MCU Assembly Language Programming. - What types of sensors are covered in the experiments?
The book covers Light Sensors, Infrared Surface Sensors, Sharp GP2D120 Ranging Object Sensors, and Ultrasonic Distance-Range Sensors. - How do I control motors using this microcontroller?
The book details controlling DC Motors, Bipolar Stepper Motors, Unipolar Stepper Motors, and Radio-Control Model Servos using PWM and other methods. - Is there content on creating a robot?
Yes, the book includes a project section for the ZipZaps Robot covering power supply, electronics PCB, and motor control. - What display technologies are supported?
The experiments include driving Seven-Segment LED Displays, LED Matrix Displays, and LCD Displays. - How does the book handle button inputs?
The text explains Basic Button Inputs and Debouncing Button Inputs to ensure reliable detection. - Can I interface with external devices like instruments?
Yes, there is a section on PIC MCU Instrument Interface and PIC MCU BS2 Keypad Interface.