Teclado Matricial y Barrido del Teclado

Fundamentos de diseño e implementación de teclados matriciales para sistemas microprocesados, incluyendo técnicas de eliminación de rebotes y procedimientos de entrada/salida.

Electrónica DigitalMicrocontroladores
Teclado Básico con Pulsadores
Limitación principal

El teclado más básico se implementa usando pulsadores, pero requiere un pin del microcontrolador por cada tecla. Por ello, solo es viable en sistemas que necesiten un número reducido de teclas.

Circuito básico

Pulsador conectado al pin P0 con resistencia pull-up de 10kΩ a Vcc.

Rebotes en Pulsadores

Al presionar un pulsador se producen rebotes: oscilaciones rápidas e irregulares en la señal antes de estabilizarse, como muestra la forma de onda del osciloscopio. Estos efectos indeseables deben eliminarse para garantizar lecturas correctas.

Eliminación por Hardware

Se añade un condensador en paralelo con el pulsador, aprovechando el disparador Schmitt interno o externo del microcontrolador para filtrar los rebotes.

Eliminación por Software

Al detectar el primer flanco de bajada, se genera un retardo temporal que permite que la señal se estabilice antes de leer el estado definitivo.

Circuitos Anti-Rebote por Hardware

Existen dos configuraciones de hardware para eliminar rebotes en pulsadores:

Schmitt Trigger Interno

Condensador conectado a GND junto al pulsador, usando el disparador Schmitt interno del microcontrolador.

Schmitt Trigger Externo

Se añade un disparador Schmitt externo entre el circuito RC y el pin P0 del microcontrolador para mayor robustez.

Procedimientos de Entrada/Salida

Existen tres métodos para que el microcontrolador gestione la lectura de periféricos como un teclado:

1
Bloqueo del Proceso

El µP espera a que el periférico responda. El proceso principal queda detenido hasta que se pulse una tecla.

2
Consulta Periódica (Polling)

El µP consulta de forma periódica el estado del periférico. Si no hay pulsación, continúa con otras tareas y vuelve a consultar tras un retardo.

3
Por Interrupción

El µP responde al periférico cuando éste le interrumpe. El proceso principal no se detiene; la interrupción se atiende al producirse el evento.

Diagramas de Flujo de E/S
Bloqueo del Proceso
Consulta Periódica
Por Interrupción
Estructura del Teclado Matricial

Un teclado matricial es un arreglo de interruptores conectados de forma que la activación de cualquiera de ellos une un terminal de una columna con un terminal de una fila. Al presionar el pulsador "1", se comunica la COLUMNA 1 con la FILA 1.

Matriz 2×2

La cantidad de columnas y filas depende de la distribución física y del número de pulsadores requeridos en el teclado.

Teclado Matricial 4×4

Para una matriz de 4 columnas × 4 filas, se obtienen 16 pulsadores en total, usando únicamente 8 pines del microcontrolador. Esta es la configuración más habitual en sistemas embebidos.

Diagrama eléctrico
Teclado físico

Teclas numéricas (azul): 0–9. Teclas especiales (rojo): A, B, C, D, *, #.

Barrido del Teclado

Para detectar qué tecla fue pulsada, se aplica un nivel lógico "0" a cada fila de forma secuencial. Por ejemplo, para detectar las teclas 1, 2, 3 y A, se aplica "0" a la FILA 1 y se leen las columnas.

Codificador de Teclado: MM74C922
Entradas y Salidas
  • Entradas: X1–X4, Y1–Y4 (matriz de teclado)
  • Salidas: DA (DATA AVAILABLE), A (D0), B (D1), C (D2), D (D3)
  • Alimentación: +5V (VCC), GND, OE
  • Temporización: OSC, C, 10C
Función del chip

El MM74C922 es un codificador de teclado que gestiona automáticamente el barrido de una matriz 4×4 (teclas 0–15). Cuando se pulsa una tecla, activa la señal DA y presenta el código de 4 bits en las salidas A–D, conectadas directamente al bus de datos.