Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metoda AK.doc
Скачиваний:
4
Добавлен:
17.11.2018
Размер:
1.44 Mб
Скачать

6). Алфавітно-цифрові клавіші.

Якщо INT 09h не знаходить спеціальних скан-кодів, то вона вирішує, що прийнятий скан-код належить алфавітно-цифровому символу ASCII. Для цих символів INT 09h перевіряє стан CapsLock. Далі INT 09h заносить в буфер як сам ASCII-символ, так і скан-код натиснутої клавіші. Це дає можливість прикладній програмі або зчитати ASCII-символ, або визначити натиснуту клавішу. Перед тим, як записати будь-що в буфер, INT 09h перевіряє чи є в ньому місце. Якщо місця недостатньо, то INT 09h повідомляє про це сигналом динаміка і завершує виконання без запису в буфер.

7). Спеціальні скан-коди.

Для деяких комбінації клавіш INT 09h створює власні скан-коди. При натисканні !/1 INT 09h в буфер заноситься 31h (ASCII-код) та скан-код 02h. Але при натисканні комбінації Alt-1 INT 09h заносить в буфер ASCII-код 00hта скан-код 78h (120). Значення 78h перевищує максимальну кількість клавіш на клавіатурі. Програма INT 09h перетворила цю комбінацію в спеціальний скан-код, так щоб прикладна програма могла швидко визначити комбінацію натиснутих клавіш. ASCII-код дозволяє прикладній програмі визначити, що наступний скан-код належить спеціальній комбінації клавіш. До інших комбінацій клавіш зі спеціальними скан-кодами належать Alt-Ctrl-Shift-функційні клавіші, Num-Lock-клавіші цифрової клавіатури, Shift-Tab.

Режими роботи контролера 8048 блоку клавіатури і його програмування

1) Режими роботи.

При роботі клавіатури розрізняють три режими роботи (1, 2 і 3) і відповідно три види формування прямих (код натискання) і зворотних (код відпускання) скан-кодів клавіш. 83-х клавішна клавіатура IBM PC/XT працює в режимі 1. 84-х клавішна клавіатура IBM PC/AT працює в режимі 2 (хоча на деяких 84-х клавішних клавіатурах є перемикач XT/AT, що переключає режими 1 і 2). 101-клавішная клавіатура може програмно переключатися в усі три режими.

Режим 1: Клавіатура генерує однобайтний код натискання (причому в старшому 7-ом розряді завжди 0) відповідний натиснутій клавіші і однобайтний код відпускання, що ідентичний коду натискання, але в сьомому розряді записана 1.

Режим 2: (встановлюється за замовчуванням на 101-клавішной клавіатурі). В цьому режимі 84-х клавішна клавіатура АТ генерує прямі однобайтні скан-коди, співпадаючі для ідентичних клавіш зі скан-кодами режиму 1 і двобайтні зворотні скан-коди (перший байт - префікс F0h, другий байт - код прямого скан-коду). В 101-клавішной клавіатурі додаткові клавіші генерують 2-х, 4-х і 6-ти байтні послідовності при натисканні цих клавіш і аналогічні послідовності, що мають префікс F0h при відпусканні клавіш. Так, наприклад, клавіша Del основної клавіатури має прямий скан-код 53h, а додаткова клавіша Del розширеної 101-клавішної клавіатури має двохбайтний прямий скан-код Е0 53h. Контролер клавіатури системної плати 8042 конвертує прямі і зворотні коди клавіш, співпадаючих з клавішами 84-х клавішної клавіатури в коди режиму 1. Конвертовані коди можна прочитати з порта 60h. Треба ще додати, що деякі комбінації клавіш (наприклад, Ctr+функціональні клавіші або Shift+функціональні клавіші) мають оригінальні скан-коди.

Режим 3. Використовується деякими прикладними програмами (комп'ютерними іграми), що інтенсивно використовують клавіатуру і не підтримується оброблювачем 9-го переривання. Кодування клавіш відрізняється від кодування в режимах 1 і 2. При натисканні нової клавіші видається однобайтний оригінальний скан-код, при відпусканні - до прямого скан-коду додається префікс F0h. Контролер 8042 системного блоку не конвертує скан-коди режиму 3.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]