Los teclados son dispositivos de entrada ampliamente utilizados que se utilizan en diversos proyectos integrados y electrónicos. Se utilizan para tomar entradas en forma de números y albhabets, y alimentarlas en el sistema para su posterior procesamiento. En este tutorial vamos a conectar un teclado matricial 4x4 con un microcontrolador 8051.
Teclado matricial 4X4
Antes de conectar el teclado con el microcontrolador, primero debemos entender cómo funciona. El teclado matricial consta de un conjunto de botones pulsadores, que están interconectados. Como en nuestro caso, estamos usando un teclado matricial 4X4, en el que hay 4 botones en cada una de las cuatro filas. Y los terminales de los pulsadores están conectados según el diagrama. En la primera fila, un terminal de los 4 pulsadores está conectado entre sí y otro terminal de 4 pulsadores representa cada una de las 4 columnas, lo mismo ocurre con cada fila. Entonces, estamos obteniendo 8 terminales para conectar con un microcontrolador.
Interfaz de teclado con microcontrolador 8051 (AT89S52)
Primero, necesitamos conectar un módulo LCD para mostrar los datos que serán alimentados a través del KEYPAD, así que por favor revise el artículo “Interfaz LCD con el microcontrolador 8051” antes de conectar el KEYPAD.
Como se muestra en el diagrama de circuito anterior, para conectar el teclado, necesitamos conectar 8 terminales del teclado a cualquier puerto (8 pines) del microcontrolador. Como si hubiéramos conectado terminales de teclado al puerto 1 de 8051. Siempre que se presiona cualquier botón necesitamos obtener la ubicación del botón, significa la FILA correspondiente y el número de COLUMNA. Una vez que obtengamos la ubicación del botón, podemos imprimir el carácter en consecuencia.
Ahora la pregunta es cómo obtener la ubicación del botón presionado. Voy a explicar esto en los pasos a continuación y también quiero que mire el código:
1. Primero hemos hecho todas las filas al nivel lógico 0 y todas las columnas al nivel lógico 1.
2. Siempre que presionamos un botón, la columna y la fila correspondientes a ese botón se acortan y hacen que la columna correspondiente llegue al nivel lógico 0. Porque esa columna se conecta (acorta) a la fila, que está en el nivel lógico 0. Así que obtenemos el columna no. Consulte la función main ().
3. Ahora necesitamos encontrar el número de fila, por lo que hemos creado cuatro funciones correspondientes a cada columna. Como si se presiona cualquier botón de la columna uno, llamamos a la función row_finder1 (), para encontrar el número de fila.
4. En la función row_finder1 (), invertimos los niveles lógicos, lo que significa que ahora todas las filas son 1 y las columnas son 0. Ahora la fila del botón presionado debe ser 0 porque se ha conectado (acortado) a la columna cuyo botón está presionado, y todas las columnas tienen lógica 0. Así que hemos escaneado todas las filas en busca de 0.
5. Entonces, siempre que encontremos la Fila en 0 lógico, significa que es la fila del botón presionado. Así que ahora tenemos el número de columna (obtenido en el paso 2) y el número de fila, y podemos imprimir el número. de ese botón usando la función lcd_data.
Se sigue el mismo procedimiento para cada pulsación de botón, y estamos usando while (1), para comprobar continuamente si el botón está pulsado o no.