Microchip Technology DM164130-2 Data Sheet

Page of 478
 2010-2012 Microchip Technology Inc.
DS41414D-page 167
PIC16(L)F1946/47
16.3.2
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 16-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.
2:
Refer to 
;This code block configures the ADC
;for polling, Vdd and Vss references, Frc 
;clock and AN0 input.
;
;Conversion start & polling for completion 
; are included.
;
BANKSEL
ADCON1
;
MOVLW
B’11110000’ ;Right justify, Frc
;clock
MOVWF
ADCON1
;Vdd and Vss Vref
BANKSEL
TRISA
;
BSF
TRISA,0
;Set RA0 to input
BANKSEL
ANSEL
;
BSF
ANSEL,0
;Set RA0 to analog
BANKSEL
ADCON0
;
MOVLW
B’00000001’ ;Select channel AN0
MOVWF
ADCON0
;Turn ADC On
CALL
SampleTime
;Acquisiton delay
BSF
ADCON0,ADGO ;Start conversion
BTFSC
ADCON0,ADGO ;Is conversion done?
GOTO
$-1
;No, test again
BANKSEL
ADRESH
;
MOVF
ADRESH,W
;Read upper 2 bits
MOVWF
RESULTHI
;store in GPR space
BANKSEL
ADRESL
;
MOVF
ADRESL,W
;Read lower 8 bits
MOVWF
RESULTLO
;Store in GPR space