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.
Además de las macros usadas en el post anterior usaremos ésta otra macro:
Ahora mostrare un ejemplo de su funcionamiento.
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.
La siguiente figura muestra como usar otro tipo de teclado.
En el programa solamente deberán cambiar lo siguiente.
Eso es todo por ahora, espero estos ejemplos los ayuden.
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.
ResponderEliminarEl 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.
ResponderEliminarEstoy 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 ?
buenas tardes me sucede lo mismo no puedo hacer funcionar el teclado en fisico , estoy usando un atmega 16
ResponderEliminarLa 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).
ResponderEliminarSi me das mas información quizá te pueda ayudar más.