Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Клавиатура персональных ЭВМ.docx
Скачиваний:
3
Добавлен:
09.12.2018
Размер:
717 Кб
Скачать
☆

Принцип действия клавиатуры

Клавиатура – клавишное устройство управления персональным компьютером. Служит для ввода алфавитно-цифровых (знаковых) данных, а также команд управления.

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

Стандартная клавиатура имеет более 100 клавиш, функционально распределенных по нескольким группам:

  • Алфавитно-цифровые клавиши;

  • Функциональные клавиши;

  • Служебные клавиши;

  • Клавиши управления курсором.

Физически клавиатура и процессор связаны только двумя проводами, контролер процессора сканирует переключатели клавиш и при нажатии на любую клавишу по этим двум проводам передается уникальный скан-код размером один байт. Когда скан-код попадает в процессор инициализируется аппаратное прерывание IRQ 9(Interrupt 9, Int9). Скан-код анализируется процессором и преобразуется в код символа. Далее полученный код символа помещается в небольшую область памяти, известную как буфер клавиатуры. Введенный символ хранится в буфере клавиатуры до тех пор, пока его не заберет оттуда та программа, для которой он и предназначался, например текстовый редактор или текстовый процессор. Если символы поступают в буфер чаще, чем забираются оттуда, наступает эффект переполнения буфера. В этом случае ввод новых символов на некоторое время прекращается. На практике в этот момент при нажатии на клавишу мы слышим предупреждающий звуковой сигнал и не наблюдаем ввода данных.

Если скан-код принадлежит одной из управляющих клавиш, и, к тому же, представляет собой код нажатия, в байте флагов клавиатуры устанавливается бит (флаг), соответствующий нажатой клавише. Например, при нажатии правой клавиши <Shift> в байте флагов устанавливается бит 0, при нажатии левой клавиши <Shift> - бит 1, при нажатии любой клавиши <Ctrl> - бит 2 и т.д. Биты флагов сохраняют свое состояние, пока клавиши (по одиночке или в любых комбинациях) остаются нажатыми. Если управляющая клавиша отпускается, программа int09h получает скан-код отпускания и сбрасывает соответствующий бит в байте флагов. Кроме состояния указанных клавиш, в байте флагов фиксируются еще режимы <Scroll Lock>, <Num Lock>, <Caps Lock> и <Insert>.

При нажатии обычной, не управляющей клавиши, программа int09h3 считывает из порта 60h ее скан-код нажатия и по таблице трансляции скан-кодов в коды ASCII формирует двухбайтовый код, старший байт которого содержит скан-код, а младший код ASCII. При этом если скан-код характеризует клавишу, то код ASCII определяет закрепленный за ней символ. Поскольку за каждой клавишей закреплено, как правило, не менее двух символов ("а" и "А", "1" и "!", "2" и "@" и т.д.), то каждому скан-коду соответствуют, как минимум, два кода ASCII. В процессе трансляции программа int09h анализирует состояние флагов, так что если нажата, например, клавиша Q (скан-код 10h, код ASCII буквы Q - 51h, а буквы q -71h), то формируется двухбайтовый код 1071h, но если клавиша Q нажата при нажатой клавише <Shift> (смена регистра), то результат трансляции составит 1051h. Тот же код 1051h получится, если при нажатии клавиши Q был включен режим <Caps Lock> (заглавные буквы), однако при включенном режиме <Caps Lock> и нажатой клавише <Shift> образуется код 1071h, поскольку в такой ситуации клавиша <Shift> на время нажатия переводит клавиатуру в режим нижнего регистра (строчные буквы).