Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_лаб_ПЗСУ.doc
Скачиваний:
11
Добавлен:
07.02.2016
Размер:
483.84 Кб
Скачать

1.2. Введення даних із клавіатури

Натискання клавіші приводить до передачі від клавіатури до комп'ютера одного символу або послідовності символів (від двох до шести). При натисканні звичайних клавіш (алфавітно-цифровий або функціональних) передається тільки один байт, що містить скан-код. Послідовності генеруються для клавіш, що були відсутні в 84-кнопковій клавіатурі XT-типу, і складаються з кодових пар, причому кожна пара починається з коду E0h, а в другому байті передається скан-код. Послідовність з чотирьох байт (двох пар) передається в тому випадку, якщо натиснуто додаткову клавішу, що заміняє собою натискання визначеної послідовності звичайних клавіш. Специфічна послідовність із шести байтів генерується тільки в одному випадку − при натисканні клавіші Pause.

При відпусканні клавіші клавіатура також посилає в комп'ютер скан-код, але старший (знаковий) розряд коду при цьому встановлюється в одиницю. Відпускання клавіші, що видає пари кодів, можна відрізнити від натискання по другому символі пари (першим кодом у парі по колишньому є E0h, а в скан-кода при відпусканні буде встановлений старший розряд). При відпусканні додаткових клавіш генеруються дві пари кодів, але порядок цих пар є зворотним тому, що генерується при їхньому натисканні, і встановлені старші розряди скан-кодов. При відпусканні клавіші Pause клавіатура ніякої інформації в комп'ютер не передає.

Наприклад, при натисканні клавіші Пробіл виробляється код 39h, а при відпусканні − код B9h. При натисканні клавіші 1 на основній клавіатурі виробляється код 02h, а при відпусканні − код 82h; натискання клавіші 1 на цифровій клавіатурі породжує код 4Fh, а відпускання − код CFh. При натисканні правої клавіші Ctrl виробляється послідовність Е0, 1Dh, а при відпусканні − послідовність E0h, 9Dh. Натискання Insert породжує послідовність кодів E0h, 2Ah, EOh, 52h, а відпускання − послідовність EOh, D2h, E0h, AAh. Натискання клавіші Pause приводить до видачі послідовності Elh, 1Dh, 45h, Elh, 9Dh, C5h, a при відпусканні даної клавіші ніяких кодів не виробляється взагалі.

Внутрішній контролер клавіатури здатний визначити факти натискання і відпускання клавіш, при цьому можна натискати чергову клавішу, навіть утримуючи трохи раніше натиснутих. При натисканні клавіші клавіатура передає ідентифікуючий її скан-код. При утриманні клавіші в натиснутому положенні через якийсь час клавіатура починає автоповтор передачі скан-кода натискання цієї клавіші. Затримка автоповтора (Typematic Delay) і швидкість автоповтора (Typematic Rate) для клавіатур AT програмуються командами, що посилаються в контролер 8042. Розширена клавіатура дозволяє вибирати 1 з 3 наборів скан-кодов.

Завдання параметрів автоповтора, вибір таблиць скан-кодов, управління светодиодными індикаторами, а також управління режимом сканування матриці клавіш і запуск діагностичного тесту здійснюється коман-дами, що посилаються центральним процесором у порт 60h (див. інтерфейс клавіатури). Перед посилкою команди необхідно переконатися в готовності контролера до їхнього прийому - біт 1 порту 64h повинний мати нульове значення.

При початковому тестуванні POST у випадку помилки клавіатури виводиться повідомлення з можливою вказівкою скан-кода залипшей клавіші, що залипла. Крім традиційного стандартного виконання існують і інші варіанти клавіатур. Малогабаритні клавіатури портативних комп'ютерів інтегровані в загальний корпус, але часто ці комп'ютери мають рознімання для підключення звичайної зовнішньої клавіатури, працювати з якої все-таки зручніше. Деякі виробники оригінальних PC-сумісних комп'ютерів застосовують власні конструкції клавіатур, рознімань і навіть інтерфейсу (наприклад, Olivetty), що утрудняє їхню заміну. При відсутності підтримки виробником або постачальником це може привести до того, що в один момент комп'ютер може стати "валізою без ручки", оскільки механіка клавіш піддається зносу. Крім того, на клавіатури іноді проливають чай (або гірше того − солодку каву), що витримують далеко не всі конструкції. Існує безліч варіантів клавіатур по використовуваних датчиках, по відчуттях від натискання і по розташуванню клавіш. Маються різні эргономические варіанти: клавіатури, "разламывающиеся" на дві половини, що мають підкладки для рук і т.п. При великому обсязі клавіатурного введення на ці нюанси їсти зміст звернути увагу, оскільки неправильне положення рук оператора може приводити і до професійних захворювань. По відчуттю від натискання розрізняють клавіатури з "кликом" і без нього. "Клік" − це щиглик, що лунає при спрацьовуванні натиснутої клавіші. Щиглик може бути акустичним (це сильно дратує сусідів оператора по приміщенню) і механічним, що відчувається пальцями як подолання деякої межі пружності, після якого клавіша, що натискається, провалюється. У клавіатурах без кліка спрацьовування датчика відчути не вдається, і, якщо оператор не звик дивитися на екран, можливі пропуски символів або їхні помилкові повтори. Звичайно ж, вибір клавіатури − справа смаку користувача, але він визначається і фінансовими можливостями − ціни клавіатур можуть розрізнятися на порядок.

Скан-коды передаються від клавіатури в комп'ютер по фактах натискання і відпускання клавіш. При натисканні клавіші передається її скан-код - номер, що ідентифікує її розташування на клавіатурі. При відпусканні клавіші клавіатура XT передає її скан-код, збільшений на 80h, а клавіатура AT передає 2 байти: у першому утримується префікс FO, у другому − скан-код. Прийом байта від клавіатури викликає апаратне переривання IRQ1 (вектор 09h). Розширена клавіатура дозволяє вибирати 1 з 3 наборів скан-кодов, за замовчуванням установлюється Set#l - сумісний з XT і АТ-84. Скан-коды основної клавіатури наведені в додатку Д. Інтерпретацією скан-кода, що зчитується з порту 060h системної плати, займається програма основного процесора.