- •Методичні рекомендації і контрольні завдання до виконання лабораторних робіт
- •Лабораторна робота № 1
- •1. Теоретичні відомості
- •2. Порядок виконання лабораторної роботи.
- •3. Контрольні питання
- •Лабораторна робота №2
- •1. Теоретичні відомості
- •2. Порядок виконання лабораторної роботи.
- •3. Контрольні питання
- •Лабораторна робота № 3 Системні функції для роботи з пристроями вводу інформації в системах управління
- •1. Теоретичні відомості
- •1.1. Апаратна реалізація пристроїв введення інформації
- •1.2. Введення даних із клавіатури
- •1.3. Системна підтримка клавіатури
- •1.4. Контролер клавіатури
- •Призначення регістрів контролера клавіатури
- •2. Порядок виконання лабораторної роботи.
- •3. Контрольні питання
- •Лабораторна робота № 4
- •1. Теоретичні відомості
- •Значения бітів порта 61h
- •2. Порядок виконання лабораторної роботи.
- •3. Контрольні питання
- •Перелік літератури
- •Додаток а
- •Додаток б Короткий опис команд отладчика
- •Додаток в Використання лічильника тактів для визначення тактової частоти процесора [5]
- •Додаток г Засоби виводу на екран
- •Додаток з введення даних із клавіатури
- •Додаток е інтерфейс клавіатури
- •Додаток і Використання убудованого динамику
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 системної плати, займається програма основного процесора.