Tastaturer er meget anvendte inputenheder, der bruges i forskellige elektronik- og indlejrede projekter. De bruges til at tage input i form af tal og albhabets og føder det samme til systemet til videre behandling. I denne vejledning skal vi interface et 4x4 matrix tastatur med 8051 mikrocontroller.
4X4 Matrix-tastatur
Før vi bruger tastaturet til mikrocontroller, skal vi først forstå, hvordan det fungerer. Matrix-tastaturet består af et sæt trykknapper, som er indbyrdes forbundne. Som i vores tilfælde bruger vi 4X4 matrix tastatur, hvor der er 4 trykknapper i hver af fire rækker. Og terminalerne på trykknapperne er forbundet i henhold til diagrammet. I første række er en terminal af alle de 4 trykknapper forbundet, og en anden terminal med 4 trykknapper repræsenterer hver af 4 kolonner, det samme gælder for hver række. Så vi får 8 terminaler til at oprette forbindelse til en mikrocontroller.
Grænseflade-tastatur med 8051 mikrokontroller (AT89S52)
Først skal vi interface et LCD-modul for at få vist de data, der føres gennem KEYPAD, så gå gennem "LCD-grænseflade med 8051 Microcontroller" -artikel, før du grænseflader til KEYPAD.
Som vist i ovenstående kredsløbsdiagram skal vi tilslutte 8 terminaler på tastaturet til en hvilken som helst port (8 ben) på mikrokontrolleren for at interface tastaturet. Ligesom vi har tilsluttet tastaturterminaler til Port 1 i 8051. Når der trykkes på en knap, er vi nødt til at finde placeringen af knappen, betyder det tilsvarende RÆK en KOLONNE-nr. Når vi først har fundet knappen, kan vi udskrive tegnet i overensstemmelse hermed.
Nu er spørgsmålet, hvordan man får placeringen af den trykte knap? Jeg vil forklare dette i nedenstående trin og vil også have dig til at se på koden:
1. Først har vi lavet alle rækkerne til logikniveau 0 og alle kolonnerne til logikniveau 1.
2. Når vi trykker på en knap, bliver kolonne og række svarende til den knap kortsluttet og gør den tilsvarende kolonne til logisk niveau 0. Fordi denne kolonne bliver forbundet (kortsluttet) til rækken, som er på Logisk niveau 0. Så vi får kolonne nr. Se hovedfunktionen ().
3. Nu skal vi finde række nr., Så vi har oprettet fire funktioner svarende til hver kolonne. Som hvis der trykkes på en hvilken som helst knap i kolonne en, kalder vi funktion row_finder1 () for at finde række nr.
4. I række_finder1 () -funktionen vendte vi de logiske niveauer, betyder nu, at alle rækkerne er 1 og kolonnerne er 0. Nu skal rækken med den trykte knap være 0, fordi den er blevet forbundet (kortsluttet) til den kolonne, hvis knap trykkes, og alle kolonnerne har 0 logik. Så vi har scannet alle rækker til 0.
5. Så når vi finder rækken ved logik 0, betyder det, at det er rækken med den trykte knap. Så nu har vi kolonne nr. (Kom i trin 2) og række nr., Og vi kan udskrive nr. af denne knap ved hjælp af lcd_data-funktionen.
Den samme procedure følger for hvert tryk på en knap, og vi bruger mens (1) til kontinuerligt at kontrollere, om der trykkes på knappen eller ej.