HOW KEYBOARD WORK
Sebuah keyboard seperti miniatur komputer. Keyboard
mempunyai prosesor sendiri dan rangkaian sirkuit yang membawa informasi menuju
dan dari prosesor tersebut. Bagian terbesar dari rangkaian keyboard berupa “key
matrix”. “key matrix” adalah sebuah kisi rangkaian dibawah tombol-tombol
keyboard. Di dalam keyboard, tiap rangkaiannya terputus (seperti saklar) pada
titik dibawah tiap tombol. Ketika kita menekan sebuah tombol, tombol tersebut
menekan sebuah saklar, menjadikan rangkaian tersambung dan mengalirkan arus
listrik melaluinya. Jika kita lama pada tombol, prosesor mengenalinya sama
dengan menekan tombol tersebut berulang-ulang.
Ketika prosesor menemukan rangkaian tertutup (tersambung
karena adanya penekanan tombol), maka prosesor akan membandingkan lokasi yang
rangkaian tertutup tersebut dengan peta karakter yang tersimpan dalam ROM (read
only memory) keyboard. Peta karakter pada dasar nya adalah tabel daftar
karakter yaitu daftar posisi tiap-tiap tombol atau kombinasi tombol beserta
karakter yang direpresentasikannya. Sebagai contoh, peta karakter memberitahu
prosesor bahwa menekan tombol “a” sendirian menghasilkan huruf kecil “a”,
tetapi tombol Shift bersama tombol “a” bersama-sama akan menghasilkan huruf
kapital “A”
Keyboard akan mengirim kode ke host (host adalah komputer
kalau keyboard dihubungkan ke PC, atau berupa mikrokontroler kalau keyboard
dihubungkan ke perlatan berbasis mikrokontroler). Kode tersebut dinamakan
sebagai scan code.
Scan code tombol ‘S’ adalah 1B (angka heksadesimal setara
dengan angka biner 00011011). Ketika tombol ‘S’ ditekan keyboard akan mengirim
1B, jika tombol ‘S’ ditekan terus maka keyboard akan mengirimkan 1B berikutnya
terus menerus, sampai ada tombol lain yang ditekan atau tombol ‘S’ tadi
dilepas.
Keyboard juga mengirim kode saat ada satu tombol yang
dilepas, kodenya adalah F0 (angka heksadesimal setara dengan angka biner
11110000), jadi kalau tombol ‘S’ tadi dilepas keyboard akan mengirim F0 dan 1B.
Kode-kode tersebut dikirim keyboard secara seri, artinya
dikirimkan satu bit demi satu bit. Misalnya 1B dikirimkan dengan cara :
mula-mula dikirim ‘1’, sesaat kemudian ‘1’ lagi dan menyusul ‘0’ sampai
akhirnya terkirim sebanyak 8 bit yang berbentuk 00011011 (dikirim mulai dari
bit yang paling kanan kemudian beregeser satu per satu sampai yang paling
kiri).
Masing-masing tombol punya scan code sendiri, termasuk
tombol ‘shift’, tombol ‘ctrl’ dan lain lain, jadi jika tombol ‘ctrl’ ditekan
bersama dengan ‘S’, maka scan code yang dikirim adalah 14 (scan code untuk
‘ctrl’) dan 1B (scan code untuk ‘S’). Terserah host untuk mengintepretasi scan
code itu sebagai apa, bearti merupakan tugas program dalam mikrokontroler untuk
mengenal scan code.
Scan code disusun sebagai kode 8 bit bisa dipakai untuk
membedakan 256 macam kode, sedangkan keyboard PC hanya punya 101 tombol, jadi
sesungguhnya kode 8 bit tadi cukup untuk semua tombol. Tapi tombol di
keyboard PC dikelompokkan menjadi 2 bagian, bagian utama dan bagian tambahan,
bagian utama cukup dinyatakan dengan scan code 1 byte saja, sedangkan bagian
tambahan diwakili dengan beberapa byte scan code yang selalu diawali dengan E0.
Misalnya tombol ‘ctrl’ kiri diwakili dengan 14 sedangkan tombol ‘ctrl’ kanan
diwakili dengan E0 14.
Data yang kita input akan diproses sebagai kode bilangan
biner. Setiap karakter dalam keyboard mewakili 8 angka biner, berikut adalah
beberapa kode bilangan biner:
Sumber:
- http://www.theskull.com/javascript/ascii-binary-list.html
- http://anistkj.blogspot.com/2012/03/cara-kerja-keyboard-pc.html
- http://www.zenith-india.com/zen/trainingmaterial/details/how_computer_keyboards_work.htm