Вы находитесь на странице: 1из 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) #include <16F877A.h> #device ADC=10 #FUSES XT,NOWDT,NOPROTECT,NOLVP #use delay(clock=4000000) #include <lcd.c> #define use_portb_lcd TRUE
void main(){ int16 q; int16 z; float p; setup_adc_ports(AN0); setup_adc(ADC_CLOCK_INTERNAL); lcd_init();

for (;;) { set_adc_channel(0); delay_us(20); q = read_adc(); z = 5 * q; p = z/1024.0; printf(lcd_putc, "\fADC = %4ld", q); printf(lcd_putc, "\nVoltajeE = %01.2fV", p); delay_ms(100); }
}

BIBLIOGRAFIA
Eduardo Garca Breijo. Compilador C CCS y simulacin PROTEUS para microcontroladores PIC. Alfaomega. 2008.
Tutoriales compilador C CCS

Вам также может понравиться