Está en la página 1de 14

CONVERSOR A/D INTERNO DEL

PIC16F877A

Ph.D. Yeison Javier Montagut Ferizzola

Electrnica digital y microcontroladores


Ingeniera Biomdica
EIA-CES
ADC-PIC16F877A
Especificaciones:
ADC de aproximaciones sucesivas.
Resolucin = 10 Bits (1024 pasos).
Ejemplo: para una tensin analgica de entrada de 5V
5 5
= = = 4.89
2 1 10241

Tensin de referencia configurable:


Absoluto (de 0 + ).
En un margen ( + )
ADC de 8 canales.
ADC-PIC16F877A
Distribucin de pines
8 canales ADC:
RA0/AN0 = 2
RA1/AN1 = 3
RA2/AN2 = 4
RA3/AN3 = 5
RA5/AN4 = 7
RE0/AN5 = 8
RE1/AN6 = 9
RE2/AN7 = 10
Tensin de referencia:
Vref- = RA2
Vref+ = RA3
ADC-PIC16F877A
Distribucin de pines
ADC-PIC16F877A
Registros asociados:
Puertos:
TRISA, TRISE, PORTA, PORTE.
Interrupciones:
INTCON, PIE1, PIR1.
Control:
ADCON0, ADCON1, ADRESH, ADRESL
ADC-PIC16F877A
Registros asociados:
PIE1
ADC-PIC16F877A
Registros asociados:
PIR1
ADC-PIC16F877A
Registros asociados:
ADCON0
ADC-PIC16F877A
Registros asociados:
ADCON1
ADC-PIC16F877A
Registros asociados:
ADRESH Y ADRESL
ADC-PIC16F877A
Ejemplo: Usando el microcontrolador PIC16F877A,
disee mediante simulacin un voltmetro digital;
para ello use el canal AN0 del ADC interno del
microcontrolador y muestre el valor (conversin y
tensin) en una pantalla LCD 16x2. El circuito de
simulacin se muestra en la siguiente figura:
ADC-PIC16F877A
Simulacin (Proteus)
ADC-PIC16F877A
Programa: (firmware PIC C) for (;;) {
#include <16F877A.h> set_adc_channel(0);
#device ADC=10 delay_us(20);
#FUSES XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#include <lcd.c> q = read_adc();
#define use_portb_lcd TRUE z = 5 * q;
p = z/1024.0;
void main(){
int16 q; printf(lcd_putc, "\fADC = %4ld", q);
int16 z; printf(lcd_putc, "\nVoltajeE =
float p; %01.2fV", p);
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
delay_ms(100);
lcd_init();
}
}
BIBLIOGRAFIA
Eduardo Garca Breijo. Compilador C CCS y
simulacin PROTEUS para microcontroladores
PIC. Alfaomega. 2008.

Tutoriales compilador C CCS