Pad kekunci adalah alat input yang banyak digunakan yang digunakan dalam pelbagai projek elektronik dan terbenam. Mereka digunakan untuk mengambil input dalam bentuk angka dan albhabet, dan memasukkannya ke dalam sistem untuk diproses lebih lanjut. Dalam tutorial ini kita akan menghubungkan pad kekunci matriks 4x4 dengan mikrokontroler 8051.
Pad Kekunci Matriks 4X4
Sebelum kita menghubungkan pad kekunci dengan mikrokontroler, pertama kita perlu memahami cara ia berfungsi. Pad kekunci Matrix terdiri daripada set butang Push, yang saling berkaitan. Seperti dalam kes kami, kami menggunakan papan kekunci matriks 4X4, di mana terdapat 4 butang tekan di setiap empat baris. Dan terminal butang disambungkan mengikut rajah. Pada baris pertama, satu terminal dari semua 4 butang tekan dihubungkan bersama dan satu lagi terminal 4 butang tekan mewakili setiap 4 lajur, sama berlaku untuk setiap baris. Oleh itu, kami mendapat 8 terminal untuk dihubungkan dengan mikrokontroler.
Pad kekunci antara muka dengan pengawal mikro 8051 (AT89S52)
Mula-mula kita perlu menyambungkan modul LCD untuk memaparkan data yang akan disalurkan melalui KEYPAD, jadi silakan baca artikel "Interfacing LCD dengan Mikrokontroler 8051" sebelum menghubungkan KEYPAD.
Seperti yang ditunjukkan dalam gambarajah litar di atas, untuk menghubungkan Pad Kekunci, kita perlu menyambungkan 8 terminal papan kekunci ke mana-mana port (8 pin) mikrokontroler. Seperti kita telah menghubungkan terminal keypad ke Port 1 of 8051. Setiap kali butang ditekan, kita perlu mendapatkan lokasi butang, artinya ROW a COLUMN no yang sesuai. Sebaik sahaja kami mendapat lokasi butang, kami dapat mencetak watak sesuai.
Sekarang persoalannya adalah bagaimana mendapatkan lokasi butang yang ditekan? Saya akan menerangkannya dalam langkah-langkah di bawah dan juga ingin anda melihat kodnya:
1. Mula-mula kita telah membuat semua baris ke tahap Logik 0 dan semua lajur ke tahap Logik 1.
2. Setiap kali kita menekan butang, lajur dan baris yang sesuai dengan butang itu akan dipendekkan dan menjadikan lajur yang sesuai ke tahap logik 0. Oleh kerana lajur itu disambungkan (dipendekkan) ke baris, yang berada pada tahap Logik 0. Oleh itu, kita mendapat lajur No. Lihat fungsi utama ().
3. Sekarang kita perlu mencari Row no., Jadi kita telah membuat empat fungsi yang sesuai dengan setiap lajur. Seperti mana-mana butang lajur satu ditekan, kami memanggil fungsi baris_finder1 (), untuk mencari baris no.
4. Dalam fungsi row_finder1 (), kami membalikkan tahap logik, artinya sekarang semua Baris adalah 1 dan lajur adalah 0. Sekarang Baris butang yang ditekan harus 0 kerana telah dihubungkan (dipendekkan) ke lajur yang butangnya ditekan, dan semua lajur berada pada 0 logik. Oleh itu, kami telah mengimbas semua baris untuk 0.
5. Oleh itu, setiap kali kita menemukan Row pada logik 0, itu adalah barisan butang yang ditekan. Jadi sekarang kita mempunyai kolom no (masuk langkah 2) dan baris no., Dan kita boleh mencetak no. butang itu menggunakan fungsi lcd_data.
Prosedur yang sama berlaku untuk setiap penekanan tombol, dan kami menggunakan saat (1), untuk terus memeriksa, apakah butang ditekan atau tidak.