![Microchip Technology PIC12F1501 Manual Download Page 132](http://html1.mh-extra.com/html/microchip-technology/pic12f1501/pic12f1501_manual_1785833132.webp)
2011-2015 Microchip Technology Inc.
DS40001609E-page 133
PIC16(L)F1508/9
15.2.6
ADC 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)
• Disable weak pull-ups either globally (Refer
to the OPTION_REG register) or individually
(Refer to the appropriate WPUx 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 15-1:
ADC 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
;oscillator and AN0 input.
;
;Conversion start & polling for completion
; are included.
;
BANKSEL
ADCON1
;
MOVLW
B’11110000’
;Right justify, FRC
;oscillator
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
WPUA
BCF
WPUA,0
;Disable weak
pull-up on RA0
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