
- •2.2. Контроллер клавиатуры
- •2.3. Скэн-Коды
- •2.4. Интерфейс контроллера клавиатуры
- •2.5. Подключение клавиатуры
- •2.6. Драйвер клавиатуры
- •2.7. Обработка скэн-кодов, вывод символов на экран
- •Программа kbdscan
- •Программа kbdascii
- •2.8. Лицевая панель клавиатуры
- •2.9. Конструкция клавиш
- •2.10. Виды клавиатур, эргономические требования
- •Литература
2.5. Подключение клавиатуры
Обычно для подключения клавиатуры используется спиралевидный кабель длиной около 1 м, имеющий DIN-разъем. Обычно на клавиатуре имеется 6-контактный разъем, а на материнской плате 6-полюсное гнездо. Эти разъемы называются разъемами Mini DIN или разъемами PS/2 (рис. 5). Назначение контактов такого разъема представлено в табл. 4.
Рис. 5. 6-контактный Mini DIN разъем для подключения клавиатуры
Таблица 4
Сигналы 6-контактного разъема клавиатуры
№ контакта |
Сигнал |
Назначение |
1 |
Линия данных (KB Data) |
Вход/Выход |
2 |
Не подключен |
Резерв |
3 |
Корпус |
Вход |
4 |
+ 5В |
Вход |
5 |
Тактовая частота (KB Clock) |
Выход |
6 |
Не подключен |
Резерв |
2.6. Драйвер клавиатуры
Для того чтобы экран отображал символ, действительно набранный на клавиатуре, и, прежде всего, если вы вводите с помощью англоязычной клавиатуры русские буквы и специальные символы, необходим драйвер клавиатуры, который обычно является составной частью любой операционной системы. Драйвер клавиатуры операционной системы называется KEYB.COM. Вы можете инициализировать этот драйвер в любое время, набрав в командной строке
Keyb Ru <Enter>,
где дополнительный параметр RU означает русский язык и обозначает соответствующий набор символов, которые должна использовать операционная система. Целесообразно поместить эту командную строку в файл AUTОEXEC.BAT. В этом случае драйвер каждый раз будет загружаться автоматически. Если загружать драйвер клавиатуры через стартовый файл CONFIG.SYS, нужно занести в этот файл следующую строку:
Install = Keyb.Com Ru.
Для операционной системы неважно, какими буквами набрана команда. Драйвер клавиатуры загружается в память компьютера резидентно, т. е. в процессе работы компьютера он постоянно находится в памяти.
Альтернативой обычным драйверам клавиатуры, входящим в операционную систему, являются драйвера, разрабатываемые некоторыми фирмами. Сюда относится, например, драйвер KBD.COM, занимающий всего лишь 300 байтов в основной памяти. Эти драйверы имеют преимущество, важное для резидентных программ, – они занимают намного меньше места, чем обычный драйвер DOS.
2.7. Обработка скэн-кодов, вывод символов на экран
Современные компьютеры позволяют управлять скоростными характеристиками клавиатуры, а также зажигать или гасить светодиоды Scroll Lock, Num Lock и Caps Lock, расположенные на лицевой панели клавиатуры. Для расширенного управления клавиатурой применяется порт 60h в режиме записи. Этот порт служит для управления процессором Intel 8042, который отвечает за обмен данными с центральным процессором, установленным на системной плате компьютера. При использовании порта 60h на запись программа дополнительно получает следующие возможности:
– установка времени ожидания перед переходом клавиатуры в режим автоповтора;
– установка периода генерации скэн-кода в режиме автоповтора;
– управление светодиодами, расположенными на лицевой панели клавиатуры.
Приведем формат двух команд процессора 8042, имеющих отношение к работе с клавиатурой, – команду установки задержки и периода автоповтора и команду управления светодиодами, расположенными на клавиатуре. Для установки характеристик режима автоповтора в порт 60h необходимо записать код команды 0F3h, затем байт, определяющий характеристики режима. Ниже вы найдете описание полей байта режима автоповтора.
Биты |
Описание |
0 – 4 |
Период автоповтора, который определяет количество посылок скэн-кода, генерируемых процессором клавиатуры в одну секунду. Можно использовать не только те значения, которые приведены ниже, но и промежуточные, например 9 или 15h. 0 30.0 1 26.7 2 24.0 4 20.0 8 15.0 0Ah 10.0 0Dh 9.2 10h 7.5 14h 5.0 1Fh 2.0 |
5 – 6 |
Задержка включения режима автоповтора, мс: 00 250 01 500 10 750 11 1000 |
7 |
Зарезервировано и должно быть равно нулю |
Первоначально при инициализации системы BIOS устанавливает период задержки для включения режима автоповтора 500 мс при периоде автоповтора, равном 10 повторам в секунду. Если это слишком медленно, то можно установить другие значения. Для управления светодиодами, расположенными на лицевой панели клавиатуры, используйте команду 0EDh. Вслед за этой командой в порт 60h необходимо записать байт, имеющий следующий формат.
Биты |
Описание |
0 |
1 – включить светодиод Scroll Lock 0 – выключить светодиод Scroll Lock |
1 |
1 – включить светодиод Num Lock 0 – выключить светодиод Num Lock |
2 |
1 – включить светодиод Caps Lock 0 – включить светодиод Caps Lock |