Як працює клавіатура
Клавіатура є практично окремою комп'ютерною системою з мікропроцесором, що виконує спеціалізовані функції, і клавіатурною матрицею, через яку проходить електричний ланцюг, що забезпечує обмін даних між комп'ютером і консоллю. Здебільшого ми не замислюємося про те, як усе це працює. А тим часом це дуже цікавий процес.
Під кнопками клавіатури знаходиться набір електросхем. Це клавіатурна матриця. Чіп консолі має вхідний та вихідний порти. Горизонтальні матричні лінії X(0...4) підключені до вхідного порту, а вертикальні Y(0...5) - до вихідного. Крім того, всі горизонтальні лінії включені до джерела живлення +5В через резистори.
Всі клавіші клавіатури біля ноутбука знаходяться на перетині ліній матриці, і ланцюг під кожною кнопкою розімкнена (логічна одиниця). Коли відбувається натискання клавіші, вона натискає на перемикач, і горизонтальна і вертикальна лінії, що відповідають натиснутій кнопці, замикаються. Клавіатурний процесор по черзі встановлює кожної з вертикальних ліній логічний нуль і постійно сканує стан горизонтальних ліній матриці. Поки кнопки не натиснуті, значення напруги кожної горизонтальної лінії відповідає логічної одиниці. Як тільки зафіксовано механічне натискання, ланцюг замикається. Коли процесор «дійде» до потрібної вертикальної лінії і встановить на ній значення логічного нуля, рівень напруги на горизонтальній лінії також буде відповідати логічному нулю.
Коли пристрій виявляє, що ланцюг замкнувся, він фіксує натиснуту клавішу та пересилає комп'ютеру номер переривання та номер клавіші в матриці. Те саме відбувається, якщо натиснуту кнопку відпустити. Номери клавіш - скан-коди - знаходятьсяу таблиці кодів символів і зберігаються у постійній пам'яті процесора. Таблиця задана у схемі клавіатурної матриці і пов'язана з позначеннями лежить на поверхні кнопки.
Програма розпізнавання використовує ASCII-коди, а чи не скан-коди, т.к. однієї й тієї клавіші може відповідати кілька значень, коли вона, наприклад, натиснута разом з іншими кнопками.
Перетворення зі скан-коду в ASCII-код виконується програмно за допомогою модулів BIOS. Для використання кирилиці існують спеціальні драйвера, що входять до складу операційних систем.