2.1. Взаимодействие клавиатуры с эвм.
Непосредственное управление работой ЭВМ оператор (пользователь) осуществляет с помощью клавиатуры и манипуляторов. Клавиатура предназначена для введения алфавитно-цифровой информации и управления графическим курсором. Работой клавиатуры управляет специальная электронная схема - контроллер клавиатуры [3,4]. В его функции входит распознавание нажатой клавиши и помещение закрепленного за ней кода в свой выходной регистр (порт), обычно с номером 60h.
Процесс взаимодействия ЭВМ с клавиатурой отображен на рис.2.1. Код клавиши, поступающий в порт, называется скан - кодом. Каждой клавише присвоено два скан-кода: код нажатия и код отпускания, больший на 80h. Кнопки основной части клавиатуры образуют матрицу контактов из 23 строк и 4 столбцов, что сокращает количество необходимых проводников и контактов микросхемы контроллера.
Рис.2.1. Взаимодействие клавиатуры с системой.
Нажатие и отпускание любой клавиши вызывает сигнал аппаратного прерывания, заставляющий процессор прервать выполняемую программу и перейти на программу обработки прерывания (ПОП) от клавиатуры INT09h (вектор прерывания имеет адрес 24h). Обработчик прерывания работает с двумя областями оперативной памяти: кольцевым буфером ввода, располагаемым по адресам от 40h:1Eh до 40h:3Dh, куда помещаются коды ASCII нажатых клавиш, и словом состояния (словом флагов) клавиатуры, находящимся по адресу 40h:17h, где фиксируется состояние управляющих клавиш (<Shift>, <Caps Lock>, <Num Lock>, и другие).
Если скан-код принадлежит одной из управляющих клавиш, и представляет собой код нажатия, то в слове флагов устанавливается в 1 бит (флаг), соответствующий нажатой клавише. Сброс флага происходит при отпускании такой клавиши.
При нажатии любой другой клавиши ее скан-код считывается из порта 60h и по таблице трансляции формируется двухбайтовый код, старший байт которого содержит скан-код, а младший - код ASCII, с учетом состояния слова флагов. Например, буквы Q и q находятся на одной клавише, и соответствующие им коды имеют вид: 1051h и 1071h.
Полученный в результате трансляции двухбайтовый код направляется в кольцевой буфер, который служит для синхронизации процессов ввода данных с клавиатуры и приема их выполняемой компьютером программой. Объем кольцевого буфера составляет 15 слов. Коды символов извлекаются из буфера в том порядке, в каком они в него поступали. Указатель начала содержит адрес первого из не считанных кодов, а указатель конца - адрес первой свободной ячейки буфера, куда будет записаны коды следующей нажатой клавиши. Совпадение содержимого указателей начала и конца соответствует опустошенности кольцевого буфера. При переполнении кольцевого буфера указатели не изменяются и ПОП формирует звуковой сигнал.
Пользовательские программы могут использовать программное прерывание INT 16h, предназначенное для работы с клавиатурой. Функции данного прерывание позволяют:
ожидать нажатия клавиши и считывать коды из кольцевого буфера, очищая эти ячейки (00h, 10h);
определять наличие (и коды) в кольцевом буфере не считанных кодов (01h, 11h);
получать состояние флагов клавиатуры (02h, 12h).
Прерывание DOS INT 21h тоже имеет несколько функций для обработки сигналов клавиатуры. Эти функции обеспечивают посимволь-ный ввод и обращение к клавиатуре, как к файлу.
- Введение.
- Общие принципы построения эвм и вычислительных систем.
- 2. Клавиатура и манипуляторы.
- 2.1. Взаимодействие клавиатуры с эвм.
- 2.2. Устройство и программирование манипулятора "мышь".
- 3. Видеосистемы.
- 3.1. Структура видеосистем.
- 3.2. Программирование видеосистем с помощью рограммных прерываний.
- 3.3. Прямое программирование видеосистем.
- 3.4. Мониторы.
- 4. Накопители информации на магнитных дисках
- 4.1. Структура накопителей информации на магнитных дисках
- 4.2. Физические принципы магнитной записи.
- Конструкция магнитных дисков.
- 4.4. Кодирование и сжатие записываемой информации
- 4.5. Программирование работы дисковых накопителей
- 5. Накопители цифровой информации типа cd-rom.
- 5.1. Общие сведения о накопителях цифровой информации типа cd-rom.
- 5.2. Структура каналов записи и чтения в системе cd.
- 5.3. Конструкция оптического блока.
- 5.4. Многофункциональные цифровые оптические
- 6. Модемы
- 6.2. Программирование модемов
- 7. Сетевые устройства.
- 7.1. Основные элементы сетей эвм
- Сетевые адаптеры
- Сетевое программное обеспечение.
- 8. Звуковые платы.
- 8.1. Структура зуковых плат
- 8.2. Программирование звуковых плат.
- 9. Устройства ввода изображений в эмв.
- Сканеры.
- 9.2. Программное обеспечение сканеров.
- 9.3. Фотокамеры и видеокамеры.
- 10. Принтеры.
- Устройство и принципы работы принтеров.
- Программирование принтеров.
- Многофункциональные измерительные платы.
- 11.1. Характеристики и структура измерительных плат.
- 11.2. Аналого-цифровые преобразователи.
- 11.3. Цифро-аналоговые преобразователи.
- 12. Цифровые системы связи и навигации.
- 12.1. Системы цифровой подвижной связи
- 12.2. Спутниковые системы связи
- 12.3. Спутниковые навигационные системы.
- Литература.