Escolar Documentos
Profissional Documentos
Cultura Documentos
Microcontroladores y DSPs
Practica 4
Integrantes
Edgar Gabriel Hernndez Morales
Lady Guadalupe Feliciano Fuentes
INTRODUCCION:
OBJETIVO GENERAL:
Comprender el funcionamiento y programacin de los puertos de entrada analgicos del
microcontrolador PIC18F4550 y utilizar uno de ellos para medir la temperatura ambiental con un
sensor de temperatura LM35. Utilizar las interrupciones del Timer1 para generar una base de
tiempo constante y utilizarla para crear un reloj.
Marco terico:
Un teclado matricial es un simple arreglo de botones conectados en filas y columnas, de modo que
se pueden leer varios botones con el mnimo nmero de pines requeridos. Un teclado matricial
4x4 solamente ocupa 4 lineas de un puerto para las filas y otras 4 lneas para las columnas, de este
modo se pueden leer 16 teclas utilizando solamente 8 lneas de un microcontrolador. Si asumimos
que todas las columnas y filas inicialmente estn en alto (1 lgico), la pulsacin de un botn se
puede detectar al poner cada fila a en bajo (0 lgico) y checar cada columna en busca de un cero,
si ninguna columna est en bajo entonces el 0 de las filas se recorre hacia la siguiente y as
secuencialmente.
Planteamiento:
Utilizando el microcontrolador PIC18F4550, cree un sistema de monitoreo de temperatura y
hora con las siguientes caractersticas:
- Teclado matricial conectado al puerto B para la programacin de la hora. Alternativa: Push
buttons conectados al puerto B para programar la hora.
-Uno de los canales analgicos del puerto A para adquirir la seal de temperatura proveniente de
un sensor LM35.
- Puerto D para conectar el display de LCD 2x16.
MATERIALES:
-Programa picCcompiler.
-1 Programador de PICs.
-1protoboard
-1PIC18F4550
-1 LCD
kbd_init();
port_b_pullups(TRUE);
for(;;){
output_bit( PIN_A1, 1);
output_low(PIN_A0);
output_low(PIN_A2);
lcd_putc("\fINGRESE SU PIN ");
i=0;
while(i<4){
k=kbd_getc();
if(k!=0)
{
pinUsr[i]=k;
i++;
lcd_gotoxy(i,2);
lcd_putc('*')
}
}
delay_ms(500);
if (pinUsr[0]==clave[0] && pinUsr[1]==clave[1] && pinUsr[2]==clave[2] && pinUsr[3]==clave[3])
{
lcd_putc("\fPin correcto! ");
pinerr=0;
lcd_putc("\nBienvenido!! ");
output_high(PIN_A0);
output_low(PIN_A2);
delay_ms(1000);
while ( !input(PIN_A1)&& noseg<10)
{
printf(lcd_putc,"\fPor favor cierre");
printf(lcd_putc,"\nLa puerta :)");
delay_ms(1000);
noseg++;
if (!input(PIN_A1)&&noseg==10)
{
lcd_putc("\fAlerta Roja ");
lcd_putc("\n !!!!-_- !!!!");
output_bit( PIN_A2, 1);
while (true)
{
output_low(PIN_A0);
output_low(PIN_A2);
delay_ms(500);
output_high(PIN_A2);
delay_ms(500);
}
}
}
}
else
{
lcd_putc("\fpin incorecto ");
output_LOW(PIN_A2);
output_low(PIN_A0);
delay_ms(1000);
pinerr++;
if(pinerr==5)
{
lcd_putc("\fTecladoBloqueado ");
lcd_putc("\n
-_- ");
output_high(PIN_A2);
while(true)
{
output_low(PIN_A2);
delay_ms(500);
output_high(PIN_A2);
delay_ms(50); }
}
}
}
}
Diagrama de flujo
RESULTADOS Y CONCLUSIONES
Los resultados fueron los esperados con un retardo en la conclusin de la practica ya que estaban
conectados los pines del teclado matricial de manera inversa y por esta razn no se poda escribir
el PIN correcto, sin embargo este problema fue solucionado y la practica concluyo de manera
exitosa mostrando en el LCD lo esperado y realizando las acciones que se plantearon para esta
practica.
REFERENCIAS:
http://www.circuitoselectronicos.org/2011/03/teclado-matricial-4x4.html
https://www.dropbox.com/s/e33oszeey74i6hu/Unidad%20II%20-%20Interrupciones.pdf?dl=0