Wann immer wir zur Wahl gehen, sehen wir elektronische Wahlgeräte. In diesem Projekt werden wir eine einfache Abstimmungsmaschine unter Verwendung des ATmega32A-Mikrocontrollers entwerfen und entwickeln. Obwohl wir den Controller verwenden können, um mehr als 32 Personen zu wählen, werden wir, um alles einfach zu halten, ein Abstimmungssystem für eine Größe von vier Personen erstellen. Wir werden vier Tasten für vier Personen haben und wann immer eine Taste gedrückt wird, a Die Abstimmung gilt für die entsprechende Person und die Anzahl der Stimmen, die jede Person auf dem LCD anzeigt.
Erforderliche Komponenten
Hardware:
ATMEGA32
Stromversorgung (5V)
AVR-ISP PROGRAMMER
JHD_162ALCD (16x2 LCD)
100nF Kondensator (fünf Stück), 100uF Kondensator (über die Stromversorgung angeschlossen)
Knopf (fünf Stück), 10KΩ Widerstand (fünf Stück).
Software:
Atmel Studio 6.1
Progisp oder Flash Magic.
Schaltplan und Arbeitserklärung
Wie in der obigen Schaltung für elektronische Abstimmungsmaschinen gezeigt , ist PORTA des ATMEGA32-Mikrocontrollers mit dem Datenport eines 16x2-LCD verbunden. Hier sollte man daran denken, die JTAG-Kommunikation in PORTC von ATMEGA durch Ändern der Sicherungsbytes zu deaktivieren, wenn man PORTC als normalen Kommunikationsport verwenden möchte. Bei 16x2-LCD-Bildschirmen gibt es insgesamt 16 Pins, wenn eine Hintergrundbeleuchtung vorhanden ist. Wenn keine Hintergrundbeleuchtung vorhanden ist, sind 14 Pins vorhanden. Man kann die Gegenlichtstifte mit Strom versorgen oder belassen. Nun in den 14 Stiften sind 8 Datenstifte (7-14 oder D0-D7), 2 Stromversorgungsstifte (1, 2 oder VSS & VDD oder GND & + 5 V), 3 rd Stift für die Kontraststeuerung (VEE-Kontrollen, wie dick sollten die Zeichen gezeigt), 3 Steuerstifte (RS & RW & E).
In der Schaltung können Sie beobachten, dass ich nur zwei Steuerstifte genommen habe, da dies die Flexibilität eines besseren Verständnisses gibt. Das Kontrastbit und READ / WRITE werden nicht oft verwendet, so dass sie gegen Masse kurzgeschlossen werden können. Dies versetzt das LCD in den höchsten Kontrast- und Lesemodus. Wir müssen nur die ENABLE- und RS-Pins steuern, um Zeichen und Daten entsprechend zu senden.
Die Verbindungen, die für LCD hergestellt werden, sind unten angegeben:
PIN1 oder VSS - Masse
PIN2 oder VDD oder VCC - + 5V Stromversorgung
PIN3 oder VEE - Boden (bietet maximalen Kontrast am besten für Anfänger)
PIN4 oder RS (Registerauswahl) - PD6 von uC
PIN5 oder RW (Lesen / Schreiben) - Masse (versetzt das LCD in den Lesemodus, erleichtert die Kommunikation für den Benutzer)
PIN6 oder E (Aktivieren) - PD5 von uC
PIN7 oder D0 - PA0 von uC
PIN8 oder D1 - PA1 von uC
PIN9 oder D2 - PA2 von uC
PIN10 oder D3 - PA3 von uC
PIN11 oder D4 - PA4 von uC
PIN12 oder D5 - PA5 von uC
PIN13 oder D6 - PA6 von uC
PIN14 oder D7 - PA7 von uC
In der Schaltung sehen Sie, dass wir 8-Bit-Kommunikation (D0-D7) verwendet haben, dies ist jedoch nicht obligatorisch. Wir können 4-Bit-Kommunikation (D4-D7) verwenden, aber mit 4-Bit-Kommunikation wird das Programm etwas komplex, so dass ich mich nur für 8-Bit-Kommunikation entschieden habe.
Aus der bloßen Beobachtung der obigen Tabelle schließen wir also 10 Pins des LCD an den Controller an, wobei 8 Pins Datenpins und 2 Pins zur Steuerung sind. Hier sind fünf Schaltflächen vorhanden, vier zum Erhöhen der Stimmen der Kandidaten und die fünfte zum Zurücksetzen der Stimmen der Kandidaten auf Null.
Die hier vorhandenen Kondensatoren dienen dazu, den Bouncing-Effekt von Tasten aufzuheben. Wenn sie entfernt werden, zählt der Controller bei jedem Drücken der Taste möglicherweise mehr als eine. Die für Stifte angeschlossenen Widerstände dienen zur Begrenzung des Stroms, wenn die Taste gedrückt wird, um den Stift auf Masse zu ziehen.
Immer wenn eine Taste gedrückt wird, wird der entsprechende Pin des Controllers auf Masse gezogen und somit erkennt der Controller, dass eine bestimmte Taste gedrückt wurde und entsprechende Maßnahmen ergriffen werden müssen. Je nach gedrücktem Knopf kann er die Kandidatenstimmen erhöhen oder die Stimmen zurücksetzen.
Wenn die Taste für eine entsprechende Person gedrückt wird, wählt der Controller sie aus und erhöht die entsprechende Personennummer in seinem Speicher. Nach dem Erhöhen wird die Punktzahl der entsprechenden Personen auf dem 16x2-LCD-Display angezeigt.
Die Funktionsweise dieser auf Mikrocontrollern basierenden elektronischen Abstimmungsmaschine wird im Folgenden Schritt für Schritt anhand des C-Codes erläutert.