Cara kerja keyboard PC
Setiap kali salah satu tombol
keyboard ditekan atau dilepas, 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.
Gambar 1 menggambarkan scan code
masing-masing tombol keyboard PC. Terlihat pada gambar tersebut, scan
code tidak berupa kode ASCII yang biasa dipakai mewakili huruf , dan
ditentukan secara acak, juga. Sehingga setelah diterima host, scan
code harus dirubah menjadi kode ASCII dengan memakai cara ‘pencarian
tabel’.
Keyboard PC dan Scan
CoKomunikasi antar keyboard dan host adalah komunikasi dua arah,
keyboard mengirim scan code ke host, host bisa mengirim perintah
untuk mengatur kerja dari key board. Kode perintah untuk keyboard
tidak sebanyak scan code, berikut ini daftar kode printah untuk
keyboard (dalam heksadesimal) selengkapnya :
ED
perintah untuk menyala/padamkan lampu indikator di keyboard, setelah
menerima perintah ED dari host, keyboard akan menjawab dengan FA
sebagai tanda perintah itu telah dikenali (ACK – acknowlwdge) dan
menunggu 1 byte perintah lagi dari host untuk menentukan lampu
indikator mana yang perlu di-nyala/padam-kan. 1 byte perintah
susulan tersebut akan diartikan sebagai berikut : bit 0 dipakai untuk
mengatur lampu indikator Scroll Lock, bit 1 untuk Num Lock dan bit 2
untuk Caps Lock, bit-bit lainnya diabaikan.
EE
dipakai host untuk memeriksa apakah keyboard masih aktip. Setelah
menerima perintah EE dari host, keyboard akan menjawab dengan EE
pula, menandakan dirinya masih aktip.
F0
ada keyboard yang dilengkapi 3 set scan code, perintah ini dipakai
untuk memilih scan code yang ingin dipakai. Setelah menerima perintah
F0 dari host, keyboard akan menjawab dengan FA sebagai tanda perintah
itu telah dikenali (ACK – acknowlwdge) dan host menjawab 1 byte
lagi (nilainya 1 2 atau 3) untuk memilih set scan code. Jika byte
yang dikirimkan nilainya 0, keyboard akan menjawab dengan nomor set
scan code yang saat itu dipakai.
F3
dipakai untuk mengatur kecepatan tanggapan keyboard (Typematic Repeat
Rate), setelah menerima perintah F3 dari host, keyboard akan menjawab
dengan FA sebagai tanda perintah itu telah dikenali (ACK –
acknowlwdge) dan host menjawab 1 byte nilai kecepatan tanggapan
keyboard yang dikehendaki.
F4
dipakai untuk me-aktip-kan kembali keyboard, setelah menerima
perintah ini keyboard akan menjawab dengan FA (ACK – acknowlwdge).
F5
dipakai untuk me-nonaktip-kan keyboard, setelah menerima perintah ini
keyboard akan menjawab dengan FA (ACK – acknowlwdge).
FE
dipakai meminta keyboard mengirim ulang scan code terakhir yang
dikirim.
FF
Perintah untuk me-reset keyboard
Selain
perintah dari host, keyboard juga mempunyai kode-kode lain selain
scan code yang dikirimkan ke host, sebagai berikut :
FA berarti
ACK (acknowledge), yaitu jawaban dari keyboard bahwa perintah dari
host sudah dikenali dengan baik.
AA
berarti keyboard selesai memeriksa diri dan siap bekerja setelah
diberi catu daya
EE
lihat perintah EE di atas
FE
artinya minta host mengulang perintah terakhir yang dikirim
FF / 00
berarti terjadi kesalahan di keyboard
Tombol
Keyboard tidak berfungsi
0 komentar:
Posting Komentar