Keypads adalah perangkat input yang banyak digunakan yang digunakan dalam berbagai proyek elektronik dan tertanam. Mereka digunakan untuk mengambil input dalam bentuk angka dan albhabets, dan memasukkannya ke dalam sistem untuk diproses lebih lanjut. Dalam tutorial ini kita akan membuat antarmuka keypad matriks 4x4 dengan mikrokontroler 8.051.
Papan tombol Matriks 4X4
Sebelum kita menghubungkan keypad dengan mikrokontroler, terlebih dahulu kita perlu memahami cara kerjanya. Keypad matriks terdiri dari sekumpulan tombol Push yang saling berhubungan. Seperti dalam kasus kami, kami menggunakan keypad matriks 4X4, di mana ada 4 tombol tekan di masing-masing dari empat baris. Dan terminal tombol tekan terhubung menurut diagram. Pada baris pertama, satu terminal dari semua 4 tombol tekan dihubungkan bersama dan terminal lainnya dari 4 tombol tekan mewakili masing-masing dari 4 kolom, hal yang sama berlaku untuk setiap baris. Jadi kita mendapatkan 8 terminal untuk dihubungkan dengan mikrokontroler.
Antarmuka keypad dengan mikrokontroler 8051 (AT89S52)
Pertama kita perlu antarmuka modul LCD untuk menampilkan data yang akan diumpankan melalui KEYPAD, jadi silakan melalui artikel “Antarmuka LCD dengan Mikrokontroler 8051” sebelum menghubungkan KEYPAD.
Seperti yang ditunjukkan pada diagram rangkaian di atas, untuk antarmuka Keypad, kita perlu menghubungkan 8 terminal keypad ke port (8 pin) mikrokontroler. Seperti kita telah menghubungkan terminal keypad ke Port 1 dari 8051. Setiap kali tombol ditekan kita perlu mendapatkan lokasi tombol, berarti ROW dan COLUMN no. Setelah kami mendapatkan lokasi tombol, kami dapat mencetak karakter yang sesuai.
Sekarang pertanyaannya adalah bagaimana cara mendapatkan lokasi tombol yang ditekan? Saya akan menjelaskan ini pada langkah-langkah di bawah ini dan juga ingin Anda melihat kode:
1. Pertama kita telah membuat semua Rows to Logic level 0 dan semua kolom ke Logic level 1.
2. Setiap kali kita menekan tombol, kolom dan baris yang sesuai dengan tombol itu akan disingkat dan membuat kolom yang sesuai ke tingkat logika 0. Karena kolom itu menjadi terhubung (disingkat) ke baris, yang berada di tingkat Logika 0. Jadi kita mendapatkan kolom no. Lihat fungsi main ().
3. Sekarang kita perlu menemukan Baris no., Jadi kita telah membuat empat fungsi yang sesuai untuk setiap kolom. Seperti jika ada tombol dari kolom satu yang ditekan, kita memanggil fungsi row_finder1 (), untuk menemukan baris no.
4. Pada fungsi row_finder1 () kita membalikkan level logika, artinya sekarang semua Baris 1 dan kolom 0. Sekarang Baris yang ditekan tombol harus 0 karena sudah terhubung (disingkat) ke kolom yang tombolnya ditekan, dan semua kolom berada pada logika 0. Jadi kami telah memindai semua baris untuk 0.
5. Jadi setiap kali kita menemukan Row pada logika 0, berarti baris tersebut adalah tombol yang ditekan. Jadi sekarang kita memiliki kolom no (masuk langkah 2) dan baris no., Dan kita bisa mencetak no. tombol tersebut menggunakan fungsi lcd_data.
Prosedur yang sama mengikuti untuk setiap penekanan tombol, dan kami menggunakan while (1), untuk terus memeriksa, apakah tombol ditekan atau tidak.