Microchip Technology AC164112 Data Sheet

Page of 302
© 2009 Microchip Technology Inc.
DS41341E-page 103
PIC16F72X/PIC16LF72X
9.2.6
A/D CONVERSION PROCEDURE
This is an example procedure for using the ADC to
perform an Analog-to-Digital conversion:
1.
Configure Port:
• Disable pin output driver (Refer to the TRIS 
register)
• Configure pin as analog (Refer to the ANSEL 
register)
2.
Configure the ADC module:
• Select ADC conversion clock
• Configure voltage reference
• Select ADC input channel
• Turn on ADC module
3.
Configure ADC interrupt (optional):
• Clear ADC interrupt flag 
• Enable ADC interrupt
• Enable peripheral interrupt
• Enable global interrupt
(1)
4.
Wait the required acquisition time
(2)
.
5.
Start conversion by setting the GO/DONE bit.
6.
Wait for ADC conversion to complete by one of
the following:
• Polling the GO/DONE bit
• Waiting for the ADC interrupt (interrupts 
enabled)
7.
Read ADC Result.
8.
Clear the ADC interrupt flag (required if interrupt
is enabled).
EXAMPLE 9-1:
A/D CONVERSION
Note 1: The global interrupt can be disabled if the
user is attempting to wake-up from Sleep
and resume in-line code execution.
;This code block configures the ADC
;for polling, Vdd reference, Frc clock
;and AN0 input.
;
;Conversion start & polling for completion 
; are included.
;
BANKSEL
ADCON1
;
MOVLW
B’01110000’ ;ADC Frc clock,
;V
DD
 reference
MOVWF
ADCON1
;
BANKSEL
TRISA
;
BSF
TRISA,0
;Set RA0 to input
BANKSEL
ANSELA
;
BSF
ANSELA,0
;Set RA0 to analog
BANKSEL
ADCON0
;
MOVLW
B’00000001’;AN0, On
MOVWF
ADCON0
;
CALL
SampleTime ;Acquisiton delay
BSF
ADCON0,GO
;Start conversion
BTFSC
ADCON0,GO
;Is conversion done?
GOTO
$-1
;No, test again
BANKSEL
ADRES
;
MOVF
ADRES,W
;Read result
MOVWF
RESULT
;store in GPR space