“EASY MICROCONTROL’n” is intended to ease the beginner toward understanding and application of the PIC ® line of microcontrollers from Microchip Technology, Inc. Examples of assembly language programs range from a simple one to turn on LED’s to more complex ones for timing and for event-counting. Writing programs is covered in-depth and the use of flow charts, as an aid to visualizing what a program does, is emphasized. The approach is hands-on with many examples, all of which may be demonstrated using a very simple demo board (a project) in the beginning of the book. By David Benson (8-1/2 x 11 format, 179 pages, $34.95).
TABLE OF CONTENTS
PRODUCT OVERVIEW
PIC16F84
Pins and Functions
Package
Clock Oscillator
Reset
Ports
Special Features
Watchdog Timer
Power-up Timer
Sleep Mode
PIC Microcontroller Architecture
Program Memory
Weird Hex Notation
File Registers
Working Register (W)
Option Register
Stac
Reset Vector
Interrupt Vector
Option Register
Program Counter
Status Register
Configuration bits
Circuit For Experiments
Circuit For Experimenting With The PIC16F84
Circuit Module For Experiments - 18P Board
(AKA '84 On A Board)
CHOOSING DEVELOPMENT TOOLS
MPLAB
Choosing A Device Programmer
- PICSTART Plus
- 3rd Party Programmer
USING AN ASSEMBLER
Source Code For The Assembler
Semicolon (;)
Tabs
Style
Headers
Labels
Equates
Literals
Origin
End
Program Format
Files Used By Assembler
Files Created By Assembler
Preventing Some Gotchas
Configuration Bits
MPLAB OVERVIEW - GETTING STARTED
Using MPLAB - Getting Started
Toolbars
Select Development Mode And Device Type
Project
Text Editor
Edit Project
Assembler
More MPLAB Operations
PROGRAMMING A DEVICE
WRITING PROGRAMS
Programming Concepts
Instruction Set
Weird Move Instruction
Instruction Format For The Assembler
Byte-Oriented Instructions
Bit-Oriented Instructions
Literal Instructions
Control Instructions (CALL and GOTO)
Destination Designator (d)
Hexadecimal Numbers vs. MPASM Assembler
Binary And Decimal Numbers vs. MPASM Assembler
ASCII Characters vs. MPASM Assembler
Addressing Modes
Immediate addressing
Direct Addressing
Indirect Addressin
Relative Addressing
Use Of The RETLW Instruction For Accessing
Tables of Data Via Relative Addressing
Using The Ports
Data Direction
Port Read/Write
Flags
Simple Data Transfers
Loop - Endless
Loop With a Counter
Loop Until
Comparisons
Bit Manipulation Using Bit Manipul
Instructions
Bit Manipulation Using Logic Instructions
Using Bit Manipulation
Sequencing
Subroutines
Time Delay Loop
Lookup Tables
Programming Style
INTERRUPTS
Interrupt Control Register
Interrupt Sources
External
Timer/Counter
Port B Interrupt On Change - Bits 7,6,5,4
Global Interrupt Enable Flag
Saving Status During An Interrupt (Context Saving)
Where To Put The Interrupt Service Routine
Interrupt Latency
Multiple Interrupt Sources
Example - External Interrupt
TIMING AND COUNTING
Digital Output Waveforms
Timing And Counting Using The PIC16F84's TMR0
On-Board Timer/Counter
Prescaler
Changing Prescaler Assignment
Using The Timer/Counter
Timer/Counter Experiments
Digital Output Using TMR0 - Internal Clock
Single Time Interval - Internal Clock
Single Time Interval - External Clock
Free Running Mode - Internal Clock
Free Running Mode - External Clock
Counting Events (Pulses)
FILE REGISTER BANK SWITCHING
File Register Bank Switching
Bank Switching Demo
Interrupts And Bank Switching
PROGRAM MEMORY PAGING
14-Bit Core Mid-Range Parts
Interrupts And Program Memory Paging
Summary
LOCATING TABLES IN PROGRAM MEMORY
Include Files
PIC16F84 DATA EEPROM MEMORY
EEADR Register
EEDATA Register
EECON1 Register
EECON2 "Register"
Read Cycle
Write Cycle
Programming The Data EEPROM
Code Protection
MORE ABOUT CONFIGURATION BITS
I/O CONVERSION
Input Conversion
Output Conversion
MULTIPLEXED 7-SEGMENT LED DISPLAY
MORE PIC MICROCONTROLLER BOOKS
APPENDICES
Appendix A - Sources
Appendix B - Hexadecimal Numbers
Appendix C - Program Listings vs. Page Number
[TOP OF PAGE]
[Home]
[ Go Direct to Secure Order Form ]
|