Разделы презентаций


Программирование контроллера клавиатуры ПЭВМ

Содержание

Существует три основных способа программировании клавиатуры:Поддержка клавиатуры посредством функций BIOS.2. Работа с контроллером клавиатуры напрямую через порты.3. Программирование клавиатуры в Win32 API.

Слайды и текст этой презентации

Слайд 1Лекция

Программирование контроллера клавиатуры ПЭВМ

1. Основные принципы

функционирования клавиатуры
2. Прерывания и порты клавиатуры.

3.Символьные клавиши. Определение смысла нажатых клавиш
4. Процедура обслуживания клавиатуры в системе BIOS. Функции BIOS и операционной системы при работе с клавиатурой.
Лекция Программирование контроллера клавиатуры ПЭВМ   1. Основные принципы функционирования клавиатуры   2. Прерывания и

Слайд 2Существует три основных способа программировании клавиатуры:

Поддержка клавиатуры посредством функций BIOS.

2.

Работа с контроллером клавиатуры напрямую через порты.

3. Программирование клавиатуры в

Win32 API.
Существует три основных способа программировании клавиатуры:Поддержка клавиатуры посредством функций BIOS.2. Работа с контроллером клавиатуры напрямую через порты.3.

Слайд 3На сегодняшний день существует два основных типа клавиатуры: AT и

PS/2. Первый тин уже морально устарел и практически полностью вытеснен

стандартом PS/2. Кроме основных типов клавиатур существу­ют и другие устройства: USB и инфракрасные. Для поддержки клавиатуры используется интегрированный в системный чип контроллер (например, Intel 8042 или VIA 8242), одновременно поддержи­вающий и мышь PS/2.
На сегодняшний день существует два основных типа клавиатуры: AT и PS/2. Первый тин уже морально устарел и

Слайд 4По количеству клавиш клавиатуры можно разделить на:
1 клавиатуры XT

с 83 клавишами. Появились в 1981 году. Использовали 5-штырьковып разъем

DIN. Передача данных была организована по однонаправленному последовательному протоколу. На данный момент полностью устарели;
2 клавиатуры AT с 84—101 клавишами. Появились в 1984 году. Использует 5-штырьковым разъем DIN. Передача данных организована по двуна­правленному последовательному протоколу;
3 клавиатуры PS/2 с 84—101 клавишами. Появились а 1987 году. Использует 5-штырьковый разъем mini-DIN. Передача данных организована по двунаправленному последовательному протоколу;
4 современные клавиатуры PS/2 с 101 — 104 (или более) клавишами. Использует 6-штырьковыЙ разъем mini-DIN. Передача данных организован на по двунаправленному последовательному протоколу.
По количеству клавиш клавиатуры можно разделить на: 1 клавиатуры XT с 83 клавишами. Появились в 1981 году.

Слайд 5 1. Основные принципы функционирования клавиатуры.

Организация ввода данных

с клавиатуры. Буфер клавиатуры.

микропроцессор 8048 выполняет :

слежение за нажатиями

клавиш и передачи их состояния процессору.
самодиагностику (после включения питания компьютера),
проверку нажатия клавиш и противодребезговую защиту (что не позволяет воспринимать одну нажатую клавишу как две).
буферизацию до 20 нажатий клавиш, если центральный процессор не может их принять сразу.

Процедура ввода с клавиатуры системы BIOS в ПЗУ имеет собственный буфер. Буфер клавиатуры может содержать 20 символов, а буфер системы BIOS - только 15.

Блок клавиатуры не связывает с клавишами никаких конкретных значений. Вместо этого, блок клавиатуры идентифицирует клавишу по ее номеру или коду сканирования. Все клавиши имеют коды сканирования от 1 до 83.
1. Основные принципы функционирования клавиатуры.Организация ввода данных с клавиатуры. Буфер клавиатуры.микропроцессор 8048 выполняет :

Слайд 6При нажатии клавиши блок клавиатуры передает ее код сканирования

центральному процессору. Когда клавиша отпускается, клавиатура снова

передает ее код, но увеличенный на 128 (или шестнадцатеричное значение 80). Таким образом,
имеются различные коды для нажатия и освобождения клавиш.
Для работы с клавиатурой используются порты и прерывания. Когда выполняется какое-либо действие с клавишей(нажатие или освобождение), процессор клавиатуры обнаруживает его и запоминает в своем буфере. Затем, процессор клавиатуры формирует прерывание с номером 9. В ответ на прерывание служебная процедура системы BIOS в ПЗУ считывает код сканирования клавиши из порта клавиатуры (порт номер 96) и затем пересылает в порт клавиатуры команду очистить буфер процессора клавиатуры. Если системный блок не реагирует на прерывания клавиатуры, то коды сканирования накапливаются в буфере процессора клавиатуры,
Специальный код сканирования 255, шестнадцатеричное значение FF, используется блоком клавиатуры, для сообщения, что его буфер заполнен.
При нажатии клавиши блок клавиатуры передает ее код сканирования  центральному  процессору.  Когда  клавиша

Слайд 7Клавиатура выполняет еще и функцию повторения клавиши. Блок клавиатуры следит

за тем, сколько времени клавиша остается нажатой и формирует сигнал

повторения. Функция повторения распространяется на все клавиши блока клавиатуры.

Процедуры системы BIOS в ПЗУ могут распознавать отличие повторных нажатий клавиши от повторения сигнала удерживаемой в нажатом состоянии клавиши, путем анализа кодов сканирования освобожденной клавиши. Если для одной и той же клавиши получены два кода нажатой клавиши и между ними не было кода освобожденной клавиши, значит клавиша удерживается процедурами системы BIOS для подавления функции повторения тех клавиш, которым она не нужна, таких как, например,
клавиша смещения (shift).

Таким образом, Блок клавиатуры занимается физической стороной, механизмом функционирования клавиатуры, а программы системы BIOS в системном блоке выполняют все логические операции по интерпретации действий клавиатуры.
Клавиатура выполняет еще и функцию повторения клавиши. Блок клавиатуры следит за тем, сколько времени клавиша остается нажатой

Слайд 8 Каждый переданный компьютеру скан-код (числовое значение) обрабатывается и преобразовывается

в код ASCII, который и применяется для передачи смыслового содержания

нажатой клавиши. Скан-код для стандартной клавиатуры (84 клавиши) имеет размер 1 байт, а для расширенной — от 2 до 4 байтов. Чтобы отличить расширенный скан-код от обычного, в качестве первого байта всегда выступает значение E0h (например, код левой клавиши <Аlt> равен 38h, а правой — E0h,38h). Кроме уникального кода нажатия, каждая клавиша имеет свой код отпускания. Как правило, этот код состоит из двух байт, первый из которых всегда равен F0h. На расширенных клавиатурах коды отпускания имеют размер три байта, где первые два байта всегда равны EOh,FOh, а третий байт является последним байтом скан-кода нажатия.
Каждый переданный компьютеру скан-код (числовое значение) обрабатывается и преобразовывается в код ASCII, который и применяется для

Слайд 9 2.. Прерывания и порты клавиатуры.

Служебная процедура системы BIOS для прерывания 9 определяет смысл

каждого действия с клавиатурой. Это включает слежение за состоянием смещения кодов и преобразование нажатий клавиши в их значения, будь то буквы алфавита или сигналы функциональных клавиш.
Часть задачи обслуживания клавиатуры со стороны системы BIOS заключается в слежении за всеми возможными состояниями смещений. Состояния смещений довольно часто вызывают путаницу, поскольку клавиатура обычной пишущей машинки имеет всего одну клавишу смещения. Клавиатуры многих компьютеров, в том числе и IBM/PC, имеют три типа смещений.
Во-первых, имеются обычные функции клавиш, без всякого смещения (например, для получения букв в нижнем регистре).Затем имеется обычное смещение, которое служит для получения букв верхнего регистра и, как правило, всех знаков, нанесенных на верхнюю часть клавиши. Кроме того, имеются еще два вида смещения, изменяющее смещение ("ALT") и управляющее смещение ("CTRL"). Эти два специальных вида смещения используются аналогично обычному смещению в том смысле, что просто "а" не совсем тоже самое, что "А" в верхнем регистре, и Ctrl-A и Alt-A также имеют собственные значения.
2.. Прерывания и порты клавиатуры.      Служебная процедура системы BIOS для прерывания

Слайд 10На клавиатуре IBM/PC имеется четыре специальных"переключательных"

клавиши, которые действуют в качестве тумблера "включения-отключения" для определенных функций:

Insert (вставка), Caps-Lock (закрапление заглавныхбукв), Num-Lock (закрепление цифровой клавиатуры) и Scroll-Lock (закрепление«скроллинга"). Две из этих клавиш, Caps-Lock и Num-Lock,являются частью механизма смещения, а оставшиеся две управляют определенными специальными режимами работы.
Информация о состоянии этих четырех переключательных клавиш и том, удерживается ли в данный момент в нажатом состоянии одна из клавиш смещения, хранится в специально выделенной для этих целей области в нижних адресах оперативной памяти. Вся эта информация хранится в двух байтах с адресами 1047 и 1048 (или 417 и 418 шестнадцатеричных).
На клавиатуре  IBM/PC  имеется  четыре  специальных

Слайд 11Когда система BIOS получает код сканирования обычной клавиши, она проверяет

все варианты смещения и преобразует этот код в соответствующее значение,

которое может быть как символьным кодом ASCII, так и кодом специального назначения. Процедура обслуживания клавиатуры системы BIOS следит не только за состояниями смещения.
Состояние клавиатуры хранится в первых тринадцати битах указанных выше двух байт по адресу 1047. Ниже приведена таблица значений этих битов:

Когда система BIOS получает код сканирования обычной клавиши, она проверяет все варианты смещения и преобразует этот код

Слайд 13В этой таблице нашел отражение ряд интересных моментов. Во-первых, можно

отметить параллельность использования первых четырех битов обоих байтов для клавиш-переключателей.

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

Когда процедура обслуживания клавиатуры обрабатывает коды, принимаемые от клавиатуры, она постоянно проверяет появление одной из четырех особых комбинаций, которые обслуживаются специальным образом. Фактически, эти четыре комбинации рассматриваются как команды, по которым должно начинаться выполнение определенных служебных процедур. Эти четыре комбинации: Ctrl-NumLock, PrtSc, Ctrl-Alt-Del и Ctrl-Break.

В этой таблице нашел отражение ряд интересных моментов. Во-первых, можно отметить параллельность использования первых четырех битов обоих

Слайд 14Комбинация Ctrl-Alt-Del срабатывает всегда, когда работает процедура обслуживания клавиатуры.

Это условие может оказаться невыполненным в двух случаях. Первый и

наиболее распространенный связан с запретом прерываний.
Известно, что прерывания запрещаются машинной командой CLI и не обслуживаются пока не будет выдана команда STI. Обычно команда STI следует за командой CLI через очень короткий промежуток времени. Однако, если программа по ошибке, оставила прерывания запрещенными, то нажатие клавиш Ctrl-Alt-Del не приведет ни к какому результату.
Другая причина нарушения работы процедуры обслуживания клавиатуры может быть связана с изменением значения вектора прерывания от клавиатуры. Если изменить ячейки памяти с 36 по 39, в которых находится вектор прерывания от клавиатуры, тогда клавиатура не будет работать, в том числе и клавиши Ctrl-Alt-Del.
Комбинация  Ctrl-Alt-Del срабатывает всегда, когда работает процедура обслуживания клавиатуры. Это условие может оказаться невыполненным в двух

Слайд 15Комбинация Ctrl-Break предназначена для прерывания текущей операции. В

отличие от остальных трех специальных комбинаций она может отрабатываться программно.

Прерывание номер 27, шестнадцатеричное значение 1В, зарезервировано для процедуры, которая должна вызываться при нажатии клавиш Ctrl-Break. Если программа хочет использовать это средство, она должна занести адрес процедуры обслуживания прерывания в ячейки вектора прерывания 27 - ячейку с адресом 108, шестнадцатеричное значение 6С.

Если Вам все-таки необходимо более точно знать, что происходит с клавиатурой, Ваши программы могут подменить вектор прерываний для клавиатуры, который расположен по адресу 36, шестнадцатеричное значение 24. Если Вы разрабатываете собственную процедуру обслуживания прерываний от клавиатуры, то она может либо выполнять абсолютно все функции обслуживания, либо служить предпроцессором для стандартной процедуры системы BIOS. Предпроцессор может извлекать любую информацию, которая Вам необходима, и передавать управление стандартной процедуре для выполнения обычных действий.
Комбинация  Ctrl-Break  предназначена для прерывания текущей операции. В отличие от остальных трех специальных комбинаций она

Слайд 16 3.Символьные клавиши. Определение смысла нажатых клавиш

Коды сканирования клавиши преобразуются системой BIOS в расширенные

коды ASCII, состоящие из 256 возможных байтовых комбинаций, кроме одной (байт с нулевым значением). В этот набор кодов входят обычные символы, набор которых описывается в различных руководствах по IBM/PC.

Механизм кодирования, который система BIOS в ПЗУ использует для указания, какой символ был введен с клавиатуры( и определение того, обычный это символ или специальный),работает с двумя байтами. Если первый из двух байтов ненулевой, то введен символ расширенного кода ASCII и этот символ хранится в первом байте. Если же первый байт нулевой, то с клавиатуры введен специальный символ и его код хранится во втором байте.
3.Символьные клавиши. Определение смысла нажатых клавиш      Коды сканирования клавиши преобразуются системой

Слайд 18 4. Процедура обслуживания клавиатуры в системе BIOS. Функции BIOS

и операционной системы при работе с клавиатурой.

Процедуры обслуживания

клавиатуры в системе BIOS вызываются с помощью прерывания номер 22, шестнадцатеричное значение 16. Таких процедур всего три.

Первая процедура, имеющая код 0, возвращает очередной принятый от блока клавиатуры символ. Эта процедура возвращает управление вызывающей программе только тогда, когда будет введен символ, так что программе не приходится проверять, был ли действительно введен символ. Код обычного символа возвращается в регистре AL, но если содержимое AL равно нулю, то в регистре АН находится код специального символа. Эти регистры соответствуют первому и второму байтам, упоминавшимся выше, при рассмотрении кодов специальных символов.
4. Процедура обслуживания клавиатуры в системе BIOS. Функции BIOS и операционной системы при работе с клавиатурой.

Слайд 19Если введен обычныйкод АSCII (то есть, AL не равняется нулю),

то в регистре АН содержится код сканирования для нажатой клавиши.

Но, если код ASCII был введен с помощью клавиши "Alt", то в регистре АН будет ноль. Эту информацию программа может использовать
для определения способа вода символа.

Современные системы поддерживают следующие типы клавиатур:
84-кла-вишные, 102-клавишные и 122-клавишные. Каждая клавиша имеет свой скан-код, который обрабатывается BIOS при нажатии или отпускании.
Для поддержки 84-клавишных устройств используются только функции 00h, 01h и 02h.
Функции 10h, 11h и 12h поддерживают 83-клавишные и 102-клавишные устройства.
Функции 20h, 21h и 22h поддерживают все типы кла­виатур.
Если введен обычныйкод АSCII (то есть, AL не равняется нулю), то в регистре АН содержится код сканирования

Слайд 20Таблица 1. Список функций BIOS

Таблица 1. Список функций BIOS

Слайд 21После выполнения функции в регистр АН будет помещен скан-код BIOS

символа, а в регистр AL — ASCII-код символа. Стандартный набор

значений скан-кодов для клавиатуры представлен в табл. 2, а расширенный — в табл. 3. Кроме того, в табл. 4 представлены коды управляющих симво­лов ASCII.

Таблица 2. Скан-коды клавиатуры

После выполнения функции в регистр АН будет помещен скан-код BIOS символа, а в регистр AL — ASCII-код

Слайд 22Таблица..3. Коды для расширенной клавиатуры


Таблица..3. Коды для расширенной клавиатуры

Слайд 23Таблица.4. Управляющие символы ASCII

Таблица.4. Управляющие символы ASCII

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика