A kezelőegységek széles körben használt beviteli eszközök, amelyeket különféle elektronikai és beágyazott projektekben használnak. Arra használják, hogy bemeneteket vegyenek számok és albhabettek formájában, és ezeket tovább feldolgozzák a rendszerbe. Ebben az oktatóanyagban egy 4x4-es mátrix billentyűzetet fogunk összekapcsolni a 8051 mikrovezérlővel.
4X4 Matrix kezelő
Mielőtt összekapcsolnánk a kezelőt a mikrovezérlővel, először meg kell értenünk a működését. A Mátrix kezelő nyomógombokból áll, amelyek összekapcsolódnak. Akárcsak a mi esetünkben, a 4X4 mátrix billentyűzetet is használjuk, amelyben négy nyomógomb található mind a négy sorban. És a nyomógombok kapcsait az ábra szerint csatlakoztatják. Az első sorban mind a 4 nyomógomb egyik kapcsa össze van kötve, és egy másik négy nyomógomb terminálja a négy oszlop mindegyikét ábrázolja, ugyanez vonatkozik minden sorra. Tehát 8 terminált kapunk, hogy csatlakozzunk egy mikrovezérlőhöz.
Összekötő billentyűzet 8051 mikrovezérlővel (AT89S52)
Először egy LCD-modult kell csatlakoztatnunk a KEYPAD-on keresztül továbbítandó adatok megjelenítéséhez, ezért kérjük, olvassa el az „LCD-interfész a 8051 mikrokontrollerrel” cikket, mielőtt összekapcsolná a KEYPAD-ot.
Amint az a fenti kapcsolási rajzon látható, a Kezelő interfészéhez a kezelő 8 terminálját csatlakoztatnunk kell a mikrokontroller bármelyik portjához (8 érintkező). Mint ahogy a kezelőterminálokat is csatlakoztattuk a 8051 1. portjához. Bármelyik gomb megnyomásakor meg kell kapnunk a gomb helyét, ez jelenti a megfelelő ROW a COLUMN számot. Amint megkapjuk a gomb helyét, ennek megfelelően kinyomtathatjuk a karaktert.
Most az a kérdés, hogyan lehet megkapni a lenyomott gomb helyét? Ezt az alábbi lépésekben fogom elmagyarázni, és azt is szeretném, ha megnézné a kódot:
1. Először az összes sort a 0. logikai szintre és az összes oszlopot az 1. logikai szintre tettük.
2. Valahányszor megnyomunk egy gombot, az adott gombnak megfelelő oszlop és sor rövidre záródik, és a megfelelő oszlopot logikai szintre állítja. Mivel ez az oszlop összekapcsolódik (rövidre záródik) a 0 logikai szinten lévő sorral. oszlop Lásd a main () függvényt.
3. Most meg kell találnunk a Sorszámot, így létrehoztunk négy függvényt, amelyek megfelelnek az egyes oszlopoknak. Mint ha az egyik oszlop bármelyik gombját megnyomnánk, meghívjuk a row_finder1 () függvényt is, hogy megtaláljuk a sz.
4. A row_finder1 () függvényben megfordítottuk a logikai szinteket, ami azt jelenti, hogy az összes sor 1 és oszlop 0. A megnyomott gomb sorának 0-nak kell lennie, mert összekapcsolódott (rövidzárlatos) azzal az oszloppal, amelynek gombját megnyomták, és az összes oszlop 0 logikájú. Tehát az összes sort 0-ra szkenneltük.
5. Tehát, amikor a 0. logikánál találjuk a sort, ez azt jelenti, hogy ez a megnyomott gomb sora. Tehát most megvan a (z) 2. oszlop és a (z) sor, és kinyomtathatjuk a nem. gomb lcd_data függvényével.
Minden gombnyomásra ugyanaz az eljárás jár, és a (1) -t használva folyamatosan ellenőrizzük, hogy megnyomjuk-e a gombot.