Você está na página 1de 10

UNIVERSIDAD DE CARABOBO

FACULTAD DE INGENIERA
ESCUELA DE INGENIERA ELCTRICA
DEPARTAMENTO DE SISTEMAS Y AUTOMTICA
LABORATORIO DE MICROPROCESADORES

PRCTICA 5. Semestre 22015


ADQUISICIN DE DATOS MEDIANTE EL MODULO ADC
Duracin: 1 semanas
Objetivo General:
Desarrollar una aplicacin basada en la adquisicin de datos mediante el convertidor Analgico Digital interno de
un microcontrolador.
Objetivos Especficos:

Comprobar la validez de la funcin de transferencia de los ADC.


Utilizar un lenguaje de alto nivel para codificar programas de microcontroladores PIC.
Utilizar una Pantalla LCD como herramienta de visualizacin.
Conocer como calcular la funcin de transferencia de un sensor para conectarlo a un microcontrolador.

PRELABORATORIO:
1. Estudie al material terico de apoyo suministrado en esta prctica.
2. Responda las siguientes preguntas:
a) Cual convertidor ADC es de mejor calidad uno de 8 bits o uno de 10 bits? (use solo la cantidad de bits para basar
su respuesta).
b) Bajo que circunstancias debiramos configurar el convertidor ADC justificando el resultado a la derecha o
justificando el resultado a la izquierda?.
c) Bajo que circunstancias debiramos configurar el convertidor ADC para usar un voltaje de referencia externo?.
d) Cuales valores TAD son adecuados para un el PIC 16F887 empleando un cristal de 20MHz?.
3. Cul es la funcin de transferencia (Volt vs Temp) de un sensor de temperatura LM35?.
4. Al conectar un sensor LM35 al convertidor del PIC16F887, Quin tiene mejor resolucin el PIC o el sensor?
5. Utilice la funcin de transferencia general de los convertidores A/D para determinar el valor digital (10 bits)
de las siguientes tensiones: 0.625V, 1.21V, 2.75V, 3.65V, 3.85V y 4.92V; considerando una tensin de referencia
(Vref) de 5V.
6. Utilice la funcin de transferencia general de los convertidores A/D para determinar el valor digital (8 bits)
de las siguientes tensiones: 0.625V, 1.21V, 2.75V, 3.65V, 3.85V y 4.92V; considerando una tensin de referencia
(Vref) de 5V.
7. Utilice la funcin de transferencia general de los convertidores A/D para determinar el valor digital (10 bits)
de las siguientes tensiones: 0.625V, 1.21V, 2.75V, 3.65V, 3.85V y 4.92V; considerando una tensin de referencia
(Vref) de 4V.
8. Con los valores N calculados (ajustados como los suministrara el convertidor ADC, es decir como enteros) invierta el
proceso y calcule el valor de Vin,
9. Compare los valores del punto 8 con los originales, analice el comportamiento del ADC con los ajustes realizados en
los puntos 5,6,7.
10. Visitar la pgina Web https://www.crystalfontz.com/ y observar las distintas pantallas que provee este fabricante,
tanto alfanumricas como graficas.
11. Estudie la librera ADC del MikroC, a travs de la ayuda desplegable desde el men Help o utilice F1. Cuales
parmetros del conversor ADC pueden ser definidos con esta instruccin. Cmo se ingresan?.
12. Analice el listado del archivo P5_2015_2.H suministrado para esta prctica. El listado se adjunta al final de
este documento.
LABORATORIO:
1.

Compruebe el funcionamiento del sistema suministrado (incluyendo su archivo fuente ADC1.HEX) y anote la
configuracin de los registros ADCON0, ADCON1, ANSEL, ANSELH, TRISA, TRISB para obtener este comportamiento.

BIT
ADCON0

ADCS1

ADCS0

CHS3

CHS2

CHS1

CHS0

GO/
DONE

ADON

UNIVERSIDAD DE CARABOBO
FACULTAD DE INGENIERA
ESCUELA DE INGENIERA ELCTRICA
DEPARTAMENTO DE SISTEMAS Y AUTOMTICA
LABORATORIO DE MICROPROCESADORES

BIT
ADCON1

ADFM

BCFG1

BCFG0

BIT
ANSEL

ANS7

ANS6

ANS5

ANS4

ANS3

ANS2

ANS1

ANS0

BIT

ANS13

ANS12

ANS11

ANS10

ANS9

ANS8

BIT
TRISA

B7

B6

B5

B4

B3

B2

B1

B0

BIT
TRISB

B7

B6

B5

B4

B3

B2

B1

B0

BIT
TRISC

B7

B6

B5

B4

B3

B2

B1

B0

BIT
TRISD

B7

B6

B5

B4

B3

B2

B1

B0

BIT
TRISE

B7

B6

B5

B4

B3

B2

B1

B0

ANSELH

2.

Compruebe el funcionamiento del sistema suministrado (incluyendo su archivo fuente ADC2.HEX) y anote la
configuracin de los registros ADCON0, ADCON1, ANSEL, ANSELH, TRISA, TRISB, para obtener este comportamiento.
BIT

ADCS1

ADCS0

CHS3

CHS2

CHS1

CHS0

GO/
DONE

ADON

BIT
ADCON1

ADFM

BCFG1

BCFG0

BIT
ANSEL

ANS7

ANS6

ANS5

ANS4

ANS3

ANS2

ANS1

ANS0

BIT

ANS13

ANS12

ANS11

ANS10

ANS9

ANS8

BIT
TRISA

B7

B6

B5

B4

B3

B2

B1

B0

BIT
TRISB

B7

B6

B5

B4

B3

B2

B1

B0

BIT
TRISC

B7

B6

B5

B4

B3

B2

B1

B0

BIT
TRISD

B7

B6

B5

B4

B3

B2

B1

B0

BIT
TRISE

B7

B6

B5

B4

B3

B2

B1

B0

ADCON0

ANSELH

UNIVERSIDAD DE CARABOBO
FACULTAD DE INGENIERA
ESCUELA DE INGENIERA ELCTRICA
DEPARTAMENTO DE SISTEMAS Y AUTOMTICA
LABORATORIO DE MICROPROCESADORES
3.

Copie el archivo P5_2015_2 en la ventana de edicin de MikroC. Compile y utilice el archivo generado en una
simulacin con Proteus. ANALICE.
4. Visualice en la ventana de edicin de MikroC el cdigo del archivo P5_2015_2, en la seccin del listado
correspondiente a la Etiqueta o Identificador FTLM35, reemplace el valor 1 por el de la f uncin de
tra nsfere ncia de l lm35 cal culado en el prelaborato rio.
5. Cambie los comentarios mostrados con la instruccion Lcd_out para indicar que el valor ahora mostrado corresponde
a una temperatura.
6. Modifique el programa para que el valor de N sea adquirido mediante el ADC del micro.
7. Compile y utilice el archivo generado en una simulacin con Proteus en el archivo TERMOMETRO.DSN del aula
virtual, Analice.
8. Que cambios tendra que hacer en el programa P5_2015_2 para que el valor de Td sea adquirido desde un
puerto del micro?
9. Compile el Programa anterior, simlelo en Proteus. Prubelo en el sistema de desarrollo PT40, para ello buscar el
archivo .HEX dentro de la carpeta en donde se compilo el programa y transferirlo al PT40 por el procedimiento ya
conocido.

UNIVERSIDAD DE CARABOBO
FACULTAD DE INGENIERA
ESCUELA DE INGENIERA ELCTRICA
DEPARTAMENTO DE SISTEMAS Y AUTOMTICA
LABORATORIO DE MICROPROCESADORES
APOYO TERICO
Un Convertidor Analgico Digital (AnalogtoDigital Converter ADC), permite la conversin de una seal analgica, a una
seal binaria que es una representacin de esa seal. En el caso del PIC 16F887 este posee un convertidor el cual genera
un numero binario de 10 Bits mediante aproximaciones sucesivas y el resultado es almacenado en los registros (ADRESL
and ADRESH). Este PIC posee catorce (14) canales de entrada analgicos lo que lo diferencia del PIC 16F877 que solo
posea ocho (8). Estos canales son multiplexados antes de ingresar en el circuito de sample and hold. El voltaje de
referencia puede ser configurado entre ser generado internamente o ser suministrado externamente. El ADC puede
generar una interrupcin una vez que la conversin ha concluido.

DIAGRAMA DE BLOQUE DEL CONVERTIDOR A/D


Configuracin:
Para poner en funcionamiento el ADC se debe tener en cuenta los siguientes aspectos:

Configuracin de los puertos

Seleccin del canal

Seleccin de la referencia de voltaje del ADC

Seleccin del reloj del ADC

Configuracin de la interrupcin

Formateo del resultado.


Configuracin de los puertos: Algunos de los pines del PIC pueden manejar seales analgicas y digitales, cuando se va a
convertir una seal analgica el pin debe configurarse adecuadamente tanto en el registro TRIS como en el registro ANSEL
correspondiente. NOTA: Aplicar un voltaje analgico a un pin que ha sido configurado como digital puede producir dao
en el pin.
Seleccin del canal: los bits CHS (CHannel Selection) del registro ADCON0 determina cual canal se conectara al circuito de
Sample and Hold. Cada vez que se cambia de canal debe esperarse cierto tiempo antes de iniciar la conversin.
Seleccin de la referencia de voltaje del ADC: Los bits VCFG del registro ADCON1 proveen un control independiente de las
referencias de voltaje. La referencia positiva puede ser seleccionada entre una referencia externa en el Pin Vref+ o VDD, y
la referencia negativa puede ser seleccionada entre VSS o una referencia externa en el Pin Vref.
Seleccin del reloj del ADC: La fuente del reloj para la conversin puede ser seleccionada empleando los bits ADCS entre
cuatro posibles opciones:
a) FOSC/2
b) FOSC/8
4
c) FOSC/32
d) FRC (oscilador interno)

UNIVERSIDAD DE CARABOBO
FACULTAD DE INGENIERA
ESCUELA DE INGENIERA ELCTRICA
DEPARTAMENTO DE SISTEMAS Y AUTOMTICA
LABORATORIO DE MICROPROCESADORES

El tiempo necesario para completar la conversin de un Bit se define como TAD, una conversin completa de diez (10) bits
requiere once (11) periodos TAD. El fabricante establece que se debe definir como TAD un tiempo mnimo de 1.6 S.
Configuracin de la interrupcin: El modulo ADC tiene la habilidad de producir una interrupcin una vez que ha concluido
una conversin, la bandera de interrupcin (ADIF) es un bit ubicado en el registro PIR1 y debe ser limpiado dentro del
software, el habilitador (ADIE) es un bit ubicado en el registro PIE1.
Formateo del resultado: Los diez (10) bits del resultado de la conversin pueden ser suministrados en dos formatos
Justificado a la Izquierda o Justificado a la Derecha, esto se realiza mediante el bits ADFM.

DESCRIPCIN DE REGISTROS ASOCIADOS AL ADC: En la configuracin del modulo ADC intervienen los siguientes
registros:
ANSEL y ANSELH: (ANALOG SELECT), los registros ANSEL ubicados en el banco tres (3) de la memoria, posiciones 188h y
189h, son usados para definir el modo de entrada de un pin de I/O. Colocando el bit correspondiente en uno hace que el
pin sea ledo como cero 0 y permite su adecuada operacin como entrada analgica.

bits 70 ANS<7:0> Analog Select bits

bits 76 No implementado
bits 50 ANS<13:8> Analog Select bits

0= Entrada Digital

0= Entrada Digital

1= Entrada Analgica

1= Entrada Analgica

ADCON: (A/D CONTROL) ADCON0: El registro ADCON0 est ubicado en el banco cero (0) en la posicin de memoria 1Fh.

bits 76 ADCS<1:0> AD CLOCK SELECT 00: FOSC/2, 01: FOSC/8, 10: FOSC/32, 11: FRC
bits 52 CHS<3:0> CHANEL SELECT
0000: AN0, 0001: AN1, 0010: AN2, 0011: AN3, 0100: AN4, 0101: AN5, 0110: AN6,
0111: AN7, 1000: AN8, 1001: AN9, 1010: AN10, 1011: AN11, 1100: AN12,
1101: AN13, 1110: CVREF, 1111: Referencia fija 0.6v.
bit 1
GO/DONE ESTATUS DE LA CONVERSION
1: La conversin est en curso, colocar en uno 1 para iniciar la
Conversin, 0: Conversin completa, conversin detenida.
bit 0
ADON
ADC ENABLE BIT
1: ADC HABILITADO 0: ADC APAGADO (no consume corriente)

UNIVERSIDAD DE CARABOBO
FACULTAD DE INGENIERA
ESCUELA DE INGENIERA ELCTRICA
DEPARTAMENTO DE SISTEMAS Y AUTOMTICA
LABORATORIO DE MICROPROCESADORES
ADCON1: El registro ADCON1 est ubicado en el banco uno 1 en la posicin de memoria 9Fh.

bit 7 ADFM A/D CONVERSION RESULT FORMAT SELECT 0: justificado a la izquierda 1: justificado a la derecha
bit 5 VCFG1 VOLTAGE REFERENCE BIT
0: Vss, 1: Vref+
bit 4 VCFG0 VOLTAGE REFERENCE BIT
0: VDD, 1: Vref

PANTALLA DE CRISTAL LIQUIDO


Una pantalla de cristal lquido o LCD (sigla del ingls liquid crystal display) es una pantalla delgada y plana formada
por un nmero de pxeles en color o monocromos colocados delante de una fuente de luz o reflectora. A menudo se
utiliza en dispositivos electrnicos de pilas, ya que utiliza cantidades muy pequeas de energa elctrica.
(https://es.wikipedia.org/wiki/Pantalla_de_cristal_l%C3%ADquido). La pantallas de cristal liquido poseen caractersticas
que las hacen muy verstiles, lo que ha hecho que sean incluida en prcticamente cualquier dispositivo que requiera
comunicacin Maquina Hombre.
Existen dos tipos: las pantallas alfanumricas y las pantallas graficas, las pantallas alfanumricas pueden mostrar
caracteres y simbolos en un formato de filas y columnas que esta previamente establecido en su construccin, por ello se
suele hablar de pantallas 16x2 o 16x4 o 20x2, etc en donde el primer nmero representa la cantidad de columnas que la
pantalla posee y el segundo numero representa la cantidad de filas.

Pantallas LCD alfanumricas de distintas especificaciones


Las pantallas graficas como su nombre lo indica adems de mostrar caracteres y smbolos se pueden mostrar grficos.
Generalmente se especifican por su resolucin (Las dimensiones horizontal y vertical son expresadas en pxeles.) por
ejemplo 128 x 64. Las pantallas de los Smart Phones son pantallas LCD graficas.

Pantallas LCD graficas de distintas especificaciones


La necesidad de proveer mas informacin usando menos espacio ha hecho que se aumente tanto la cantidad de
caracteres como la resolucin, lo cual ha trado como consecuencia que sea prcticamente imposible manejar una
pantalla de LCD por un microprocesador convencional. Los fabricantes han solventando ente inconveniente mediante el
empleo de micros especialmente diseados para manejar pantallas LCD. En nuestros diseos cuando queremos incluir
una pantalla LCD debemos comunicar nuestro micro con el de la pantalla, proceso explicado en el datasheet de las
pantallas y a veces el fabricante provee libreras de software que facilitan su uso en nuestros diseos.

SENSOR LM35
Consultar el Datasheet del fabricante en el aula virtual o en la pgina del fabricante: www.ti.com/lit/ds/symlink/lm35.pdf

UNIVERSIDAD DE CARABOBO
FACULTAD DE INGENIERA
ESCUELA DE INGENIERA ELCTRICA
DEPARTAMENTO DE SISTEMAS Y AUTOMTICA
LABORATORIO DE MICROPROCESADORES
Bibliografa

Apuntes de Clase.
Roso Control, C.A. MANUAL DEL PT40.
Microchip Technology Inc. (Revisin Diciembre 2012). PIC16F88X Data Sheet. www.microhip.com [En lnea] ltimo
acceso: 20072015
Texas Instruments (Revisin Enero 2015). LM35 Data Sheet http://www.ti.com [En lnea] ltimo acceso: 20072015

UNIVERSIDAD DE CARABOBO
FACULTAD DE INGENIERA
ESCUELA DE INGENIERA ELCTRICA
DEPARTAMENTO DE SISTEMAS Y AUTOMTICA
LABORATORIO DE MICROPROCESADORES

P5_2015_2
// Universidad de Carabobo
// Facultad de Ingeniera
// Escuela de Ing. Elctrica
// Laboratorio de Microprocesadores
// Prctica 5
//
#include "built_in.h"
// Asignacion de Pines de la Lcd
sbit LCD_RS at RB1_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D7 at RB7_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D4 at RB4_bit;
// Pin direction
sbit LCD_RS_Direction at TRISB1_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D7_Direction at TRISB7_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB4_bit;
char txt1[] = "UNIVERSIDAD";
char txt2[] = "DE CARABOBO";
char txt3[] = "ING. ELECTRICA";
char txt4[] = "LABORATORIO DE";
char txt5[] = "MICROPROCESADORES";
char txt6[] = "*** Voltimetro UC ***";
char txt7[] = "Vin=";
char txt8[] = "Vd=";
char txt[15];
//
void main() {
float FTML35,ValorF,ValorT,Td;
unsigned int N;
int Num;
bit D1,D2;
ANSEL=0;
ANSELH=0;

// Configure AN pins as digital I/O

TRISC=0;
TRISE.B0=1;
TRISB.B2=0;
PORTB.B2=0;

CAB 2015_1

UNIVERSIDAD DE CARABOBO
FACULTAD DE INGENIERA
ESCUELA DE INGENIERA ELCTRICA
DEPARTAMENTO DE SISTEMAS Y AUTOMTICA
LABORATORIO DE MICROPROCESADORES
ValorF=0.0;
FTML35=1.0;
N=0.0;

Td=40.111 ;
PORTC=0 ;
Lcd_Init();
Delay_ms(500);

// Valor de la funcin de transferencia del LM35

//

Lcd_Cmd(_LCD_CLEAR);
// Clear display
Lcd_Cmd(_LCD_CURSOR_OFF);
// Cursor off
Lcd_Out(1,4,txt1);
// Write text in first row
Lcd_Out(2,4,txt2);
// Write text in second row
Delay_ms(2000);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,2,txt3);
Delay_ms(2000);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,2,txt4);
Lcd_Out(2,2,txt5);
Delay_ms(2000);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,1,txt6);
Lcd_Out(2,1,txt7);
Lcd_Out(2,13,txt8);

// Clear display
//

//
//

//
// "*** Voltimetro UC ***"
// "Vin="
// "Vd="

FloatToStr((((int)(100*Td))/100.0),txt); // Td como Str con 2 dec


Lcd_Out(2,17,txt);
// Td
Delay_ms(2000);
Otro:
N=106;
//Escriba un valor menor o igual a 1023
ValorF=N*(5.0/1024.0);
ValorT= ValorF*FTML35;
Valor:
// FloatToStr(ValorT,txt);
//ValorT como Str con 2 dec
// ValorT=100.0*ValorT;
// Num=(int)ValorT;
// ValorT=Num/100.0;
FloatToStr((((int)(100 * ValorT)) / 100.0),txt);
Lcd_Out(2,6,txt);
// ValorT
Delay_ms(100);
if (ValorT<Td) {
D1=1;
D2=0;
}
if (ValorT>=Td) {
D1=0;
D2=1;
}
CAB
2015_1 ;
PORTC.B4=D1
PORTC.B5=D2 ;
Delay_ms(1000);

UNIVERSIDAD DE CARABOBO
FACULTAD DE INGENIERA
ESCUELA DE INGENIERA ELCTRICA
DEPARTAMENTO DE SISTEMAS Y AUTOMTICA
LABORATORIO DE MICROPROCESADORES
goto Otro ;
}

CAB 2015_1

1
0