
- •2.2. Контроллер клавиатуры
- •2.3. Скэн-Коды
- •2.4. Интерфейс контроллера клавиатуры
- •2.5. Подключение клавиатуры
- •2.6. Драйвер клавиатуры
- •2.7. Обработка скэн-кодов, вывод символов на экран
- •Программа kbdscan
- •Программа kbdascii
- •2.8. Лицевая панель клавиатуры
- •2.9. Конструкция клавиш
- •2.10. Виды клавиатур, эргономические требования
- •Литература
Программа kbdscan
Для демонстрации использования функции 00h прерывания INT 16h ниже приведена программа, выводящая на экран скэн-коды и коды ASCII нажимаемых клавиш.
Листинг:
#include <stdio.h>
#include <dos.h>
int main(void)
{
union REGS rg;
for(;;)
{
// Вызываем прерывание INT 16h
rg.h.ah = 0;
int86(0x16, &rg, &rg);
// Выводим на экран содержимое регистров AH и AL,
// содержащих, соответственно, скэн-код и код ASCII
// нажатой клавиши
printf("\nScan = %02.2X Ascii = %02.2X",
rg.h.ah, rg.h.al);
// Если была нажата клавиша ESC, завершаем работу
// программы
if(rg.h.ah == 1)
break;
}
return 0;
}
Программа kbdascii
Программа KBDASCII отображает на экране коды ASCII и расширенные коды ASCII нажимаемых клавиш.
Листинг:
#include <conio.h>
#include <ctype.h>
#include <stdio.h>
int main(void)
{
int key;
// Читаем в цикле символы с клавиатуры и отображаем
// коды ASCII нажатых клавиш.
// Выходим из цикла, когда пользователь нажимает
// клавишу <Esc>
{for(;;)
// Читаем символ
key = getch( );
// Если прочитанный символ равен 0, вызываем функцию
// getch для получения расширенного
// кода ASCII нажатой клавиши
{ if((key == 0) || (key == 0xe0))
key = getch();
printf("Extended code ASCII:\t"); }
else
printf( "Code ASCII:\t");
printf("%d\n", key);
// Когда пользователь нажимает клавишу
// <Esc>, выходим из цикла
if(key == 27)
break;}
return 0;}
2.8. Лицевая панель клавиатуры
Общий вид клавиатуры изображен на рис. 5. В клавиатуре MFII функциональные клавиши, как и некоторые специальные, находятся в самом верхнем ряду клавиатуры.
Рис. 5. Клавиатура
Функциональные клавиши (верхний ряд клавиатуры) при работе программного обеспечения выполняют определенные функции, которые не одинаковы для различных программ. Нажатие <F4> может привести при выполнении одной программы обработки текста к запоминанию документа, а при выполнении другой – к стиранию строки, в которой находится курсор. Все же в большинстве программ соблюдается некоторый стандарт использования функциональных клавиш. С помощью <F1> во всех приложениях можно вызвать окно помощи. Нажатие <Esc> всегда означает выход из текущего меню или конец выполнения программы. Клавиша <PrintScreen> позволяет скопировать содержание дисплея на подключенное печатающее устройство (принтер). Клавиша <ScrollLock> функционирует как переключатель. Она позволяет включить или выключить функцию прокрутки экрана. При нажатии этой клавиши загорается световой индикатор, расположенный рядом с ней. Нажимая на клавишу <Pause>, вы останавливаете работу всей системы. PC только тогда продолжит работу, когда вы нажмете любую другую клавишу.
Алфавитно-цифровая область клавиатуры напоминает пишущую машинку и объяснение большинства клавиш излишне, т. к. здесь находятся буквы от A до Z и цифры от 0 до 9. Первыми шестью буквенными клавишами слева вверху на американской клавиатуре являются <Q>, <W>, <E>, <R>, <T>, <Y>. Поэтому часто подобную топологию клавиатуры называют клавиатура типа QWERTY. Клавиатура содержит специальные клавиши. Клавиша <Tab> перемещает курсор вправо на заданную величину табуляции. Комбинация клавиш <Shift> + <Tab> обеспечивает табуляцию влево. Клавиша <Shift> служит для перевода клавиатуры в режим ввода прописных букв алфавита. Клавиша <CapsLock> переводит клавиатуру в режим постоянного ввода прописных букв. Когда клавиатура находится в этом режиме, то при нажатой клавише <Shift> можно вводить строчные буквы. Клавиша <Backspace> служит для стирания символа слева от курсора. Клавиша <Del> стирает символ в позиции курсора. Клавиши <Alt> и <Ctrl> используются часто вместе для перевода языка, а также применяются и в других сочетаниях клавиш. Самой важной клавишей является <Enter>, выполняющая сразу несколько функций. В операционной системе она служит для завершения ввода командной строки, а в программе обработки текста предназначена для окончания ввода строки.
Блок управления курсором содержит 10 клавиш, служащих для управления курсором (рис. 6).
Рис. 6. Клавиши блока управления курсором
Клавиша <Insert> определяет режим ввода. Она служит обычно для переключения режима вставки или замены при обработке текста. Клавишей <Delete> можно удалять выделенные объекты. Клавиши <Home>, <End> служат для перемещения курсором на экране или в файле в начало или конец строки. Клавиши <Page Up>, <PageDown> перемещают курсор на страницу вверх или страницу вниз. Почти все клавиши цифрового блока имеют двойное значение. Переключение осуществляется с помощью клавиши <NumLock> (рис. 7).
При нажатии этой кнопки загорается соответствующий индикатор LED, и клавиши выполняют функцию ввода чисел. При повторном нажатии клавиши выполняют функцию управления курсором.
Рис. 7. Цифровой блок