Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LABORATORIO MICROCONTROLADORES
Página 1 de 8
MICROCONTROLADORES
LABORATORIO N° 07
Participantes(s)
Foto:
II.CONTENIDOS A TRATAR
Conversión a 8 bits y 10 bits.
Resolución y ecuación de cálculo de conversión.
III.MATERIALES Y EQUIPO
CCS Compiler instalado.
Entrenador de PICS
PIC16F877A
PC con Software de simulación.
IV.FUNDAMENTO TEÓRICO
Para la realización de este laboratorio se requiere haber realizado y aprobado la EVALUACIÓN
DE LA FASE ASÍNCRONA
La lectura previa de la información proporcionada para el curso, como el texto y el manual del
fabricante.
Revise la bibliografía recomendada en la FASE ASÍNCRONA.
1. Vamos a realizar una lectura de la entrada analógica AN3 en el cual está conectado un
POTENCIÓMETRO el cual nos brinda un voltaje variable entre 0 y 5 voltios. Esto se ve en el
entrenador virtual de PROTEUS:
2. Vamos a mostrar en el LCD la lectura directa del valor leído con 10 bits (de 0 a 1023) y vamos
a convertir dicho valor a un valor flotante entre 0.00 y 5.00, lo cual va a representar el voltaje
que ingresa a dicho pin del uC. En pocas palabras estamos creando un VOLTÍMETRO:
Nro.
LABORATORIO MICROCONTROLADORES
Página 4 de 8
4. El código es similar al anterior, solo que esta vez, antes de hacer la lectura, necesitamos
direccionar a la entrada respectiva, por este motivo parte del código se va al bucle WHILE
(true):
Nro.
LABORATORIO MICROCONTROLADORES
Página 6 de 8
1. Utilizando los programas anteriores como base, programe con PIC un TERMÓMETRO
utilizando el sensor LM35 conectado a la entrada AN0 del PIC y cuyo rango de medición va de
-55ºC a 150ºC, 1ºC equivale a 10mV. El programa debe medir SOLO temperaturas positivas
de 0 a 150ºC y debe mostrarlo en una pantalla LCD.
https://www.youtube.com/watch?v=jI6GHwCVrpY
//Integrantes
//Ccotahuana Huarca Dilman
//Carlos Aragon Aguilar
//Carranza rodriguez joseph
#include <16f877A.h>
#device adc=10
#fuses HS, NOWDT, NOPROTECT
#use delay(clock=20M)
#include <lcd.c>
int16 lectura1;
float lectura2;
char str[]={223};
void main(void) {
lcd_init ();
printf (lcd_putc, "\f TERMOMETRO");
delay_ms(200);
setup_adc_ports (AN0);
setup_adc (ADC_CLOCK_INTERNAL);
set_adc_channel (0);
delay_us (20);
while (true) {
lectura1 = read_adc ();
lectura2 = lectura1*((5.0/1023.0)*100.0);
delay_ms (20);
lcd_gotoxy(1,2);
printf (lcd_putc, "Temp: %3.1f%sC ",lectura2, str);
delay_ms (100);
}
}
OBSERVACIONES:
CONCLUSIONES: