Setiap kali kita pergi mengundi untuk pilihan raya, kita akan melihat mesin pengundian elektronik. Dalam projek ini kita akan merancang dan mengembangkan mesin pengundian sederhana dengan menggunakan mikrokontroler ATmega32A. Walaupun kami dapat menggunakan alat kawalan untuk mendapatkan mesin undi lebih dari 32 orang, untuk memastikan semuanya mudah, kami akan membuat sistem pengundian untuk empat orang. Kami akan mempunyai empat butang untuk empat orang dan setiap kali butang ditekan undi berlaku untuk orang yang sepadan dan jumlah suara yang ditunjukkan setiap orang di LCD.
Komponen Diperlukan
Perkakasan:
ATMEGA32
Bekalan kuasa (5v)
PENGURUSAN AVR-ISP
JHD_162ALCD (LCD 16x2)
Kapasitor 100nF (lima keping), kapasitor 100uF (disambungkan merentasi bekalan kuasa)
butang (lima keping), Perintang 10KΩ (lima keping).
Perisian:
Studio atmel 6.1
sihir progisp atau kilat.
Diagram Litar dan Penjelasan Kerja
Seperti yang ditunjukkan dalam rangkaian mesin pengundian elektronik di atas , PORTA mikrokontroler ATMEGA32 disambungkan ke port data LCD 16x2. Di sini kita harus ingat untuk mematikan komunikasi JTAG di PORTC ATMEGA dengan menukar bait fius, jika seseorang ingin menggunakan PORTC sebagai port komunikasi biasa. Dalam LCD 16x2, terdapat 16 pin di atas semua jika ada lampu belakang, jika tidak ada lampu belakang akan ada 14 pin. Seseorang boleh menghidupkan atau meninggalkan pin lampu belakang. Sekarang dalam 14 pin terdapat 8 data pin (7-14 atau D0-D7), 2 pin bekalan kuasa (1 & 2 atau VSS & VDD atau GND & + 5V), 3 rd pin untuk kawalan kontras (VEE-kawalan berapa tebal watak-watak perlu ditunjukkan), 3 pin kawalan (RS & RW & E).
Di litar, anda dapat melihat bahawa saya hanya mengambil dua pin kawalan kerana ini memberikan fleksibiliti pemahaman yang lebih baik. Bit kontras dan BACA / MENULIS tidak sering digunakan sehingga boleh dipendekkan ke tanah. Ini meletakkan LCD dalam mod kontras dan baca tertinggi. Kita hanya perlu mengawal pin ENABLE dan RS untuk menghantar watak dan data yang sesuai.
Sambungan yang dilakukan untuk LCD diberikan di bawah:
PIN1 atau VSS - tanah
PIN2 atau VDD atau VCC - + 5v kuasa
PIN3 atau VEE - ground (memberikan kontras maksimum terbaik untuk pemula)
PIN4 atau RS (Pemilihan Daftar) - PD6 dari uC
PIN5 atau RW (Baca / Tulis) - tanah (meletakkan LCD dalam mod baca memudahkan komunikasi untuk pengguna)
PIN6 atau E (Dayakan) - PD5 dari uC
PIN7 atau D0 - PA0 dari uC
PIN8 atau D1 - PA1 dari uC
PIN9 atau D2 - PA2 dari uC
PIN10 atau D3 - PA3 dari uC
PIN11 atau D4 - PA4 dari uC
PIN12 atau D5 - PA5 dari uC
PIN13 atau D6 - PA6 dari uC
PIN14 atau D7-- PA7 dari uC
Di litar anda dapat melihat bahawa kami telah menggunakan komunikasi 8bit (D0-D7) namun ini bukanlah suatu yang wajib. Kita boleh menggunakan komunikasi 4bit (D4-D7) tetapi dengan program komunikasi 4 bit menjadi sedikit rumit jadi saya hanya menggunakan komunikasi 8 bit.
Oleh itu, dari pemerhatian dari jadual di atas, kita menyambungkan 10 pin LCD ke pengawal di mana 8 pin adalah pin data dan 2 pin untuk kawalan. Terdapat lima butang di sini, empat untuk menambah undi calon dan yang kelima adalah untuk menetapkan semula undi calon menjadi sifar.
Kapasitor yang ada di sini adalah untuk membatalkan kesan butang yang memantul. Sekiranya mereka dikeluarkan, pengawal mungkin mengira lebih dari satu setiap kali butang ditekan. Perintang yang disambungkan untuk pin adalah untuk menghadkan arus, apabila butang ditekan untuk menarik pin ke tanah.
Setiap kali butang ditekan, pin pengawal yang sesuai ditarik ke tanah dan oleh itu pengawal menyedari bahawa butang tertentu ditekan dan tindakan yang sesuai yang harus diambil, ia mungkin meningkatkan suara calon atau menetapkan semula suara bergantung pada butang yang ditekan.
Apabila butang yang mewakili orang yang sesuai ditekan, pengawal memilihnya dan menambah nombor orang yang sesuai di dalam ingatannya setelah kenaikan itu menunjukkan skor orang yang sesuai pada paparan LCD 16x2.
Cara kerja mesin pengundian elektronik berasaskan mikrokontroler ini dijelaskan dalam langkah demi langkah kod C di bawah,