luni, septembrie 15, 2014

Conectarea unui microcontroler la o tastatura si un ecran LCD

Salut,

In acest articol voi prezenta cum putem citi o tasta apasata a unei tastaturi si afisarea acesteia pe un ecran.
Am scris programul in mikroC PRO for PIC pentru microcontrollerul PIC16F887 care foloseste oscilatorul intern de 8MHz.

1. Tastatura
Tastatura este practic o matrice compusa din M linii x N coloane. La intersectia unei linii cu o coloana se afla un intrerupator care odata apasat face contact intre linia si coloana respectiva.


Pentru a vedea care buton este apasat, punem pe rand fiecare coloana pe 1Logic si citim valoarea de pe linii. Daca avem 1Logic pe una din linii inseamna ca la intersectia dintre coloana pusa pe 1Logic si linia citita ca 1Logic butonul este apasat.

Practic conectam coloanele la pini de iesire si liniile la pini de intrare.
Pe rand, punem fiecare coloana pe 1Logic si celelalte pe 0Logic.
Apoi citim valorile pinilor de intrare. Daca vreunul din ei este pe 1Logic inseamna ca avem o tasta apasata.
Se repeta procedeul pentru celelalte coloane. 
Daca s-a gasit o tasta apasata se poate pune un flag pentru a opri scanarea inutila a celorlalte taste.

Eu personal am folosit 2 variabile X si Y care retin coordonatele tastei apasate. Initial X si Y sunt 0.
Apoi am inceput sa scanez intersectiile liniilor si coloanele iar in momentul in care gaseam o tasta apasata alocam lui X si Y coordonatele coloanei puse pe 1Logic si linia citita ca 1Logic.

Tastatura poate fi cumparata sau realizata acasa folosind intrerupatoare microcontact (pushbutton).



2. Afisarea pe ecran LCD

Am folosit un ecran LCD 16x2 compatibil cu cele din seria Hitachi HD44780.
Acesta are 16 pini iar simbolurile pinilor pot fi gasite pe net. Nu voi intra in detalii intrucat am folosit libraria din MikroC iar acesta explica foarte bine in Help conexiunile, functiile si pinii declarati.
La unele ecrane cumparate ordinea pinilor difera.



In final, iata simularea in Proteus:



Codul sursa nu il voi pune . Este destul de lung iar un inginer/programator adevarat trebuie sa-si scrie singur programele. Mult succes!

0 comentarii:

Trimiteți un comentariu