Le tastiere sono dispositivi di input ampiamente utilizzati in vari progetti elettronici e integrati. Sono usati per prendere input sotto forma di numeri e alfabeti e inserire gli stessi nel sistema per ulteriori elaborazioni. In questo tutorial interfacciamo una tastiera a matrice 4x4 con un microcontrollore 8051.
Tastiera a matrice 4X4
Prima di interfacciare la tastiera con il microcontrollore, dobbiamo prima capire come funziona. La tastiera a matrice è costituita da una serie di pulsanti, che sono interconnessi. Come nel nostro caso, stiamo utilizzando la tastiera a matrice 4X4, in cui ci sono 4 pulsanti in ciascuna delle quattro file. E i terminali dei pulsanti sono collegati secondo lo schema. Nella prima riga, un terminale di tutti i 4 pulsanti è collegato insieme e un altro terminale di 4 pulsanti rappresenta ciascuna delle 4 colonne, lo stesso vale per ogni riga. Quindi stiamo ottenendo 8 terminali per connettersi con un microcontrollore.
Tastiera interfacciata con microcontrollore 8051 (AT89S52)
Per prima cosa abbiamo bisogno di interfacciare un modulo LCD per visualizzare i dati che verranno inviati tramite KEYPAD, quindi si prega di leggere l'articolo "Interfacciamento LCD con microcontrollore 8051" prima di interfacciare KEYPAD.
Come mostrato nello schema circuitale sopra, per interfacciare la tastiera, dobbiamo collegare 8 terminali della tastiera a qualsiasi porta (8 pin) del microcontrollore. Come se avessimo collegato i terminali della tastiera alla porta 1 di 8051. Ogni volta che viene premuto un pulsante, dobbiamo ottenere la posizione del pulsante, significa che la RIGA e il n. Una volta ottenuta la posizione del pulsante, possiamo stampare il carattere di conseguenza.
Ora la domanda è come ottenere la posizione del pulsante premuto? Lo spiegherò nei passaggi seguenti e voglio anche che tu guardi il codice:
1. Per prima cosa abbiamo portato tutte le righe al livello logico 0 e tutte le colonne al livello logico 1.
2. Ogni volta che si preme un pulsante, la colonna e la riga corrispondenti a quel pulsante vengono cortocircuitate e portano la colonna corrispondente al livello logico 0. Perché quella colonna diventa connessa (cortocircuitata) alla riga, che è al livello logico 0. Quindi otteniamo il colonna n. Vedi funzione main ().
3. Ora dobbiamo trovare il numero di riga, quindi abbiamo creato quattro funzioni corrispondenti a ciascuna colonna. Come se si premesse un qualsiasi pulsante della colonna uno, chiamiamo la funzione row_finder1 (), per trovare la riga n.
4. Nella funzione row_finder1 (), abbiamo invertito i livelli logici, significa che ora tutte le righe sono 1 e le colonne sono 0. Ora la riga del pulsante premuto dovrebbe essere 0 perché è diventata collegata (in corto) alla colonna il cui pulsante è premuto e tutte le colonne hanno una logica 0. Quindi abbiamo scansionato tutte le righe per 0.
5. Quindi ogni volta che troviamo la riga a logica 0, significa che è la riga del pulsante premuto. Quindi ora abbiamo la colonna n. (Ottenuta nel passaggio 2) e la riga n., E possiamo stampare n. di quel pulsante utilizzando la funzione lcd_data.
La stessa procedura segue per ogni pressione del pulsante, e stiamo usando while (1), per controllare continuamente se il pulsante è premuto o meno.