Dalam tutorial ini kita akan menggunakan pad kekunci 4x4 (16 kekunci) dengan mikrokontroler ATMEGA32A. Kami tahu bahawa papan kekunci adalah salah satu peranti input terpenting yang digunakan dalam projek elektronik. Pad kekunci adalah salah satu kaedah termudah untuk memberikan arahan atau arahan kepada sistem elektronik.
Komponen Diperlukan
Perkakasan: ATMEGA32, bekalan kuasa (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), kapasitor 100uF, kapasitor 100nF, perintang 10KΩ (8 keping).
Perisian: Atmel studio 6.1 atau Atmel studio 6.2, progisp atau flash magic.
Diagram Litar dan Penjelasan Kerja
Dalam litar PORTB ATMEGA32 disambungkan ke LCD port data. Di sini kita harus ingat untuk mematikan komunikasi JTAG di PORTC atau 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), dan 3 pin kawalan (RS & RW & E).
Di litar, anda dapat melihat bahawa saya hanya mengambil dua pin kawalan, ini memberi kelenturan, 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 ke pembumian
PIN2 atau VDD atau VCC untuk +5v kuasa
PIN3 atau VEE ke ground (memberikan kontras maksimum terbaik untuk pemula)
PIN4 atau RS (Daftar Pilihan) ke PD6 uC
PIN5 atau RW (Baca / Tulis) ke tanah (meletakkan LCD dalam mod baca memudahkan komunikasi untuk pengguna)
PIN6 atau E (Aktifkan) ke PD5 uC
PIN7 atau D0 hingga PB0 dari uC
PIN8 atau D1 hingga PB1 dari uC
PIN9 atau D2 ke PB2 dari uC
PIN10 atau D3 hingga PB3 dari uC
PIN11 atau D4 ke PB4 dari uC
PIN12 atau D5 hingga PB5 dari uC
PIN13 atau D6 hingga PB6 dari uC
PIN14 atau D7untuk PB7 dari uC
Di litar anda dapat melihat bahawa kami telah menggunakan komunikasi 8bit (D0-D7) namun ini bukan suatu yang wajib, kami dapat menggunakan komunikasi 4bit (D4-D7) tetapi dengan program komunikasi 4 bit menjadi sedikit rumit. 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.
Sekarang mari kita bincangkan tentang pad kekunci, pad kekunci hanyalah kekunci berbilang. Butang disambungkan dalam bentuk multipleks untuk mengurangkan penggunaan pin sistem kawalan.
Anggaplah kita mempunyai papan kekunci 4x4, di papan kekunci ini kita mempunyai 16 butang, dalam kes biasa kita memerlukan 16 pin pengawal untuk antara muka 16 butang, tetapi ini tidak baik dari sudut pandang sistem kawalan. Penggunaan pin ini dapat dikurangkan dengan menghubungkan butang dalam bentuk multiplex.
Sebagai contoh anggap kita mempunyai 16 butang dan kita ingin memasangnya ke alat kawalan untuk membentuk papan kekunci, kekunci ini disusun seperti yang ditunjukkan dalam gambar:
Butang ini dihubungkan oleh lajur biasa seperti yang ditunjukkan pada gambar:
Seperti yang ditunjukkan dalam gambar, hujung yang tidak ditandai dari setiap empat butang diseret untuk masuk membentuk lajur, dan untuk 16 kekunci, kita mempunyai empat lajur.
Sekiranya kita lupa sambungan lajur di atas, dan menghubungkan hujung bertanda umum dari setiap empat butang bersama-sama untuk membentuk satu baris:
Seperti yang ditunjukkan dalam gambar, untuk 16 kekunci kita akan mempunyai empat baris seperti yang ditunjukkan dalam gambar.
Sekarang apabila mereka berdua dilihat bersama, kita mendapat sesuatu seperti litar di bawah:
Di sini kita telah menyambungkan 16 kekunci dalam bentuk multiplexed untuk mengurangkan penggunaan pin pengawal. Jika dibandingkan dengan casing pertama 16 kunci yang disambungkan, kita memerlukan 16 pin pada pengawal tetapi sekarang setelah multiplexing kita memerlukan hanya 8 pin pengawal untuk menyambungkan 16 kekunci.
Biasanya inilah yang ditunjukkan di dalam pad kekunci:
Seperti yang ditunjukkan dalam gambar di atas terdapat 16 kekunci di papan kekunci di atas dan setiap kekunci ini mewakili butang dalam konfigurasi butang berbilang. Dan juga terdapat sambungan 8 pin seperti yang ditunjukkan dalam gambar di atas yang melambangkan sambungan multiplexed.
Sekarang untuk bekerja:
Pad kekunci di sini mempunyai empat lajur dan empat baris, untuk mengenal pasti butang ditekan, kita akan menggunakan kaedah rujukan silang. Di sini pertama kita akan menghubungkan semua lajur atau semua baris ke vcc, jadi jika baris disambungkan ke vcc biasa, kita akan menjadikan lajur sebagai input kepada pengawal.
Sekarang jika butang ditekan seperti yang ditunjukkan dalam gambar:
Selepas itu arus mengalir melalui litar seperti yang ditunjukkan dalam gambar di bawah:
Oleh itu, kita mempunyai tinggi C1, untuk menekan butang. Pada masa ini, kita akan mengalihkan port daya dan input iaitu, kita akan menghidupkan lajur dan mengambil baris sebagai input, Oleh itu, akan ada aliran daya seperti yang ditunjukkan pada gambar di bawah:
Jadi untuk baris pertama kita mempunyai R1 tinggi.
Sampai sekarang kita memiliki tinggi C1 dalam kasus pertama dan tinggi R1 dalam kasus kedua, jadi kita memiliki kedudukan matriks tombol maka angka "satu".
Sekiranya butang kedua ditekan, kita akan mempunyai C1 sebagai lajur tetapi logik tinggi yang kita dapat dalam lajur yang sama adalah 'R2'. Jadi kita akan mempunyai C1 dan R2, oleh itu kita akan mempunyai kedudukan matriks butang kedua.
Ini adalah bagaimana kita akan menulis program, kita akan menghubungkan lapan pin papan kekunci ke lapan pin pengawal. Sebagai permulaan, kami menghidupkan empat pin pengawal untuk menghidupkan empat baris papan kekunci, pada masa ini empat pin lain diambil sebagai input. Apabila butang ditekan, pin lajur yang sesuai ditarik ke atas dan pin pengawal ditarik ke atas, ini akan dikenali untuk mengubah input menjadi kuasa dan kuasa untuk memasukkan, jadi kita akan memiliki baris sebagai input.
Dengan ini kita mendapat butang ditekan oleh pengguna. Alamat matriks ini diarahkan ke nombor yang sesuai, dan nombor ini ditunjukkan pada LCD.
Cara kerja antara muka pad kekunci dengan mikrokontroler avr dijelaskan langkah demi langkah dalam kod C yang diberikan di bawah. Anda juga boleh menyemak: pad kekunci dengan 8051 mikrokontroler.