Скан-код кнопки

Номер клавіші, що посилається клавіатурним процесором, однозначно залежить від схеми клавіатурної матриці, але не від позначень, нанесених на поверхню клавіш. Цей номер називається скан-кодом (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 управляє як клавіатурою, при зміні вмісту старшого біта необхідно зберегти стан інших бітів цього порту. Для цього можна спочатку виконати читання вмісту порту в регістр, змінити стан старшого біта, потім виконати запис нового значення порту: