Está en la página 1de 2

Curso de Pic 16F877a

Manejo de puerto ADC y Puertos de Control para LCD.


Proyecto Lectura de Temperatura con 16f877a

Programa: Lectura de Temperatura con LM35 y 16F877a


Compilador CSS PWM
Creado por : Oscar Seplveda V.
Fecha : Septiembre 20 de 2013

#include "16f877.h" //Micro controlador a Usar


#device ADC=10
//Resolucin de Bits a utilizar en el Convertidor Anlogo Device Converter
#use delay (clock=3686400) //Cristal de 4 MHZ
#fuses XT, NOWDT, NOPUT, NOBROWNOUT, NOLVP, NOPROTECT //Configuracin Fusibles del
Micro
#include "lcd.c"
//Librera para manejar el display LCD
#use standard_io (D)
//El display se utilizara en el puerto D
void main()
{
float temper,medicion;
//Declaracin de las 2 variables;
lcd_init ();
//Inicia LCD
lcd_putc("Control de Temperat.\n");
//Muestra texto en la primera lnea del lcd y da un
Retorno \n, para ir a la segunda lnea
lcd_putc ("Por : Oscar E. ");
//Imprime Segunda lnea.
delay_ms (1000);
//Retardo de 2 Segundos.
lcd_putc ("\f");
//Clarea LCD
lcd_putc ("Seplveda Vlez\n");
//Imprime texto en la primera columna del LCD y das un
Retorno \n, para ir a la segunda lnea
lcd_putc ("Correo:Osepulve_2001");
//Imprime nuevamente en la lnea 2 del LCD
delay_ms (1000);
//Retardo de 2 Segundos
lcd_putc ("\f");
//Clarea LCD
lcd_putc ("Yahoo.es \n");
//Imprime texto en la primera columna del LCD y das un
Retorno \n, para ir a la segunda lnea
lcd_putc (" Colombia 2013 ");
//Imprime nuevamente en la lnea 2 del LCD
delay_ms (1000);
//Retardo 2 Segundos
lcd_putc ("\f");
//Clarea LCD
lcd_putc ("Temperatura \n");
//Se muestra texto de Temperatura en Lnea 1 y Retorna a la
linea 2
lcd_putc ("Actual");
//Muestra Texto en Actual en lnea 2
Delay_ms (1000);
//Retardo de 1 Segundo
lcd_gotoxy (14,2);
//enva el cursor a la posicin 14 de la linea 2 del LCD
lcd_putc ("oC");
//Imprime en la posicin 14, lnea 2 del LCD oC
while (1)
//Ejecuta lo anterior mientras
{

lcd_gotoxy (8,2);
//Posiciona el cursor en la posicin 8 de la linea 2 del LCD
lcd_putc (" ");
//Limpia la posicin 8 de la linea 2 del LCD
lcd_gotoxy (8,2);
//Vuelve el cursos a la posicin 8 de la linea 2 del LCD
//Desde aqui se inicia el programa del ADC, para capturar la informacin del Sensor de
Temperatura
setup_adc (adc_clock_internal);
//Inicializa el Puerto ADC del microcontrolador
setup_adc_ports (all_analog);
//Se configura el Puerto como analogo
set_adc_channel (0);
//Se utiliza el canal 0
delay_ms (20);
//Retardo de 20 ms
medicion=read_adc();
//envia dato capturado a la variable medicin
//setup_adc (adc_off);
//Apaga adc
temper=medicion*(0.48875);
//Pasa valor binario capturado a oC
printf (lcd_putc,"%2.1f",temper);
//Imprime valor de temperatura en oC
delay_ms (700);
//Retardo de 700 ms
}
}

También podría gustarte