
2001 Microchip Technology Inc.
Advance Information
DS39582A-page 125
PIC16F87XA
11.0
ANALOG-TO-DIGITAL
CONVERTER (A/D) MODULE
The Analog-to-Digital (A/D) Converter module has five
inputs for the 28-pin devices and eight for the 40/44-pin
devices.
The conversion of an analog input signal results in a
corresponding 10-bit digital number. The A/D module
has high and low voltage reference input, that is soft-
ware selectable to some combination of V
DD
, V
SS
,
RA2, or RA3.
The A/D converter has a unique feature of being able
to operate while the device is in SLEEP mode. To oper-
ate in SLEEP, the A/D clock must be derived from the
A/D’s internal RC oscillator.
The A/D module has four registers. These registers are:
A/D Result High Register (ADRESH)
A/D Result Low Register (ADRESL)
A/D Control Register0 (ADCON0)
A/D Control Register1 (ADCON1)
The ADCON0 register, shown in Register 11-1, con-
trols the operation of the A/D module. The ADCON1
register, shown in Register 11-2, configures the func-
tions of the port pins. The port pins can be configured
as analog inputs (RA3 can also be the voltage refer-
ence), or as digital I/O.
Additional information on using the A/D module can be
found in the PICmicro Mid-Range MCU Family Ref-
erence Manual (DS33023).
REGISTER 11-1:
ADCON0 REGISTER (ADDRESS 1Fh)
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
U-0
—
R/W-0
ADCS1
ADCS0
CHS2
CHS1
CHS0
GO/DONE
ADON
bit 7
bit 0
bit 7-6
ADCS1:ADCS0:
A/D Conversion Clock Select bits (ADCON0 bits in
bold
)
bit 5-3
CHS2:CHS0:
Analog Channel Select bits
000
= Channel 0 (AN0)
001
= Channel 1 (AN1)
010
= Channel 2 (AN2)
011
= Channel 3 (AN3)
100
= Channel 4 (AN4)
101
= Channel 5 (AN5)
110
= Channel 6 (AN6)
111
= Channel 7 (AN7)
Note:
The PIC16F873A/876A devices only implement A/D channels 0 through 4; the unimplemented
selections are reserved. Do not select any unimplemented channels with these devices.
bit 2
GO/DONE:
A/D Conversion Status bit
When ADON = 1:
1
= A/D conversion in progress (setting this bit starts the A/D conversion which is automatically
cleared by hardware when the A/D conversion is complete)
0
= A/D conversion not in progress
Unimplemented:
Read as ’0’
ADON:
A/D On bit
1
= A/D converter module is powered up
0
= A/D converter module is shut-off and consumes no operating current
bit 1
bit 0
Legend:
R = Readable bit
- n = Value at POR reset
W = Writable bit
’1’ = Bit is set
U = Unimplemented bit, read as ‘0’
’0’ = Bit is cleared
x = Bit is unknown
ADCON1
<ADCS2>
ADCON0
<ADCS1:ADCS0>
Clock Conversion
0
0
0
0
1
1
1
1
00
01
10
11
00
01
10
11
F
OSC
/2
F
OSC
/8
F
OSC
/32
F
RC
(clock derived from the internal A/D RC oscillator)
F
OSC
/4
F
OSC
/16
F
OSC
/64
F
RC
(clock derived from the internal A/D RC oscillator)