sábado, 19 de febrero de 2011

KEYPAD Y LCD

En el post anterior les mostré las rutinas para en manejo de un LCD y algunos ejemplos del manejo de dichas rutinas. Descargar

Ahora les mostrare la rutina de escaneo de un KEYPAD 4x4 y mostrar la tecla presionada en el LCD.
Editando esta línea “.EQU    PUERTO_KEY = PORTA” se puede cambiar el puerto que se usara para el KEYPAD. Al final de de éste archivo se encuentra la tabla con los valores ASCII de cada tecla. La rutina espera que la tecla sea soltada y retorna el valor en R16.

keypad

Además de las macros usadas en el post anterior usaremos ésta otra macro:

macros1

Ahora mostrare un ejemplo de su funcionamiento.

keypadeje

Esta rutina muestra los mensajes MENSAJE_1, MENSAJE_2, MENSAJE_3 y MENSAJE_4 y luego de esperar una tecla limpia el LCD, luego posiciona el puntero del LCD a la línea 1 y espera una tecla y la muestra. Luego de 20 teclas pasara a la siguiente línea.

key1

key2

La siguiente figura muestra como usar otro tipo de teclado.

key3

En el programa solamente deberán cambiar lo siguiente.

key4

Eso es todo por ahora, espero estos ejemplos los ayuden.


4 comentarios:

  1. Buenas Noches, una pregunta Sr Jonathan, cuando simulo el keypad y hago un programa no tengo ningún problema, pero cuando lo llevo a la grabación en físico, conecto los cables al keypad, pero no hay respuesta. Un dato adicional, cuando hago seguimiento de voltajes con un led rojo, este se prende con fuerza en los primeros pines, pero en los siguientes la luz roja del led es casi inapreciable. Agradeceria mucho su ayuda. Muchas gracias.

    ResponderEliminar
  2. El comportamiento de tu led se puede deber a que PA4-PA7 son entradas y tienen la resistencia pull-up activada( son entradas pero desde afuera se ven como '1'). PA0-PA3 son salidas y cambian constantemente para escanear el keypad.
    Estoy asumiendo que estas usando un ATmega324P y que ya modificaste los fuses que vienen de fabrica.
    ¿ Se muestra el mensaje inicial en tu LCD, o tampoco te funciona esa parte ?

    ResponderEliminar
  3. buenas tardes me sucede lo mismo no puedo hacer funcionar el teclado en fisico , estoy usando un atmega 16

    ResponderEliminar
  4. La prueba que te recomiendo es hacer puente de algunos pines del nible alto con los del nible bajo(uno a la vez). Cada vez que quites el puente sera como si dejaras de presionar una tecla. Ten presente el tipo de teclado que yo estoy usando(4321ABCD), hay teclados que son diferentes (1234ABCD).
    Si me das mas información quizá te pueda ayudar más.

    ResponderEliminar