Скан-код кнопки
Номер клавіші, що посилається клавіатурним процесором, однозначно залежить від схеми клавіатурної матриці, але не від позначень, нанесених на поверхню клавіш. Цей номер називається скан-кодом (Scan Code). Слово scan ("сканування"), наголошує на тому, що клавіатурний комп'ютер сканує клавіатуру для пошуку натиснутої клавіші.
КодAscii натиснутої клавіші
Зазвичай потрібний програмі не порядковий номер натиснутої клавіші, а код, що відповідає позначенню на цій клавіші (код ASCII).
Код ASCII не пов'язаний безпосередньо зі скан-кодом, тому що одній і тій же клавіші можуть відповідати декілька значень коду ASCII залежно від стану інших клавіш. Наприклад, клавіша з позначенням "1" використовується ще й для введення символу "!" (якщо вона була натиснута разом із кнопкою ).
Тому всі перетворення скан-коду в ASCII код виконуються програмно. Як правило, в операційній системі MS-DOS ці перетворення виконують модулі BIOS. Для використання символів кирилиці ці модулі розширюються клавіатурними драйверами як входять до складу локалізованих версій MS-DOS, так і створеними у вигляді окремих програм.
Режим автоповтору
Якщо натиснути і не відпускати клавішу, клавіатура перейде в режим автоповтору. При цьому в комп'ютер автоматично через деякий період часу, що називається періодом автоповтору, надсилається код натиснутої клавіші. Режим автоповтору полегшує введення великої кількості однакових символів з клавіатури.
Слід зазначити, що клавіатура містить внутрішній буфер 16-байт, через який вона здійснює обмін даними з комп'ютером.
Типи клавіатур
Донедавна існували три різні типи клавіатури. Це клавіатура для комп'ютерів IBM PC/XT, 84-клавіатура для IBM PC/ATта 101-клавішна (розширена) клавіатура для IBMPC/AT. Деякі клавіатури мають перемикач режиму роботи (XT/AT), розташований на нижній кришці. Він має бути встановлений у правильне положення.
Після того як операційна система Microsoft Windows набула широкого поширення, спеціально для неї було створено новий тип клавіатури. До звичайної клавіатури типу IBMPC/AT були додані дві кнопки, перша з яких дублює виклик меню Start, який виконується за допомогою лівої клавіші миші, а друга – виклик того ж меню за допомогою правої клавіші миші.
Порти для роботи з клавіатурою
Призначення портів, призначених для роботи з клавіатурою, залежить від типу комп'ютера.
Комп'ютерIbm pc/xt
Порт 60h доступний лише для читання. Після виконання цієї операції він містить скан-код останньої натиснутої кнопки.
Порт 61h доступний як для читання, так і для запису. Він керує не лише клавіатурою, а й іншими пристроями комп'ютера, наприклад, роботою вбудованого динаміка. Якщо у старшому біті порту 61h записати значення 1, клавіатура буде заблокована, якщо 0 - розблокована.
Оскільки порт 61h управляє як клавіатурою, при зміні вмісту старшого біта необхідно зберегти стан інших бітів цього порту. Для цього можна спочатку виконати читання вмісту порту в регістр, змінити стан старшого біта, потім виконати запис нового значення порту: