Saya merancang tombol di VHDL. Semuanya berfungsi dengan baik ketika hanya satu tombol yang ditekan. Saya memindai setiap kolom untuk menekan tombol di mesin keadaan dan ketika tidak ada tombol yang ditekan, yang merupakan kondisi pin4pin6pin7pin2 = "0000"saya beralih ke keadaan berikutnya untuk memindai kolom berikutnya. Jadi saya mengatur kolom pin3pin1pin5secara berurutan ke "001", "010"dan "100".
Saat memindai pin3pin1pin5sebagai "001"dan jika pin4pin6pin7pin2ini "0100"kemudian hanya "9" ditekan. Saya mendeklarasikan dalam VHDL pin4pin6pin7pin2sebagai input dan pin3pin1pin5sebagai port output. Ketika saya menekan 6 dan 9 pada saat yang sama pin6dan pin7sedang high. Tombol yang ditekan pertama dibaca, yang kedua diabaikan. Ketika saya menekan 3 dan 7 pada saat yang sama, yang pertama ditekan dengan beberapa ms sebelum menang dan tombol pertama dibaca, tombol kedua diabaikan, pin2dan pin4sedang high.
Inilah bagian yang sulit. Ketika saya menekan 4 dan 6 pada saat yang sama, saya berharap pin7akan hightetapi itu menjadi lowdan pin4pin6pin7pin2 = "0000", yang saya tidak mengerti bagaimana dan mengapa. Karena "0000"terdeteksi sebagai tidak ada tombol yang ditekan, mesin negara melompat dari negara ke negara. Sambil memegang 4 dan 6 jika seseorang mendorong dan meninggalkan 4 beberapa kali, itu terdeteksi sebagai 6 ditekan beberapa kali, yang merupakan bug besar . Saya akan senang jika Anda dapat membantu saya men-debug ini!
Hal yang sama terjadi dengan "1" dan "2", sama dengan "7" dan "8" hanya untuk tombol pada baris yang sama. Karena ini adalah proyek yang sedang berjalan saya tidak dapat menempatkan kode VHDL saya online :( Saya akan senang jika Anda dapat memberi saya tips untuk mengatasi ini!

Di bawah, saya tidak mengunggah kode saya ke papan tulis, tidak ada kode yang berjalan. Menghubungkan Pin5ke ground, satu tekan pada 1,2,4,5,7,8, *, 0 tidak menyalaPin3 LED tetapi jika saya menekan 6 dan kemudian 4 pada saat yang sama Pin3LED menyala dan Pin7LED masih menyala, tetapi ketika kode saya berjalan ini tidak terjadi. Mungkin saya menghubungkan sesuatu yang salah dan untungnya Pin7aktif, saya tidak tahu ...

Di bawah ini adalah skema papan keypad:


