Скачиваний:
75
Добавлен:
11.02.2014
Размер:
226.3 Кб
Скачать

Министерство образования Украины

Национальный Технический Университет Украины

“Киевский Политехнический Институт”

Кафедра систем автоматизированного проектирования

ОТЧЕТ О ВЫПОЛНЕНИИ

Лабораторной работы № 1

ИССЛЕДОВАНИЕ КЛАВИАТУРЫ

по курсу

ТЕХНИЧЕСКИЕ СРЕДСТВА КОМПЬЮТЕРНЫХ

ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

Подготовил:Принял:

студент группы ДА-XXЗинченкоВ.Я.

XXXXX

2000

Задание

1.Аппаратные и программные средства ввода информации с клавиатуры.

Привести краткий обзор по следующим вопросам:

а) аппаратные средства персонального компьютера для ввода информации с клавиатуры,

б) анализ и преобразование скэн-кода;

в) ввод информации средствами MSDOS.

2.Спроектировать и реализовать в виде отдельных модулей следующие функции:

а) получение скэн-кодов нажатой и отжатых клавиш,

б) используя обращение к портам контролера, реализовать управлением задержки и частоты повторением имитации нажатой клавиши;

в) получить расширенный скэн-код клавиатуры при непосредственном обращении к буферу клавиатуры;

г) определить состояние клавиатуры, используя порты 0040:0017 и 0040:0018;

д) используя непосредственное обращение к буферу клавиатур, реализовать функцию имитирующую работу клавиатуры.

3.Используя средства BIOS, реализовать функции перечисленные в пунктах б), в), г) и д).

Провести сравнительную характеристику полученных реализаций.

4.Отчет должен содержать:

а) краткий обзор, тематика которого определена в пункте №1;

б) описание спроектированных модулей;

в) листинги разработанных программ,

г) выводы по работе.

ПРИМЕЧАНИЕ:

Все программные модули должны быть написаны на языке ASSEMBLER в режиме MASM. Передача параметров и возврат результатов должны соответствовать соглашениям, принятыми для языка С модели SMALL.

1.Аппаратные и программные средства ввода информации с клавиатуры.

а) аппаратные средства персонального компьютера для ввода информации с клавиатуры показаны на рис.1.

  • расположенная внутри клавиатуры однокристальная микроЭВМ Intel 8048;

  • адаптер клавиатуры;

  • системная шина и контроллер прерываний.

Адаптер клавиатуры включает схему программируемого параллельного интерфейса 8255, а также другие элементы, назначение которых - преобразование последовательного кода, поступающего от клавиатуры, в параллельный код. Результат хранится в порту A ППИ 8255 (адрес 60h). После записи информации в этот порт схема выдаёт сигнал на линию прерывания

IRQ1 контроллера прерываний. Он в свою очередь выдаёт прерывание int 9h, обработчик которого находится в BIOS.

Рис.1 Схема взаимодействия аппаратных средств ПК для ввода информации с клавиатуры.

б) анализ и преобразование скэн-кода.

Скэн-код, сгенерированный микроЭВМ клавиатуры 8048 через адаптер клавиатуры поступает в порт 60h. При этом коды нажатой и отжатой клавиш отличаются между собой значением старшего бита: 0 для нажатой и 1 для отжатой клавиши. Когда скэн-код записан в порт 60h, адаптер клавиатуры выдает сигнал подтверждения, уведомляя процессор клавиатуры о принятии кода. Далее вызывается обработчик прерывания 9h. Дальнейшая обработка зависит от типа нажатых клавиш. Shift-клавиши (Shift, Alt, Ctrl) и триггерные клавиши определяют состояние клавиатуры и соответствующим образом изменяют содержимое регистров состояния клавиатуры 0000:0417 и 0000:0418. Большинство же клавиш и их комбинации с Shift-клавишами - это клавиши с буферизацией расширенного кода. При их нажатии в специальный кольцевой буфер клавиатуры в памяти помещается двухбайтовый код или BIOS-код клавиши (комбинация ASCII-код - скэн-код). Аналогичные действия происходят и при нажатии т.н. функциональных клавиш. Так как им не соответствуют ASCII-символы, то в кольцевой буфер клавиатуры помещается комбинация вида (0 или т.н. префикс -- скэн-код ).

Особым образом обрабатывается нажатие некоторых других клавиш или их комбинаций:

PrintScreen - вызывается прерывание 5h;

Ctrl-Alt-Del - вызывается программа начальной загрузки;

Ctrl-Break - устанавливается флаг, сигнализирующий о желании пользователя прервать выполнение текущей программы.

Специальным образом обрабатывается также Alt-<ввод>.

Рассмотрим кратко структуру кольцевого буфера клавиатуры. Этот буфер занимает адресное пространство от 40:1Eh до 40:3Dh включительно. По адресу 40:1Ah находится указатель головы буфера, т.е. ячейки, с которой начинается заполнение буфера. По адресу 40:1Ch находится указатель хвоста буфера, который указывает на ячейку, в которую будет записан код нажатой клавиши. При заполнении буфера перемещается указатель хвоста. Буфер пуст, если указатели головы и хвоста равны. Для очистки буфера необходимо просто приравнять указатели головы и хвоста. С адреса 40:1Eh начинается непосредственно буфер. Именно в это адресное пространство записываются коды нажатых клавиш.

в) ввод информации средствами MS-DOS.

Для вызова функций MS-DOS используется прерывание INT 21h. Это прерывание служит главным входом большинства функций DOS. Программа, запрашивающая сервис DOS, должна подготовить всю необходимую информацию в регистрах и управляющих блоках, указать в регистре AH номер желаемой функции DOS и затем вызвать прерывание INT 21H. Существуют следующие функции для ввода символьной информации: