7.2 Microcontrollers  
261
when power is removed. There are two main types of RAM:  static RAM  (SRAM), 
which retains its data in flip-flops as long as the memory is powered, and  dynamic 
RAM 
(rewritten) periodically because of charge leakage. Data stored in an EPROM can 
be erased with ultraviolet light applied through a transparent quartz window on top 
of the EPROM IC. Then new data can be stored on the EPROM. Another type of 
EPROM is  electrically erasable   (EEPROM).  Data in EEPROM can be erased elec-
trically and rewritten through its data lines without the need for ultraviolet light. 
Because data in RAM are volatile, ROM, EPROM, EEPROM, and peripheral mass 
memory storage devices such as magnetic, optical, and solid-state drives are some-
times needed to provide permanent data storage. 
Communication to and from the microprocessor occurs through I/O devices 
connected to the bus. External computer peripheral I/O devices include keyboards, 
printers, displays, and network devices. For mechatronic applications, analog-to-
digital (A/D), digital-to-analog (D/A), and digital I/O (D/D) devices provide inter-
faces to switches, sensors, and actuators. 
The instructions that can be executed by the CPU are defined by a binary code 
called  machine code.  The instructions and corresponding codes are microprocessor 
microprocessor to perform a low-level function (e.g., add a number to a register or 
move a register’s value to a memory location). Microprocessors can be programmed 
using  assembly language,  which has a mnemonic command corresponding to each 
instruction (e.g.,  ADD  to add a number to a register and  MOV  to move a register’s 
value to a memory location). However, assembly language must be converted to 
machine code, using software called an  assembler,  before it can be executed on the 
microprocessor. When the set of instructions is small, the microprocessor is known 
as a  RISC  (reduced instruction-set computer) microprocessor. RISC microproces-
sors are cheaper to design and manufacture and are usually faster. However, more 
programming steps may be required for complex algorithms, due to the limited set 
of instructions. 
Programs can also be written in a higher level language such as BASIC or C, 
provided that a compiler is available that can generate machine code for the specific 
microprocessor being used. The advantages of using a high-level language are that 
it is easier to learn and use, programs are easier to  debug  (the process of finding and 
removing errors), and programs are easier to comprehend. A disadvantage is that the 
resulting machine code may be less efficient (i.e., slower and require more memory) 
than a corresponding well-written assembly language program.   
7.2 MICROCONTROLLERS 
There are two branches in the ongoing evolution of the microprocessor. One branch 
supports CPUs for the personal computer and workstation industry, where the main 
constraints are high speed and large word size (32 and 64 bits). The other branch 
includes development of the  microcontroller,  which is a single IC containing spe-
Convert multiple page pdf to jpg - Convert PDF to JPEG images in C#.net, ASP.NET MVC, WinForms, WPF project
How to convert PDF to JPEG using C#.NET PDF to JPEG conversion / converter library control SDK
pdf to jpeg; best pdf to jpg converter online
Convert multiple page pdf to jpg - VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.net, ASP.NET MVC, WinForms, WPF project
Online Tutorial for PDF to JPEG (JPG) Conversion in VB.NET Image Application
convert pdf to jpg; .pdf to jpg converter online
262 
CHAPTER 7 
Microcontroller Programming and Interfacing
contains a microprocessor, memory, I/O capabilities, and other on-chip resources. 
Microchip’s PIC, Motorola’s 68HC11, and Intel’s 8096. 
Internet Link 7.1 points to various microcontroller online resources and manu-
facturers. A wealth of information is available online, and it is constantly changing 
as manufacturers continually release products with faster speeds, larger memories, 
and more functionality. Factors that have driven development of the microcontroller 
are low cost, versatility, ease of programming, and small size. Microcontrollers are 
attractiv
ality allo
sary control functions. 
airplanes, toys, and office equipment. All these products involve devices that require 
some sort of intelligent control based on various inputs. For example, the microcon-
troller in a microwave oven monitors the control panel for user input, updates the 
graphical displays when necessary, and controls the timing and cooking functions. 
In an automobile, there are many microcontrollers to control various subsystems, 
including cruise control, antilock braking, ignition control, keyless entry, environ-
mental control, and air and fuel flow. An office copy machine controls actuators to 
feed paper, uses photo sensors to scan a page, sends or receives data via a network 
connection, and provides a user interface complete with menu-driven controls. A toy 
robot dog has various sensors to detect inputs from its environment (e.g., bumping 
into obstacles, being patted on the head, light and dark, voice commands), and an 
onboard microcontroller actuates motors to mimic actual dog behavior (e.g., bark, 
sit, and walk) based on this input. All of these powerful and interesting devices are 
controlled by microcontrollers and the software running on them. 
Figure 7.2  is a block diagram for a typical full-featured microcontroller. Also 
included in the figure are lists of typical external devices that might interface to the 
microcontroller. The components of a microcontroller include the CPU, RAM, ROM, 
digital I/O ports, a serial communication interface, timers, analog-to-digital (A/D) 
converters, and digital-to-analog (D/A) converters. The CPU executes the software 
stored in ROM and controls all the microcontroller components. The RAM is used 
to store settings and values used by an executing program. The ROM is used to 
store the program and any permanent data. A designer can have a program and data 
permanently stored in ROM by the chip manufacturer, or the ROM can be in the 
form of EPROM or EEPROM, which can be reprogrammed by the user. Software 
permanently stored in ROM is referred to as  firmware.  Microcontroller manufactur-
ers offer programming devices that can download compiled machine code from a PC 
directly to the EEPROM of the micro-controller, usually via the PC serial port and 
special-purpose pins on the microcontroller. These pins can usually be used for other 
purposes once the device is programmed. Additional EEPROM may also be avail-
ied 
during execution. The data in EEPROM is nonvolatile, which means the program 
can access the data when the microcontroller power is turned off and back on again. 
I
n
t
e
r
n
e
t
L
i
n
k
7.1Microcon-
troller online 
resources and 
manufacturers
C# Create PDF from images Library to convert Jpeg, png images to
Batch convert PDF documents from multiple image formats, including Jpg image formats into one or multiple PDF file in able to be cropped and pasted to PDF page.
convert pdf file to jpg format; convert pdf to jpg 100 dpi
VB.NET Create PDF from images Library to convert Jpeg, png images
Components to batch convert PDF documents in Visual Basic multiple image formats into one or multiple PDF file. Crop and paste specified image area to PDF page.
change pdf file to jpg online; best pdf to jpg converter
Figure 7.2 Components of a typical full-featured microcontroller. 
CPU
timers
digital I/O
ports
serial
communication
(SPI, I2C, UART, USART)
RAM
(volatile data)
ROM, EPROM, or EEPROM
(nonvolatile software and data)
D/A
A/D
microcontroller
- switches
- on-off sensors
- external A/D or D/A
- digital displays
- on-off actuators
- external EEPROM
- other microcontrollers
- host computer
- analog sensors
- potentiometers
- monitored voltages
- analog actuators
- amplifiers
- analog displays
7.2 Microcontrollers  
263
The digital I/O  ports  allow binary data to be transferred to and from the micro-
controller using external pins on the IC. These pins can be used to read the state 
of switches and on-off sensors, to interface to external A/D and D/A converters, to 
control digital displays, and to control on-off actuators. The I/O ports can also be 
arious 
functions. 
external devices, provided these devices support the same serial communication pro-
tocol. Examples of such devices include external EEPROM memory ICs that might 
store a large block of data for the microcontroller, other microcontrollers that need 
to share data and coordinate control, and a host computer that might download a 
program into the microcontroller’s onboard EEPROM. There are various standards 
ace), 
C (interintegrated circuit), UART (universal asynchronous receiver-transmitter), 
and USART (universal synchronous-asynchronous receiver-transmitter). 
The A/D converter allows the microcontroller to convert an external analog 
voltage (e.g., from a sensor) to a digital value that can be processed or stored by 
the CPU. The D/A converter allows the microcontroller to output an analog voltage 
to a nondigital device (e.g., a motor amplifier). A/D and D/A converters and their 
applications are discussed in Chapter 8. Onboard timers are usually provided to help 
create delays or ensure events occur at precise time intervals (e.g., reading the value 
of a sensor). 
Microcontrollers typically have less than 1 kilobyte to several tens of kilobytes 
of program memory, compared with microcomputers whose RAM memory is mea-
sured in megabytes or gigabytes. Also, microcontroller clock speeds are slower than 
those used for microcomputers. For some applications, a selected microcontroller 
may not have enough speed or memory to satisfy the needs of the application. For-
tunately, microcontroller manufacturers usually provide a wide range of products to 
accommodate different applications. Also, when more memory or I/O capability is 
required, the functionality of the microcontroller can be expanded with additional 
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
able to perform image extraction from multiple page adobe PDF Extract multiple types of image from PDF file in Scan high quality image to PDF, tiff and various
change from pdf to jpg on; changing pdf to jpg
C# PDF Convert to Images SDK: Convert PDF to png, gif images in C#
conversions from PDF document to multiple image forms. can use this sample code to convert PDF file to PDFDocument(inputFilePath); // Get the first page of PDF
change pdf to jpg online; changing file from pdf to jpg
264 
CHAPTER 7 
Microcontroller Programming and Interfacing
external components (e.g., RAM or EEPROM chips, external A/D and D/A convert-
ers, and other microcontrollers). 
In the remainder of this chapter, we focus on the Microchip PIC microcon-
troller due to its popularity, abundant information resources and support products, 
low cost, and ease of use.  PIC  is an acronym for peripheral interface controller, the 
fers a 
large and diverse family of low-cost PIC products. They vary in footprint (physical 
size), the number of I/O pins available, the size of the EEPROM and RAM space for 
storing programs and data, and the availability of A/D and D/A converters. Obvi-
ously
Information for Microchip’s entire line of products can be found on its website at  
www.microchip.com  (see Internet Link 7.2). We focus specifically on the  PIC16F84,  
which is a low-cost 8-bit microcontroller with EEPROM flash memory for program 
and data storage. It has no built-in A/D, D/A, or serial communication capability, 
but it supports 13 digital I/O lines and serves as a good learning platform because it 
is low cost and easy to program. Once you know how to interface and program one 
microcontroller, it is easy to extend that knowledge to other microcontrollers with 
different features and programming options. 
Another good reason to focus on the PIC16F84 is that many other PIC micro-
controllers are upward compatible and pin compatible with the PIC16F84. Examples 
include the PIC16F84A, PIC16F88, and PIC16F819. These three (and other) micro-
controllers can be configured to mimic the PIC16F84, and everything learned on 
the PIC16F84 can be directly applied to these and many other Microchip microcon-
trollers. So what are the differences that distinguish the 84A, 88, and 819 from the 
84? First, all three can be run at faster clock speeds (up to 20 MHz). The 88 and 819 
have internal oscillators (that can provide the clock signal without external com-
ponents), allowing for more I/O lines, and they have more memory and additional 
software-configurable functionality (e.g., onboard comparators and pulse-width-
modulation generators). The 88 and 819 also includes software-configurable A/D 
converters, which allow one to interface the PIC to analog sensors that output a con-
tinuously varying voltage rather than a digital signal. 
■ CLASS DISCUSSION ITEM 7.1 
Car Microcontrollers 
List v 
describe the function of the software.      
7.3 THE PIC16F84 MICROCONTROLLER  
The block diagram for the PIC16F84 microcontroller is shown in  Figure 7.3 . This 
s features 
and capabilities, can be found in the manufacturer’s data sheets. The PIC16F8X 
I
n
t
e
r
n
e
t
L
i
n
k
7.2Microchip, 
Inc.
C# WPF PDF Viewer SDK to convert and export PDF document to other
Image: Copy, Paste, Cut Image in Page. Link: Edit Create multiple pages Tiff file from PDF document. Convert PDF to image file formats with high quality, support
change file from pdf to jpg; convert pdf to jpg for online
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
C#.NET extract image from multiple page adobe PDF file Extract various types of image from PDF file, like Get JPG, JPEG and other high quality image files from
convert pdf file to jpg; change pdf to jpg on
Figure 7.3 PIC16F84 block diagram.  (Courtesy of Microchip Technology, Inc., 
Chandler, AZ)     
Flash/ROM
Program
Memory
PIC16F83/CR83
512 × 14
PIC16F84/CR84
1K × 14
Program Counter
8 Level Stack
(13-bit)
RAM
File Registers
PIC16F83/CR83
36 × 8
PIC16F84/CR84
68 × 8
Addr Mux
Mux
ALU
Instruction reg
FSR reg
EEDATA
EEADR
STATUS reg
W reg
Power-up
Timer
Power-on
Reset
Watchdog
Timer
Oscillator
Start up Timer
Instruction
Decode &
Control
Timing
Generation
EEPROM
Data Memory
64 × 8
OSC2/DLKOUT
OSC1/CLKIN
V
CD
V
SS
MCLR
RA4/T0CK1
RA3:RA0
RB7:RB1
RB0:INT
TMR0
I/O Ports
EEPROM Data Memory
Data Bus
Program
Bus
Direct Addr
RAM Addr
Indirect
Addr
13
8
8
14
5
8
7
7
7.3 The PIC16F84 Microcontroller 
265
data sheets are contained in a book available from Microchip and as a PDF file 
on its website (see Internet Link 7.3). The PIC16F84 is an 8-bit CMOS microcon-
troller with 1792 bytes of flash EEPROM program memory, 68 bytes of RAM data 
memory, and 64 bytes of nonvolatile EEPROM data memory. The 1792 bytes of 
program memory are subdivided into 14-bit words, because machine code instruc-
tions are 14 bits wide. Therefore, the EEPROM can hold up to 1024 (1 k) instruc-
tions. The PIC16F84 can be driven at a clock speed up to 10 MHz but is typically 
driven at 4 MHz. 
When a program is compiled and downloaded to a PIC, it is stored as a set 
of binary machine code instructions in the flash program memory. These instruc-
tions are sequentially fetched from memory, placed in the instruction register, and 
executed. Each instruction corresponds to a low-level function implemented with 
logic circuits on the chip. For example, one instruction might load a number stored 
in RAM or EEPROM into the  working register,  which is also called the  W register  
or  accumulator;  the next instruction might command the ALU to add a differ-
ent number to the value in this register; and the next instruction might return this 
summed value to memory. Because an instruction is executed every four clock 
cycles, the PIC16F84 can do calculations, read input values, store and retrieve infor-
mation from memory, and perform other functions very quickly. With a clock speed 
I
n
t
e
r
n
e
t
L
i
n
k
7.3Microchip 
PIC16F84 data 
sheet
C# Create PDF Library SDK to convert PDF from other file formats
Gratis control for creating PDF from multiple image formats such as tiff, jpg, png, gif, bmp Create and save editable PDF with a blank page, bookmarks, links
.pdf to jpg; convert pdf picture to jpg
VB.NET PDF Convert to Images SDK: Convert PDF to png, gif images
Convert PDF documents to multiple image formats, including Jpg VB.NET programming sample code to convert PDF file to inputFilePath) ' Get the first page of PDF
bulk pdf to jpg converter; change pdf to jpg file
Figure 7.4 PIC16F84 pin-out and required external components. 
PIC16F84
RA2
RA3
RA4
MCLR
V
ss
RB0
RB1
RB2
RB3
RA1
RA0
OSC1
OSC2
V
dd
RB7
RB6
RB5
RB4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
5 V
22 pF
22 pF
4 MHz
1 k
5 V
0.1 μF
266 
CHAPTER 7 
Microcontroller Programming and Interfacing
of 4 MHz, an instruction is executed every microsecond and 1 million instructions 
can be executed every second. The microcontroller is referred to as 8-bit, because 
the data bus is 8 bits wide, and all data processing and storage and retrieval occur 
using bytes. 
A useful special purpose timer, called a  watch-dog timer,  is included on PIC 
microcontrollers. This is a count-down timer that, when activated, needs to be con-
tinually reset by the running program. If the program fails to reset the watch-dog 
timer before it counts down to 0, the PIC will automatically reset itself. In a critical 
application, you might use this feature to have the microcontroller reset if the soft-
ware gets caught in an unintentional endless loop. 
The RAM, in addition to providing space for storing data, maintains a set of 
special purpose byte-wide locations called  file registers.  The bits in these registers 
. Several 
of these registers are described below. 
The PIC16F84 is packaged on an 18-pin DIP IC that has the pin schematic 
(pinout) shown in  Figure 7.4 . The figure also shows the minimum set of external 
components recommended for the PIC to function properly.  Figure 7.5  shows what 
the schematic shown in  Figure 7.4  looks like when assembled on a breadboard with 
actual components.  Table 7.1  lists the pin identifiers in natural groupings, along with 
their descriptions. The five pins RA0 through RA4 are digital I/O pins collectively 
referred to as  PORTA,  and the eight pins RB0 through RB7 are digital I/O pins col-
lectively referred to as  PORTB.  In total, there are 13 I/O lines, called  bidirectional  
lines because each can be individually configured in software as an input or output. 
PORTA and PORTB are special purpose file registers on the PIC that provide the 
interface to the I/O pins. Although all PIC registers contain 8 bits, only the 5 least 
significant bits (LSBs) of PORTA are used. 
Figure 7.5 Required PIC16F84 components on a breadboard. 
7.3 The PIC16F84 Microcontroller 
267
An important feature of the PIC, available with most microcontrollers, is its 
ability to process interrupts. An  interrupt  occurs when a specially designated input 
changes state. When this happens, normal program execution is suspended while 
a special interrupt handling portion of the program is executed. This is discussed 
further in  Section 7.6 . On the PIC16F84, pins RB0 and RB4 through RB7 can be 
configured as interrupt inputs. 
Power and ground are connected to the PIC through pins  V
dd 
and  V
ss 
. The  dd  
and  ss 
since a PIC is a CMOS device. The voltage levels (e.g.,  V
dd 
 5 V and  V  
ss 
 0 V) 
can be provided using a DC power supply or batteries (e.g., four AA batteries in 
series or a 9 V battery connected through a voltage regulator). The master clear pin 
(MCLR) is active low and provides a reset feature. Grounding this pin causes the 
PIC to reset and restart the program stored in EEPROM. This pin must be held high 
during normal program execution. This is accomplished with the pull-up resistor 
shown in  Figure 7.4 . If this pin were left unconnected (floating), the chip might reset 
Table 7.1 PIC16F84 pin name descriptions
Pin identifier
Description
RA[0–4]
5 bits of bidirectional I/O (PORTA)
RB[0–7]
8 bits of bidirectional I/O (PORTB)
V
ss
, V
dd
Power supply ground reference 
(ss: source) and positive supply 
(dd: drain)
OSC1, OSC2
Oscillator crystal inputs
MCLR
Master clear (active low)
Figure 7.6 Reset switch circuit. 
4
5 V
1 k
reset
switch
(NO)
MCLR
268 
CHAPTER 7 
Microcontroller Programming and Interfacing
itself sporadically. To provide a manual reset feature to a PIC design, you can add a 
normally open (NO) pushbutton switch as shown in  Figure 7.6 . Closing the switch 
grounds the pin and causes the PIC to reset     .
The PIC  clock  frequency can be controlled using different methods, including 
an external RC circuit, an external clock source, or a clock crystal. In  Figure 7.4 , we 
show the use of a clock crystal to provide an accurate and stable clock frequency at 
relatively low cost. The clock frequency is set by connecting a 4-MHz crystal across 
the OSC1 and OSC2 pins with the 22 pF capacitors grounded as shown in  Figure 7.4 .   
7.4 PROGRAMMING A PIC 
To use a microcontroller in mechatronic system design, software must be written, 
tested, and stored in the ROM of the microcontroller. Usually, the software is written 
and compiled using a personal computer (PC) and then downloaded to the microcon-
troller ROM as machine code. If the program is written in assembly language, the 
PC must have software called a  cross-assembler  that generates machine code for 
the microcontroller. An assembler is software that generates machine code for the 
different microprocessor, in this case the microcontroller. 
Various software development tools can assist in testing and debugging assem-
bly language programs written for a microcontroller. One such tool is a  simulator,  
which is software that runs on a PC and allows the microcontroller code to be simu-
lated (run) on the PC. Most programming errors can be identified and corrected dur-
ing simulation. Another tool is an  emulator,  which is hardware that connects a PC 
attached to the mechatronic system hardware (containing sensors, actuators, and 
control circuits). The emulator allows the PC to monitor and control the operation of 
the microcontroller while it is embedded in the mechatronic system. 
The assembly language used to program a PIC16F84 consists of 35 com-
mands that control all functions of the PIC. This set of commands is called the 
instruction set  for the microcontroller. Every microcontroller brand and family 
has its own specific instruction set that provides access to the resources available 
on the chip. The complete instruction set and brief command descriptions for the 
Table 7.2 PIC16F84 instruction set 
Mnemonic and operands
Description
ADDLW k
Add literal and W
ADDWF f, d
Add W and f
ANDLW k
AND literal with W
ANDWF f, d
AND W with f
BCF f, b
Bit clear f
BSF f, b
Bit set f
BTFSC f, b
Bit test f, skip if clear
BTFSS f, b
Bit test f, skip if set
CALL k
Call subroutine
CLRF f
Clear f
CLRW
Clear W
CLRWDT
Clear watch-dog timer
COMF f, d
Complement f
DECF f, d
Decrement f
DECFSZ f, d
Decrement f, skip if 0
GOTO k
Go to address
INCF f, d
Increment f
INCFSZ f, d
Increment f, skip if 0
IORLW k
Inclusive OR literal with W
IORWF f, d
Inclusive OR W with f
MOVF f, d
Move f
MOVLW k
Move literal to W
MOVWF f
Move W to f
NOP
No operation
RETFIE
Return from interrupt
RETLW k
Return with literal in W
RETURN
Return from subroutine
RLF f, d
Rotate f left 1 bit
RRF f, d
Rotate f right 1 bit
SLEEP
Go into standby mode
SUBLW k
Subtract W from literal
SUBWF f, d
Subtract W from f
SWAPF f, d
Swap nibbles in f
XORLW k
Exclusive OR literal with W
XORWF f, d
Exclusive OR W with f
7.4 Programming a PIC  
269
PIC16F84 are listed in  Table 7.2 . Each command consists of a name called the 
mnemonic  and, where appropriate, a list of operands. Values must be provided for 
each of these operands. The letters f, d, b, and k correspond, respectively, to a file 
register address (a valid RAM address), result destination (0: W register, 1: file 
re 
255). Note that many of the commands refer to the working register W, also called 
the accumulator. This is a special CPU register used to temporarily store values 
(e.g., from memory) for calculations or comparisons. At first, the mnemonics and 
270 
CHAPTER 7 
Microcontroller Programming and Interfacing
descriptions in the table may seem cryptic, but after you compare functionality with 
the terminology and naming conventions, it becomes much more understandable. 
In  Example 7.1 , we introduce a few of the statements and provide some examples. 
We illustrate how to write a complete assembly language program in  Example 7.2 . 
For more information (e.g., detailed descriptions and examples of each assem-
bly statement), refer to the PIC16F8X data sheet available on Microchip’s website 
(see Internet Link 7.3). 
I
n
t
e
r
n
e
t
L
i
n
k
7.3Microchip 
PIC16F84 
datasheet
Here, we provide more detailed descriptions and examples of a few of the assembly language 
ventions.
BCF f, b  
(read  BCF  as “bit clear f  ”) 
clears bit  b  in fi le register  f  to 0, where the bits are 
numbered from 0 (LSB) to 7 (MSB)   
For example,  BCF PORTB, 1  makes bit 1 in PORTB go low (where PORTB is a constant con-
taining the address of the PORTB file register). If PORTB contained the hexadecimal (hex) 
value FF (binary 11111111) originally, the final value would be hex FC (binary 11111101). 
If PORTB contained the hex value A8 (binary 10101000) originally, the value would remain 
unchanged.
MOVLW k  
(read  MOVLW  as “move literal to W”) 
stores the literal constant  k  in the accumulator (the W register)   
For example,  MOVLW 0xA8  would store the hex value A8 in the W register. In assembly 
language, hexadecimal constants are identified with the  0x  prefix.
RLF f, d  
(read  RLF  as “rotate f left”) 
shifts the bits in fi le register  f  to the left 1 bit, and stores the result in  f  if  d  is 1 
or in the accumulator (the W register) if  d  is 0. The value of the LSB will become 0, 
and the original value of the MSB is lost.   
For example, if the current value in PORTB is hex 1F (binary 00011111), then  RLF PORTB, 
1  would change the value to hex 3E (binary 00111110).
SWAPF f, d  
(read  SWAPF  as “swap nibbles in f  ”) 
exchanges the upper and lower nibbles (a nibble is 4 bits or half a byte) 
of fi le register  f  and stores the result in  f  if  d  is 1 
or in the accumulator (the W register) if  d  is 0   
For example, if the memory location at address hex 10 contains the value hex AB, then 
SWAPF 0x10, 0  would store the value hex BA in the W register.  SWAPF 0x10, 1  would 
change the value at address hex 10 from hex AB to hex BA.  
Assembly Language Instruction Details 
EXAMPLE 7.1 
Documents you may be interested
Documents you may be interested