Académique Documents
Professionnel Documents
Culture Documents
simular estos diseos en tiempo real con todas no se requiere borrarlo con luz ultravioleta
las caractersticas de los componentes; para como las versiones EPROM, sino que permite
as poder trabajar con microcontroladores reprogramarlo nuevamente sin ser borrado con
conectados a distintos dispositivos. anterioridad.
Este programa combina un entorno de diseo El PIC16F877 es un microcontrolador de
excelente con gran capacidad de control de Microchip Technology fabricado en tecnologa
diagramas. CMOS, su consumo de potencia es muy bajo y
ISIS proteus va de la mano con ARES proteus adems es completamente esttico, esto
ya que la segunda herramienta nos permite la quiere decir que el reloj puede detenerse y los
ubicacin y tamao exacto de componentes datos de la memoria no se pierden.
para fabricacin de circuitos impresos. El encapsulado ms comn para este
microcontrolador es el DIP (Dual In-line Pin) de
Como hardware se utilizaran principalmente el 40 pines, propio para usarlo en
pic 16f877 en el cual se va a montar nuestro experimentacin. La referencia completa es
cdigo mquina. PIC16F877-04 para el dispositivo que utiliza
cristal oscilador de hasta 4 MHz,
PIC16F877-20 para el dispositivo que utiliza
El microcontrolador PIC16F877 de Microchip cristal oscilador de hasta 20 MHz o
pertenece a una gran familia de PIC16F877A-I para el dispositivo tipo industrial
microcontroladores de 8 bits (bus de datos) que puede trabajar hasta a 20 MHz Sin
que tienen las siguientes caractersticas embargo, hay otros tipos de encapsulado que
generales que los distinguen de otras familias: se pueden utilizar segn el diseo y la
Arquitectura Harvard Aplicacin que se quiere realizar. Por ejemplo,
Tecnologa RISC el encapsulado tipo surface mount
Tecnologa CMOS Estas caractersticas se (Montaje superficial) tiene un reducido tamao
conjugan para lograr un dispositivo altamente y bajo costo, que lo hace propio para
eficiente en el uso de la memoria de datos y producciones en serie o para utilizarlo en
programa y por lo tanto en la velocidad de lugares de espacio muy reducido.
ejecucin.
El PIC16F877 es un microcontrolador con
memoria de programa tipo FLASH, lo que
representa gran facilidad en el desarrollo de
prototipos y en su aprendizaje ya que
TRABAJO COLABORATIVO3 4
Led para verificaciones de estado en las requiere de circuitos adicionales para calibrarlo
salidas. externamente. La baja impedancia de salida,
su salida lineal y su precisa calibracin hace
Los leds se usan como indicadores en muchos posible que este integrado sea instalado
dispositivos y en iluminacin. Los primeros fcilmente en un circuito de control.
leds emitan luz roja de baja intensidad, pero
los dispositivos actuales emiten luz de alto 2. Diseo de la solucin de hardware y
brillo en el espectro infrarrojo, visible y Software.
ultravioleta.
Debido a sus altas frecuencias de operacin Hacemos la declaracin de variables en
son tambin tiles en tecnologas avanzadas ccscompliler
de comunicaciones. Los leds infrarrojos //***************************************
//**************declaracion de variables****
tambin se usan en unidades de control
# include<16f877.h>
remoto de muchos productos comerciales # deviceadc=10
# device *=16
incluyendo televisores e infinidad de
# use delay (clock=4M)
aplicaciones de hogar y consumo domstico. #include <lcd.c>
Float temperatura;
voidmain()
Pantalla cristal lquido lcd que nos servir de {
//**************convertidor de datos de
interfaz humana amigable.
temperatura
//*****************************
setup_adc_ports (RA0_ANALOG);//entrada
Es una pantalla delgada y plana formada por
lm35
un nmero de pxeles en color o monocromos setup_adc (ADC_CLOCK_INTERNAL);
//***convertidor analgico digital o reloj interno
colocados delante de una fuente de luz o
setup_COUNTERS
reflectora. A menudo se utiliza en dispositivos (RTCC_internal.rtcc_div_1) ; //marca divisin
para convertidor
electrnicos de pilas, ya que utiliza cantidades
set_adc_channel (0);
muy pequeas de energa elctrica. //*********************************
//****************iniciolcd**************
Lcd_init ();//******iniciar el lcd
lm35 para verificacin de temperatura Lcd_gotoxy (2,1);
Printf (lcd_putc,"TEMPERATURA
RECINTO");
Sensor de temperatura con una precisin delay_ms(400);
//*************programa trabaje en un bucle
calibrada de 1C. Su rango de medicin abarca
while(true)
desde -55C hasta 150C. La salida es lineal y {
temperatura= (float)read_adc()/2 ;// lee el
cada grado centgrado equivale a 10Mv o
convertidor anlogo digital y se lo asigna a
TRABAJO COLABORATIVO3 5
temperatura }
lcd_gotoxy (25,1);
printf (lcd_putc,"%f",temperatura); //*****%f
Hacemos montaje en programa proteus
es variable de punto flotante***
lcd_gotoxy(33,1); Con su respectivo PIC, verificadores leds,
printf(lcd_putc,"Grados");
verificador de temperatura e interfaz humana.
delay_ms (300);
//***********************si temperatura es
mayor de 25
if(temperatura<=30&&temperatura>=26)
{
output_high(pin_c1); //enciende led normal
output_low(pin_c2); //apaga led
temperaturabaja
output_low(pin_c3); //apaga led alta
lcd_gotoxy (6,3); //
printf(lcd_putc,"NORMAL");
delay_ms(300);
}
//*******************temperatura alta
if(temperatura<=200&&temperatura>=31)
{
output_high(pin_c3); //enciende led alta
output_low(pin_c1); //apaga led temperatura
normal
II. JUSTIFICACIN
output_low(pin_c2); //apaga led baja
lcd_gotoxy (6,3); // Actualmente las mediciones de la temperatura
printf(lcd_putc,"ALTA ");
delay_ms(100); para procesos industriales, comerciales,
lcd_gotoxy (6,3); hospitalarios, residenciales es un proceso que
printf(lcd_putc," ");
delay_ms(100); se vive a diario, debido a esto nos
} proponemos hacer un proyecto de un medidor
//***************************si la temperatura es
baja de temperatura; pretendiendo a travs de esta
if(temperatura<=24&&temperatura>=2) propuesta verificar niveles de temperatura para
{
output_high(pin_c2); //enciende led baja cualquier mbito o necesidad planteada
output_low(pin_c1); //apaga led temperatura
normal III. OBJETIVOS
output_low(pin_c3); //apaga led alta
lcd_gotoxy (6,3); // A. Objetivo General
printf(lcd_putc,"BAJA ");
delay_ms(300); Presentar informe escrito para el curso de
lcd_gotoxy (6,3); // microprocesadores y microcontroladores en el
printf(lcd_putc," ");
delay_ms(300); cual se evidencien los conocimientos
} adquiridos en el curso Microcotroladores y
}
TRABAJO COLABORATIVO3 6
los prototipos de las soluciones propuestas, es calibracin, que opera como un zener de 2
asi como el desarrollo de las practicas terminales, este tiene un voltaje de ruptura
parte fundamental del avance en estos absoluta a +10 mV/C. Con menos de 1 ohm
simultneas, donde de otra forma habra que velocidad de operacin alta, alrededor de
emplear cantidades de decodificadores BCD y 50KHz, el estado de este bit o bandera deber
transistores para comandar displays de 7 ser constantemente monitorizado, a fin de
segmentos convencionales. Ni hablar del mantener la sincronicidad de los sistemas sin
tiempo que esto le quita al software del C. prdida de cadenas de datos.
//*************************************** delay_ms(300);
//**************declaracion de variables**** }
# include<16f877.h> //*******************temperatura alta
# deviceadc=10 if(temperatura<=200&&temperatura>=31)
# device *=16 {
# use delay (clock=4M) output_high(pin_c3); //enciende led alta
#include <lcd.c> output_low(pin_c1); //apaga led
Float temperatura; temperaturanormal
voidmain() output_low(pin_c2); //apaga led baja
{ lcd_gotoxy (6,3); //
//**************convertidor de datos de printf(lcd_putc,"ALTA ");
temperatura delay_ms(100);
//***************************** lcd_gotoxy (6,3);
setup_adc_ports (RA0_ANALOG);//entrada printf(lcd_putc," ");
lm35 delay_ms(100);
setup_adc (ADC_CLOCK_INTERNAL); }
//***convertidor analgico digital o reloj interno //***************************si la temperatura es
setup_COUNTERS baja
(RTCC_internal.rtcc_div_1) ; //marca divisin if(temperatura<=24&&temperatura>=2)
para convertidor {
set_adc_channel (0); output_high(pin_c2); //enciende led baja
//********************************* output_low(pin_c1); //apaga led temperatura
//****************inicio lcd************** normal
Lcd_init ();//******iniciar el lcd output_low(pin_c3); //apaga led alta
Lcd_gotoxy (2,1); lcd_gotoxy (6,3); //
Printf (lcd_putc,"TEMPERATURA printf(lcd_putc,"BAJA ");
RECINTO"); delay_ms(300);
delay_ms(400); lcd_gotoxy (6,3); //
//*************programa trabaje en un bucle printf(lcd_putc," ");
while(true) delay_ms(300);
{ }
temperatura= (float)read_adc()/2 ;// lee el }
convertidor anlogo digital y se lo asigna a }
temperatura
lcd_gotoxy (25,1); E. Quinta actividad.
printf (lcd_putc,"%f",temperatura); //*****%f Se realizara montaje en protoboard de
es variable de punto flotante*** prototipo para pruebas experimentales.
lcd_gotoxy(33,1);
printf(lcd_putc,"Grados");
delay_ms (300);
//***********************si temperatura es CONCLUSIONES
mayor de 25
if(temperatura<=30&&temperatura>=26) El desarrollo de este trabajo permiti conocer
{
output_high(pin_c1); //enciende led normal ms a fondo la estructura del microcontrolador
output_low(pin_c2); //apaga led usado para la aplicacin sugerida que en este
temperaturabaja
output_low(pin_c3); //apaga led alta caso es el control de temperatura, se
lcd_gotoxy (6,3); // presentaron varios procesos de control, no
printf(lcd_putc,"NORMAL");
TRABAJO COLABORATIVO3 12