Kami menggunakan Matrix Keypad sebagai input Hex Number Display dan LED Display sebagai output untuk menampilkan tombol/switch yang ditekan user pada input. Input yang dapat diberikan terbatas dari 1 - F dalam bilangan heksadesimal. Simulasi Hardware
LED Display : Output
untukmenunjukkan key mana yang sedangditekanpada input. Matrix Keypad: Input tombol untuk user menekan angka heksadesimal mana yg ingin ditampilkan
Program akan membaca input yang diberikan user dengan
menghubungkan switch pada Matrix Keypad. Input yang dapat diberikan disesuaikan dengan angka heksadesimal pada matrixkeypad yaitu 1 hingga F. Output program berupa LED display 7-segment yang akan menampilkan angka/huruf heksadesimal yang dimasukkan pada input.
CARA KERJA
Pada proses inisialisasi program, kami memakai look-up table
sebagaireferensipola bit untuk LED display danmenyalinalamatawal look-up table (dengan label LED) ke DPTR. Selainitu, register A di set #0FFH agar sebagai default input, serta register P0 diset #0H agar bisadipakaisebagai output.
Setelah program di inisialisasi, program langsung masuk ke subrutin BACK, yang
didalam subrutin ini, P1 diset #0FFH agar bisa dipakai sebagai input. Perintah CLR P1.0 menset port 1 bit 0 menjadi low agar baris pertama Matrix Display (1,2,3,A) menjadi low juga. Lalu perintah JB P1.4,NEXT1 ini bertindak sebagai kontrol dimana jika kolom pertama atau port 1 bit 4 itu low, maka key 1 telah ditekan dan akan pindah ke instruksi berikutnya yaitu MOV A,#0D. Jika tidak 0, maka program akan loncat ke NEXT2. Jika di NEXT2 port input yg dituju tidak low juga, maka akan loncat ke NEXT3 dan seterusnya hingga NEXT5 (karena heksadesimal ada 16 digit maka butuh 16 subrutin untuk menampilkan outputnya). Jika di NEXT5 port input yg dituju tidak low, maka akan loncat kembali ke BACK. Dan begitu terus.
Disetiap subrutin NEXT,
akan ada perintah ACALL DELAY, yaitu instruksi yang memanggil subrutin khusus untuk menampilkan angka yang sedangditekan di input. Ketika subrutin ini dijalankan, program akan mencari pola digit tampilan LED untuk angka yang sedang ditekan di look- up table dan setelah itu memindahkan pola digit tersebut ke register A, dan lalu dipindahkan lagi ke P0 sebagai output LED Display.
Gambar yang ada disamping merupakan look-up table
untuk tampilan LED. Jika kita ingin menampilkan angka 1, maka kita harus menset bit ke-5 dan ke-6 LED sehingga menjadi 0110000B, dan seterusnya.
CONTOH HASIL PROGRAM
Perhatikan bahwa di Matrix Keypad, tidak ada tombol E dan F. Sehingga, untuk menampilkan E di LED, user harus menekan tanda * dan jika ingin F, user harus menekan #