PIC18F2220/2320/4220/4320
19.0
10-BIT ANALOG-TO-DIGITAL
CONVERTER (A/D) MODULE
The module has five registers:
•
•
•
•
•
A/D Result High Register (ADRESH)
A/D Result Low Register (ADRESL)
A/D Control Register 0 (ADCON0)
A/D Control Register 1 (ADCON1)
A/D Control Register 2 (ADCON2)
The Analog-to-Digital (A/D) converter module has 10
inputs for the PIC18F2X20 devices and 13 for the
PIC18F4X20 devices. This module allows conversion
of an analog input signal to a corresponding 10-bit
digital number.
A new feature for the A/D converter is the addition of
programmable acquisition time. This feature allows the
user to select a new channel for conversion and setting
the GO/DONE bit immediately. When the GO/DONE bit is
set, the selected channel is sampled for the programmed
acquisition time before a conversion is actually started.
This removes the firmware overhead that may have been
required to allow for an acquisition (sampling) period (see
The ADCON0 register, shown in Register 19-1,
controls the operation of the A/D module. The
ADCON1 register, shown in Register 19-2, configures
the functions of the port pins. The ADCON2 register,
shown in Register 19-3, configures the A/D clock
source, programmed acquisition time and justification.
REGISTER 19-1:
ADCON0 REGISTER
U-0
—
bit 7
U-0
—
R/W-0
CHS3
R/W-0
CHS2
R/W-0
CHS1
R/W-0
CHS0
R/W-0
GO/DONE
R/W-0
ADON
bit 0
bit 7-6
bit 5-3
Unimplemented:
Read as ‘0’
CHS3:CHS0:
Analog Channel Select bits
0000
= Channel 0 (AN0)
0001
= Channel 1 (AN1)
0010
= Channel 2 (AN2)
0011
= Channel 3 (AN3)
0100
= Channel 4 (AN4)
0101
= Channel 5 (AN5)
(1,2)
0110
= Channel 6 (AN6)
(1,2)
0111
= Channel 7 (AN7)
(1,2)
1000
= Channel 8 (AN8)
1001
= Channel 9 (AN9)
1010
= Channel 10 (AN10)
1011
= Channel 11 (AN11)
1100
= Channel 12 (AN12)
1101
= Unimplemented
(2)
1110
= Unimplemented
(2)
1111
= Unimplemented
(2)
Note 1:
These channels are not implemented on the PIC18F2X20 (28-pin) devices.
2:
Performing a conversion on unimplemented channels returns full-scale results.
bit 1
GO/DONE:
A/D Conversion Status bit
When ADON = 1:
1
= A/D conversion in progress
0
= A/D Idle
ADON:
A/D On bit
1
= A/D converter module is enabled
0
= A/D converter module is disabled
Legend:
R = Readable bit
- n = Value at POR
W = Writable bit
‘1’ = Bit is set
U = Unimplemented bit, read as ‘0’
‘0’ = Bit is cleared
x = Bit is unknown
bit 0
2003 Microchip Technology Inc.
DS39599C-page 211