Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
INFORME
Integrantes: Nelson Romo David Guerra
Nivel: 6to CIERCOM
Fecha: 2012-06-27
I.
II.
Objetivos:
III.
INTERRUPCIONES:
Las interrupciones son eventos que se producen fuera de la ejecucin del programa, inclusive
pueden ser externas al circuito integrado, que obligan al micro-controlador a continuar con
otra secuencia de instrucciones que se denominada la rutina de servicio a la interrupcin.
Identificacin del evento de interrupcin
El micro-controlador identifica al evento que se ha producido cuando se enciende la bandera
asociada la ejecucin se encamina a la rutina de servicio, si est habilitada la interrupcin y si
el bit I del SREG est en uno (bandera de habilitacin global de las interrupciones).
Interrupciones externas
Adems del RESET existen tres interrupciones externas y cuatro interrupciones por cambio de
estado en los puertos de E/S.
Los ATMEGA 164PA tienen tres interrupciones externas:
INT0
INT1
INT2
es el pin PD2
es el pin PD3
es el pin PB2
Por estos terminales, que se los configura como entradas, se ingresan las seales que
producen interrupciones.
-----------------------------------------------------------------------------------------------------------------------------
Los bits INT0, INT1 e INT2 en 1 habilitan los pedidos individuales de interrupcin, causados por
la actividad en la respectiva entrada de la seal para que surtan efecto estos pedidos tambin
debe estar en 1 la bandera general de habilitacin de interrupciones.
Banderas de las interrupciones externas (Configuracin del registro EIFR)
PCINT0
PCINT1
PCINT2
PCINT3
para el PUERTO A
para el PUERTO B
para el PUERTO C
para el PUERTO D
-----------------------------------------------------------------------------------------------------------------------------
Los bits PCIE0, PCIE1, PCIE2 y PCIE3 en 1 habilitan los pedidos de interrupcin, causados por los
cambios en las entradas de los puertos A, B, C y D respectivamente para que surtan efecto
estos pedidos tambin debe estar en 1 la bandera general de habilitacin de interrupciones.
Banderas de las interrupciones por cambio (Configuracin del registro PCIFR)
PCIF0, PCIF1, PCIF2 y PCIF3 se ponen en 1 por efecto de cambios producidos en las entradas de
los puertos A, B, C y D respectivamente regresan a 0 cuando se ejecuta la rutina de
interrupcin o cuando se escribe un 1 lgico.
Identificacin de las entradas
La denominacin que tiene cada uno de los terminales de los puertos como interrupciones es:
PCINT 7...0
PCINT 15...8
PCINT 2316
PCINT 31...24
Mascara de las interrupciones por cambio (Configuracin de los registros PCMSK <3:0>)
-----------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------
TECLADO MATRICIAL:
Es un teclado construido en forma de matriz. El teclado que utilizamos es un teclado de 4x4=16
teclas. El diagrama a continuacin muestra como est constituido el mismo:
Ventajas:
-
Hay mayor aprovechamiento de los pines de E/S que con un teclado lineal.
#Combinaciones = (#Filas) x (#Columnas): Es decir que el #Combinaciones = 4 * 4 = 16
Se tienen 16 teclas para 4+4=8 pines E/S
En un teclado lineal se requeriran 16 pines.
Funcionamiento:
Cuando no se ha oprimido ninguna tecla (todos los interruptores estn abiertos) no hay
conexin entre renglones y columnas. Pero cuando se oprime una tecla se hace una conexin
entre la columna y el rengln de la tecla. Por ejemplo: si la tecla 6 es presionada.
-----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------Desventajas:
Por el mismo principio de construccin matricial que reduce el nmero de pines E/S
necesarios, existen dos problemas cuando se presiona ms de una tecla, stos son el Ghosting
y el Enmascarado.
Ghosting: Sucede cuando son presionadas tres o ms teclas de forma que una de ellas
comparta rengln y columna con cada una de las otras respectivamente.
Enmascarado: al presionar dos teclas y soltarlas el micro no detectar que se solt una tecla
pues la corriente sigue fluyendo por el camino incorrecto.
Lectura del Teclado Matricial
Hay dos formas:
1) Empleando un circuito dedicado el cual enva al micro el cdigo de la tecla presionada y un
pin de interrupcin para que el micro lea el dato.
2) Decodificar la columna y la fila empleando los puertos como entrada y como salida
alternadamente.
Cmo se ve cul tecla se oprimi:
DECODIFICADOR MM74C922N:
Configuracin de los pines:
-----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------En nuestro caso no usaremos el decodificador. Pero aqu ponemos el diagrama de cmo se
conecta el decodificador con el teclado:
Teclado
IV.
Decodificador
Micro-controlador
Simulacin
Presionando la tecla 2:
V.
#include <mega164a.h>
#include <delay.h>
#include <stdio.h>
-----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------PORTB=0x00;
DDRB=0xF0;
// Characters/line: 16
lcd_init(16);
lcd_gotoxy(0,0);
lcd_puts("Nelson Romo");
delay_ms(1000);
lcd_clear();
while (1)
{
for (i=0;i<4;i++)
{
i=scan_key();
if(i!=21)
{
switch(i)
{
case 0:
lcd_gotoxy(1,1);
lcd_puts("4");
break;
case 1:
lcd_gotoxy(1,1);
lcd_puts("8");
break;
case 2:
lcd_gotoxy(1,1);
lcd_puts("5");
break;
case 3:
lcd_gotoxy(1,1);
lcd_puts("2");
break;
case 4:
lcd_gotoxy(1,1);
lcd_puts("9");
break;
case 5:
lcd_gotoxy(1,1);
lcd_puts("6");
break;
case 6:
lcd_gotoxy(1,1);
lcd_puts("3");
-----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------break;
case 7:
lcd_gotoxy(1,1);
lcd_puts("/");
break;
case 8:
lcd_gotoxy(1,1);
lcd_puts("x");
break;
case 9:
lcd_gotoxy(1,1);
lcd_puts("-");
break;
case 10:
lcd_gotoxy(1,1);
lcd_puts("+");
break;
case 11:
lcd_gotoxy(1,1);
lcd_puts("=");
break;
case 12:
lcd_gotoxy(1,1);
lcd_puts("0");
break;
case 13:
lcd_gotoxy(1,1);
lcd_puts("7");
break;
case 14:
lcd_gotoxy(1,1);
lcd_puts("1");
break;
case 15:
lcd_gotoxy(1,1);
lcd_puts("*");
break;
}
}
}
}
}
-----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------VI.
Conclusiones:
Bibliografa:
http://galia.fc.uaslp.mx/~cantocar/microcontroladores/SLIDES_8051_PDF/20_MATRI.
PDF
http://es.scribd.com/doc/6661021/Teclado-Matricial-4x4
http://ucsystem.blogspot.com/2011/12/interrupciones-atmega.html
http://es.scribd.com/doc/94934937/ejercicos-en-atmega-164p-teclado-matricial-coninterrupciones
http://es.scribd.com/doc/28886646/Capitulo-2
-----------------------------------------------------------------------------------------------------------------------------