Ebben az oktatóanyagban összekapcsolunk egy 4x4-es (16 billentyűs) kezelőt az ATMEGA32A mikrokontrollerrel. Tudjuk, hogy a billentyűzet az egyik legfontosabb beviteli eszköz, amelyet az elektronikai projektekben használnak. A kezelő az egyik legegyszerűbb módszer arra, hogy parancsokat vagy utasításokat adjon egy elektronikus rendszernek.
Szükséges alkatrészek
Hardver: ATMEGA32, tápegység (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF kondenzátor, 100nF kondenzátor, 10KΩ ellenállás (8 darab).
Szoftver: Atmel studio 6.1 vagy Atmel studio 6.2, progisp vagy flash magic.
Áramköri ábra és működési magyarázat
Az ATMEGA32 PORTB áramkörében az LCD adatcsatlakozó csatlakozik. Itt nem szabad elfelejteni letiltani a JTAG kommunikációt a PORTC-ban vagy az ATMEGA-ban a biztosíték byte-ok megváltoztatásával, ha a PORTC-ot normál kommunikációs portként akarja használni. A 16x2 LCD-ben 16 érintkező van, ha van háttérvilágítás, ha nincs háttérvilágítás, akkor 14 tű lesz. A hátsó lámpa csapjai bekapcsolhatók, vagy elhagyhatók. Most a 14 csapok vannak 8 adatok csapok (7-14 vagy D0-D7), 2 tápegység csapok (1 & 2 vagy VSS & VDD vagy GND & + 5V), 3 rd pin kontraszt vezérlő (VEE-kontrollok milyen vastag a karaktereket kell lennie ábra), és 3 vezérlőcsap (RS & RW & E).
Az áramkörben megfigyelhetõ, hogy csak két vezérlõ csapot vettem, ez adja a rugalmasságot, a kontrasztbitet és a READ / WRITE-t nem gyakran használják, így testzárlat lehet. Ez az LCD-t a legnagyobb kontrasztú és olvasási módba helyezi. Csak az ENABLE és RS csapokat kell vezérelnünk, hogy a karaktereket és az adatokat ennek megfelelően küldhessük el.
Az LCD-hez kapcsolódó csatlakozások az alábbiak:
PIN1 vagy VSS a földre
PIN2 vagy VDD vagy VCC + 5v teljesítményig
PIN3 vagy VEE földelés (a legjobb kontrasztot nyújtja a kezdőknek)
PIN4 vagy RS (Register Selection) az uC PD6-jához
PIN5 vagy RW (olvasás / írás) a földre (az LCD-t olvasási módba állítja, megkönnyíti a kommunikációt a felhasználó számára)
PIN6 vagy E (engedélyezés) az uC PD5-ére
PIN7 vagy D0 - PB0 az uC-nél
PIN8 vagy D1 - PB1 az uC-nél
PIN9 vagy D2 - PB2 az uC-től
Az uC PIN10 vagy D3 - PB3
PIN11 vagy D4 - PB4 az uC-nél
PIN12 vagy D5 - PB5 az uC-től
PIN13 vagy D6 - PB6 az uC-től
PIN14 vagy D7-től az uC PB7-ig
Az áramkörben láthatja, hogy 8 bites kommunikációt (D0-D7) használtunk, de ez nem kötelező, használhatunk 4 bites kommunikációt (D4-D7), de a 4 bites kommunikációs program kissé összetetté válik. Tehát a fenti táblázat puszta megfigyelésétől kezdve 10 érintkezős LCD-t csatlakoztatunk a vezérlőhöz, amelyben 8 érintkező adat és 2 vezérlő érintkező.
Most beszéljünk a kezelőről, a billentyűzet nem más, mint a multiplexált billentyűk. A gombok multiplexált formában vannak összekötve, hogy csökkentse a vezérlő rendszer tűhasználatát.
Tekintsük, hogy van egy 4x4-es kezelőnk, ebben a billentyűzetben 16 gombunk van, normál esetben 16 vezérlőtűre van szükségünk a 16 gomb interfészéhez, de ez nem jó a vezérlő rendszer szempontjából. Ez a tűhasználat csökkenthető a gombok multiplex formában történő összekapcsolásával.
Például úgy gondoljuk, hogy 16 gombunk van, és azt egy vezérlőhöz akarjuk csatolni, hogy kialakítsunk egy billentyűzetet, ezek a billentyűk az ábra szerint vannak elrendezve:
Ezeket a gombokat közös oszlopok kötik össze, az ábrán látható módon:
Amint az ábrán látható, minden négy gomb nem jelölt végét az oszlop kialakításához húzzuk, így 16 kulcsnál négy oszlop van.
Ha elfelejtjük a fenti oszlopkapcsolatokat, és mind a négy gomb közös jelölt végeit összekötjük egy sor kialakításával:
Ahogy az ábra mutatja, 16 billentyű esetén négy sorunk lesz, az ábrán látható módon.
Most, amikor mindkettőt együtt látják, valami hasonlót kapunk az alábbi áramkörhöz:
Itt összekapcsoltunk 16 kulcsot multiplexált formában, így csökkentve a vezérlő tűhasználatát. A csatlakoztatott 16 kulcs első esetéhez képest 16 tűre volt szükségünk a vezérlőn, de a multiplexálás után egyszerűen 8 érintkezőre van szükségünk a 16 kulcs csatlakoztatásához.
Normál esetben ez jelenik meg a billentyűzeten belül:
Amint az a fenti ábrán látható, a fenti billentyűzeten 16 gomb található, és ezek a gombok mindegyike egy gombot jelent a multiplex gombok konfigurációjában. És van még 8 tűs csatlakozás, amint az a fenti ábrán látható, és szimbolizálja a multiplexelt kapcsolatot.
Most dolgozik:
A kezelőnek négy oszlopa és négy sora van, a nyomógomb azonosításához kereszthivatkozási módszert fogunk használni. Először vagy az összes oszlopot, vagy az összes sort összekapcsoljuk a vcc-vel, tehát ha a sorok a közös vcc-hez vannak kapcsolva, akkor az oszlopokat a vezérlő bemenetének vesszük.
Most, ha megnyomja az egyik gombot az ábra szerint:
Ezt követően egy áram áramlik át az áramkörön, az alábbi ábra szerint:
Tehát C1 magas, egy gombnyomásra. Ebben a pillanatban át fogjuk kapcsolni a táp- és bemeneti portokat, vagyis az oszlopokat tápláljuk és sorokat veszünk bemenetként, Ezáltal áramellátás lesz, az alábbi ábra szerint:
Tehát a sorban R1 magas.
Mostantól első esetben C1 magas, második esetben R1 magas, tehát a gomb mátrixpozíciója van, ezért az „egy”.
Ha megnyomja a második gombot, akkor C1 lesz oszlopunk, de a közös logika magas logikája 'R2' lesz. Tehát lesz C1 és R2, tehát a második gomb mátrixpozíciója lesz.
Így fogjuk megírni a programot, a billentyűzet nyolc érintkezőjét összekapcsoljuk a vezérlő nyolc érintkezőjével. A kezdéshez négy vezérlőtüzet táplálunk a billentyűzet négy sorának táplálásához, ekkor a másik négy csapot vesszük bemenetként. Amikor megnyomja a gombot, a megfelelő oszlopcsap felhúzva van, és így a vezérlő csapja felhúzódik, ezt felismerjük, hogy a bemenetet energiává és a bemeneti energiává változtassuk, így sorok lesznek bemenetként.
Ezzel megkapjuk a felhasználó által megnyomott gombot. Ez a mátrixcím a megfelelő számra irányul, és ez a szám megjelenik az LCD-n.
A billentyűzet és az AVR mikrovezérlő közötti interfész működését lépésről lépésre ismertetjük az alább megadott C kódban. Azt is ellenőrizheti, hogy a kezelő kapcsolódik-e a 8051 mikrovezérlőhöz.