Envío Gratis en compras mínimas de $1200 mxn Enviamos a toda la Republica Mexicana
Buscar

Librería Teclado Matricial – MPLAB X

La librería para el teclado matricial es la siguiente a desarrollar, de igual manera, es importante conocer su principio de funcionamiento para poder realizar una librería que le permita al usuario utilizar este dispositivo de la mejor manera La librería para el teclado matricial permite controlar un teclado 3×4 y devuelve un valor numérico indicando la tecla que se ha presionado.

 


Declaración De Pines

El teclado matricial 3×4 cuenta con 7 pines, 4 para las filas y 3 para las columnas. La declaración de pines se puede ver a continuación y pueden cambiarse al gusto del usuario si es necesario.

//Declaración de pines de la librería (Cambiar al gusto si es necesario)
#define C3        PORTDbits.RD7
#define C2        PORTDbits.RD6
#define C1        PORTDbits.RD5
#define F4        LATDbits.LATD4
#define F3        LATDbits.LATD3
#define F2        LATDbits.LATD2
#define F1        LATDbits.LATD1

Nota: En el programa principal deben configurarse los pines del puerto D o el utilizado como salidas o entradas digitales según sea el caso.

 


Funciones

La librería cuenta con una función principal denominada BOTON. Esta función es utilizada para conocer el botón que ha sido pulsado. La función devuelve un número entero en función del botón presionado con ayuda de estructuras if y ciclos for tal y como se muestra en la siguiente tabla.

 

Valor que devuelve la librería

Botón presionado

Número almacenado

0

0

1

1

2

2

3

3

4

4

5

5

6

6

7

7

8

8

9

9

*

10

#

11

Es necesario declarar una variable de tipo entero donde se almacenará el valor que devuelve la librería

Por ejemplo:

int  x = BOTON();

 

 


Conexiones (Miuva 18 / PIC 18F46F22)

Las conexiones mencionadas en la librería pueden observarse en la siguiente ilustración, pero pueden cambiarse según lo requiera el usuario.

 


Código de ejemplo (Miuva 18 / PIC 18F46F22)

//Configuracion de los fusbibles
#pragma config PLLDIV = 2, CPUDIV = OSC1_PLL2, USBDIV = 2
#pragma config FOSC = HSPLL_HS, FCMEN = OFF, IESO = OFF
#pragma config PWRT = OFF, BOR = OFF, VREGEN = OFF
#pragma config WDT = OFF
#pragma config MCLRE = ON, LPT1OSC = OFF, PBADEN = OFF
#pragma config STVREN = ON, LVP = OFF, ICPRT = OFF, XINST = OFF
#include <xc.h>

//Declarar frecuencia del oscilador
#define _XTAL_FREQ 48000000

//Incluir librerías
#include "T_matricial.h"

void main(void) {
    //Configuramos todos los pines como salidas digitales
    TRISB = 0x00;
    TRISD = 0b11100000;
    //Limpiamos los pines de los puertos
    LATB = 0x00;
    
    //Ciclo infinito
    while(1){
        int x = BOTON();
            if (x == 0){
                LATB = 0b00001111;
            }
            else if (x == 1){
                LATB = 0b00000001;
            }
            else if (x == 2){
                LATB = 0b00000010;
            }
            else if (x == 3){
                LATB = 0b00000011;
            }
            else if (x == 4){
                LATB = 0b00000100;
            }
            else if (x == 5){
                LATB = 0b00000101;
            }
            else if (x == 6){
                LATB = 0b00000110;
            }
            else if (x == 7){
                LATB = 0b00000111;
            }
            else if (x == 8){
                LATB = 0b00001000;
            }
            else if (x == 9){
                LATB = 0b00001001;
            }
            else if (x == 10){
                LATB = 0b00001010;
            }
            else if (x == 11){
                LATB = 0b00001011;
            }
    }
    return;
}

 

 


Descarga de archivos

Descargar librería