14
CONVERSOR A/D INTERNO DEL PIC16F877A Ph.D. Yeison Javier Montagut Ferizzola Electrónica digital y microcontroladores Ingeniería Biomédica EIA-CES

ADC PIC16F877

Embed Size (px)

Citation preview

Page 1: ADC PIC16F877

CONVERSOR A/D INTERNO DEL PIC16F877A

Ph.D. Yeison Javier Montagut Ferizzola

Electrónica digital y microcontroladores Ingeniería Biomédica

EIA-CES

Page 2: ADC PIC16F877

ADC-PIC16F877A

• Especificaciones:

– ADC de aproximaciones sucesivas.

– Resolución = 10 Bits (1024 pasos). » Ejemplo: para una tensión analógica de entrada de 5V

𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 =5𝑉

2𝑛−1=

5𝑉

1024−1= 4.89𝑚𝑉

– Tensión de referencia configurable:

• Absoluto (de 0 𝑎 + 𝑉𝑟𝑒𝑓 ).

• En un margen (−𝑉𝑟𝑒𝑓 𝑎 + 𝑉𝑟𝑒𝑓)

– ADC de 8 canales.

Page 3: ADC PIC16F877

ADC-PIC16F877A • Distribución 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

– Tensión de referencia: • Vref- = RA2

• Vref+ = RA3

Page 4: ADC PIC16F877

ADC-PIC16F877A • Distribución de pines

Page 5: ADC PIC16F877

ADC-PIC16F877A • Registros asociados:

– Puertos:

• TRISA, TRISE, PORTA, PORTE.

– Interrupciones:

• INTCON, PIE1, PIR1.

– Control:

• ADCON0, ADCON1, ADRESH, ADRESL

Page 6: ADC PIC16F877

ADC-PIC16F877A • Registros asociados:

– PIE1

Page 7: ADC PIC16F877

ADC-PIC16F877A • Registros asociados:

– PIR1

Page 8: ADC PIC16F877

ADC-PIC16F877A • Registros asociados:

– ADCON0

Page 9: ADC PIC16F877

ADC-PIC16F877A • Registros asociados:

– ADCON1

Page 10: ADC PIC16F877

ADC-PIC16F877A • Registros asociados:

– ADRESH Y ADRESL

Page 11: ADC PIC16F877

ADC-PIC16F877A – Ejemplo: Usando el microcontrolador PIC16F877A,

diseñe mediante simulación un voltímetro digital; para ello use el canal AN0 del ADC interno del microcontrolador y muestre el valor (conversión y tensión) en una pantalla LCD 16x2. El circuito de simulación se muestra en la siguiente figura:

Page 12: ADC PIC16F877

ADC-PIC16F877A – Simulación (Proteus)

Page 13: ADC PIC16F877

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); } }

Page 14: ADC PIC16F877

BIBLIOGRAFIA

• Eduardo García Breijo. Compilador C CCS y simulación PROTEUS para microcontroladores PIC. Alfaomega. 2008.

• Tutoriales compilador C CCS