Аппаратное обеспечение IBM PC


         

Приведем фрагмент программы, составленной на


Приведем фрагмент программы, составленной на языке ассемблера, проверяющий состояние очереди команд процессора 8042:

..........

mov cx,0 ; счетчик для ограничения времени ; ожидания готовности 8042

wait_loop:

; читаем порт состояния процессора 8042

in al,64h and al,00000010b ; флаг готовности

; ожидаем готовность процессора 8042

loopnz wait_loop ; к приему команды ..........

После того, как программа дождется готовности процессора 8042, она может послать ему команду, записав ее в порт с адресом 60h:

..........

mov al,cmd ; команда для 8042 out 60h ,al ; вывод команды в 8042

..........

Некоторые команды состоят более чем из одного байта. Остальные байты команды необходимо записать в порт 60h, предварительно убедившись в готовности процессора 8042 с помощью последовательности команд, приведенной выше. В большинстве случаев можно также использовать простую временную задержку:

..........

mov al, cmd_byte1 out 60h, al

mov cx, 2000h

wait_loop: loop wait_loop

mov al, cmd_byte2 out 60h, al ..........

Мы приведем формат двух команд процессора 8042, имеющих отношение к работе с клавиатурой - команду установки задержки и периода автоповтора и команду управления светодиодами, расположенными на клавиатуре.

Для установки характеристик режима автоповтора в порт 60h необходимо записать код команды 0F3h, затем байт, определяющий характеристики режима:

Биты Значение

0-4 Период автоповтора:

0 - 30.0; 0Ah - 10.0; 1 - 26.7; 0Dh - 9.2; 2 - 24.0; 10h - 7.5; 4 - 20.0; 14h - 5.0; 8 - 15.0; 1Fh - 2.0.

Период автоповтора определяет количество посылок скан-кода, генерируемых процессором клавиатуры в одну секунду. Можно использовать не только те значения, которые приведены выше, но и промежуточные, например, 9 или 15h.

5-6 Задержка включения режима автоповтора:

00 - 250 мс; 01 - 500 мс; 10 - 750 мс; 11 - 1000 мс.

7 Зарезервировано, должно быть равно 0.

Первоначально при инициализации системы период задержки для включения режима автоповтора устанавливается модулями BIOS равным 500 мс при периоде автоповтора, равном 10 повторам в секунду. Если это слишком медленно для вас, вы можете установить другие значения. Некоторые прикладные программы, например, текстовый процессор Microsoft Word, содержат средства для управления временными характеристиками клавиатуры.


Содержание  Назад  Вперед