Aina kun menemme äänestämään vaaleista, tulemme katsomaan sähköisiä äänestyskoneita. Suunnittelemme ja kehitämme tässä projektissa yksinkertaisen äänestyskoneen käyttämällä ATmega32A-mikrokontrolleria. Vaikka voimme käyttää ohjainta saadaksemme yli 32 henkilön äänestyskoneen, pidämme kaiken yksinkertaisena, mutta aiomme tehdä äänestysjärjestelmän neljälle henkilölle. Meillä on neljä painiketta neljälle henkilölle ja aina kun painiketta painetaan, ääni menee vastaavalle henkilölle ja jokaisen henkilön äänimäärä näytetään LCD-näytöllä.
Tarvittavat komponentit
Laitteisto:
ATMEGA32
Virtalähde (5v)
AVR-ISP-OHJELMOINTI
JHD_162ALCD (16x2 LCD)
100nF kondensaattori (viisi kappaletta), 100uF kondensaattori (kytketty virtalähteen yli)
painike (viisi kappaletta), 10KΩ vastus (viisi kappaletta).
Ohjelmisto:
Atmel-studio 6.1
progisp tai flash magic.
Piirikaavio ja selitys työstä
Kuten yllä olevassa elektronisessa äänestyskoneen piirissä näkyy, ATMEGA32-mikrokontrollerin PORTA on kytketty 16x2 LCD: n dataporttiin. Tässä on syytä muistaa poistaa JTAG-tiedonsiirto ATMEGA: n PORTC: sta vaihtamalla sulaketavuja, jos halutaan käyttää PORTC: ta normaalina tiedonsiirtoporttina. 16x2 LCD -näytössä on kaikkiaan 16 nastaa, jos taustavaloa on, jos taustavaloa ei ole, on 14 nastaa. Voidaan kytkeä päälle tai jättää taustavalon nastat. Nyt 14 nastat on 8 data nastat (7-14 tai D0-D7), 2 virtalähde nastat (1 & 2 tai VSS ja VDD tai GND ja + 5V), 3 rd pin kontrastin säätö (VEE-ohjaimet kuinka paksu merkkien pitäisi olla kuvassa), 3 ohjaintappia (RS & RW & E).
Piirissä voit havaita, että olen ottanut vain kaksi ohjaintappia, koska tämä antaa joustavuutta ymmärtää paremmin. Kontrastibittiä ja LUKU / KIRJOITA ei käytetä usein, joten ne voidaan oikosulkea maahan. Tämä asettaa LCD-näytön suurimmalle kontrastille ja lukutilaan. Meidän on vain hallittava ENABLE- ja RS-nastoja merkkien ja tietojen lähettämiseksi vastaavasti.
LCD-liitännät ovat alla:
PIN1 tai VSS - maadoitus
PIN2 tai VDD tai VCC - + 5v teho
PIN3 tai VEE - maa (antaa parhaan kontrastin parhaiten aloittelijalle)
PIN4 tai RS (Rekisterivalinta) - uC: n PD6
PIN5 tai RW (luku / kirjoitus) - maa (LCD-näytön asettaminen lukutilaan helpottaa viestintää käyttäjälle)
PIN6 tai E (käytössä) - uC: n PD5
UC: n PIN7 tai D0 - PA0
UC: n PIN8 tai D1 - PA1
U9: n PIN9 tai D2 - PA2
PIN10 tai D3 - u3: n PA3
U11: n PIN11 tai D4 - PA4
PIN12 tai D5 - u5: n PA5
UC: n PIN13 tai D6 - PA6
PIN14 tai D7 - uC: n PA7
Piirissä näet, että olemme käyttäneet 8-bittistä tiedonsiirtoa (D0-D7), mutta tämä ei ole pakollista. Voimme käyttää 4-bittistä tiedonsiirtoa (D4-D7), mutta 4-bittisellä viestintäohjelmalla tulee hieman monimutkainen, joten menin vain 8-bittisen tiedonsiirron kanssa.
Joten pelkästään yllä olevan taulukon havainnoinnista yhdistämme 10 LCD-nastaa ohjaimeen, jossa 8 nastaa on datanastoja ja 2 nastaa ohjausta varten. Tässä on viisi painiketta, neljä ehdokkaiden äänten lisäämiseksi ja viides tarkoittaa ehdokkaiden äänten nollaamista.
Tässä olevat kondensaattorit on tarkoitettu painikkeiden pomppimisvaikutuksen mitätöimiseen. Jos ne poistetaan, ohjain saattaa laskea useamman kuin yhden joka kerta, kun painiketta painetaan. Nastoja varten kytketyt vastukset on tarkoitettu virran rajoittamiseen, kun painiketta painetaan vetämään tappi maahan.
Aina kun painiketta painetaan, vastaava ohjaimen tappi vedetään maahan ja siten ohjain tunnistaa, että tiettyä painiketta on painettu ja vastaava suoritettava toimenpide, se voi lisätä ehdokkaiden ääniä tai palauttaa äänet painikkeen painamisesta riippuen.
Kun vastaavaa henkilöä edustavaa painiketta painetaan, ohjain poimii sen ja lisää vastaavan henkilön numeron muistiinsa lisäyksen jälkeen, kun se näyttää vastaavien henkilöiden pistemäärän 16x2 LCD-näytöllä.
Toiminnan tämän mikro perustuu sähköisen äänestyksen kone selitetään vaihe vaiheelta C koodia alas alla,