русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Архитектура и принцип работы подсистемы клавиатуры. Назначение компонентов и возможности программирования

Клавиатура PC представляет собой унифицированное устройство со стандартным разъемом и последовательным интерфейсом связи с системной платой. В качестве датчиков нажатия клавиш применяют механические контакты, кнопки на основе токопроводящей резины, емкостные датчики и датчике на эффекте Холла. Независимо от типов применяемых датчиков нажатие клавиш, все они объединяются в матрицу. Клавиатура содержит внутренний контроллер осуществляющий сканирование матрицы клавиш, управление индикаторами, внутреннюю диагностику и связь с системной платой последовательным интерфейсом по линиям KB-Data и KB-Clock.
Существует 3 основных типа клавиатур: Клавиатура XT; Клавиатура AT; Расширенная клавиатура.

При нажатии клавиши клавиатура передает идентифицирующий ее скан-код – номер, идентифицирующий ее расположение на клавиатуре.. При удержании клавиши в нажатом положении через некоторое время начинается автоповтор передачи скан-кода нажатия этой клавиши. При отпускании клавиши клавиатура XT передает ее скан-код, увеличенный на 80h, а клавиатура AT передает 2 байта: в первом содержится пре фикс F0, во втором – скан-код.. Прием байта от клавиатуры вызывает аппаратное прерывание IRQ1 (вектор 9h).

Задание параметров автоповтора, выбор таблиц скан-кодов, управление светодиодными индикаторами, а также управление режимом сканирования матрицы клавиш и запуск диагностического теста осуществляется командами, посылаемыми центральным процессором в порт 60h. Перед посылкой команды необходимо убедится в готовности контроллера к их приему – бит 1 порта 64h должен иметь нулевое значение.
Клавиатура имеет поддержку со стороны BIOS: коды, принятые от клавиатуры, по аппаратному прерыванию IRQ1 (вектор 9h) обрабатываются, и результат для дальнейшей обработки может быть извлечен значительно позже. BIOS INT 9h обрабатывает прерывания, вызванные приходом кодов нажатия и отпускания клавиш, анализируя принятый скан-код с учетом состояния флагов и комбинаций клавиш альтерации Shift, Ctrl, Alt, CapsLock, NumLock. Результат обработки (ASCII-символ и скан-код) помещаются в буфер клавиатуры, расположенный в ОЗУ. В случае переполнения буфера очередное слово не записывается  и подается звуковой сигнал.

Кроме обычного способа, любой символ можно ввести в буфер с помощью Alt-набора. Для этого его код в десятичной системе набирается на цифровой клавиатуре при нажатой клавише Alt, результат заносится в буфер но отпускании Alt. При таком способе в буфер будет занесен нулевой скан код, что отличает Alt-набор от обычного.

Используемые ячейки BIOS DATA AREA: 0:0417, 0:0418 – флаги клавиатуры; 0:0419 – аккумулятор кода Alt-набора; 0:041A – 2-байтный указатель головы буфера; 0:041С – 2-байтный указатель хвоста буфера;
0:041Е –область кольцевого буфера (16 слов);
Программно-вызываемое прерывание BIOS 16 h представляет интерфейс прикладного уровня для клавиатуры. Его основное назначение – извлечение слов из клавиатурного буфера. Функция задается в регистре AH при вызове: 00h – чтение и выборка слова из буфера; 01h – проверка готовности, чтение без выборки; 02h – чтение состояния флагов; 03h – установка задержки и скорости автоповтора; 05h – запись слова в буфер.
Младший байт считанного слова содержит ASCII-символ, старший – скан-код.

Просмотров: 5977

Вернуться в оглавление:Шпаргалки по компьютеру




Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.