Amikor elmegyünk választásokra szavazni, elektronikus szavazógépeket látunk. Ebben a projektben egy egyszerű szavazógépet tervezünk és fejlesztünk az ATmega32A mikrokontroller használatával. Bár használhatjuk a vezérlőt több mint 32 ember szavazógépének megszerzéséhez, minden egyszerűség kedvéért négy ember méretű szavazási rendszert fogunk készíteni. Négy gombunk lesz négy ember számára, és amikor egy gombot megnyomnak, egy a szavazás a megfelelő személyre vonatkozik, és az egyes emberek által megjelenített szavazatok száma megjelenik az LCD-n.
Szükséges alkatrészek
Hardver:
ATMEGA32
Tápegység (5v)
AVR-ISP PROGRAMOZÓ
JHD_162ALCD (16x2 LCD)
100nF kondenzátor (öt darab), 100uF kondenzátor (a tápegységen keresztül csatlakozik)
gomb (öt darab), 10KΩ ellenállás (öt darab).
Szoftver:
Atmel stúdió 6.1
progisp vagy flash varázslat.
Áramköri ábra és működési magyarázat
Amint az a fenti elektronikus szavazógép áramkörben látható, az ATMEGA32 mikrovezérlő PORTA csatlakozik a 16x2 LCD adatportjához. Itt nem szabad elfelejteni letiltani a JTAG kommunikációt az ATMEGA PORTC-já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), 3 vezérlőcsap (RS & RW & E).
Az áramkörben megfigyelheti, hogy csak két vezérlőcsapot vettem, mivel ez a jobb megértés rugalmasságát biztosítja. A kontrasztbitet és a READ / WRITE-t nem használják gyakran, í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 - föld
PIN2 vagy VDD vagy VCC - + 5v teljesítmény
PIN3 vagy VEE - föld (a legjobb kontrasztot nyújtja a kezdőknek)
PIN4 vagy RS (Register Selection) - az uC PD6-ja
PIN5 vagy RW (olvasás / írás) - földelés (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-je
PIN7 vagy D0 - PA0 az uC-től
PIN8 vagy D1 - u1 PA1
PIN9 vagy D2 - az uC PA2-je
PIN10 vagy D3 - uC PA3
PIN11 vagy D4 - az uC PA4-je
PIN12 vagy D5 - u5 PA5
PIN13 vagy D6 - az uC PA6-ja
PIN14 vagy D7 - az uC PA7-je
Az áramkörben látható, 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é bonyolulttá válik, ezért csak 8 bites kommunikációval mentem.
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ő. Öt gomb van itt, négy a jelöltek szavazatainak növelésére, az ötödik pedig a jelölt szavazatainak nullára állítására.
Az itt található kondenzátorok a gombok pattogó hatásának semmissé tételére szolgálnak. Ha eltávolítják őket, akkor a vezérlő a gomb minden egyes megnyomásakor többet is számlálhat. A csapokhoz kapcsolt ellenállások az áram korlátozására szolgálnak, amikor a gombot megnyomják a csap földre húzásához.
Amikor egy gombot megnyomnak, a vezérlő megfelelő csapja lehúzódik a földre, és így a vezérlő felismeri, hogy bizonyos gombot megnyomtak, és a megfelelő műveletet el kell végezni, ez növelheti a jelölt szavazatait vagy a szavazatok visszaállítását a megnyomott gombtól függően.
Amikor megnyomja a megfelelő személyt ábrázoló gombot, a vezérlő felveszi és növeli a megfelelő személyszámot a memóriájában a növekedés után, ez megmutatja a megfelelő személyek pontszámát a 16x2 LCD kijelzőn.
Ennek a mikrokontroller alapú elektronikus szavazógépnek a működését az alábbiakban részletesen ismertetjük a C kóddal,