Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб.ПУ №1,2...doc
Скачиваний:
146
Добавлен:
16.11.2018
Размер:
13.54 Mб
Скачать
  1. Правила работы с манипулятором типа «Мышь»

Инициализация (открытие) последовательного порта.

Перед началом работы с последовательным портом необходимо:

- инициализировать минимум четыре регистра UART 8250;

- два регистра делителя скорости обмена;

- регистр управления линии;

- регистр разрешения прерывания.

Делитель скорости обмена – это число, на которое надо разделить частоту системных часов (1190000 Гц), чтобы получить желаемую скорость обмена. Чем больше делитель, тем меньше скорость обмена. Старший байт делителя засылается в регистр 3F9H, а младший – в 3F8.

Таким образом, при инициализации порта необходимо выполнить действия.

Установка скорости обмена:

1 «1» в 7-й разряд порта 3FB;

2 Старший байт делителя в порт 3F9;

3 Младший байт делителя в порт 3F8.

Инициализация регистра управления линией:

1 «0» в 7-й разряд порта 3FB;

2 Установка битов с 0 по 4 в соответствии с протоколом обмена (например, код 1B).

3 «0» в регистр разрешения прерывания – 0 в порт 3F9.

Получение координаты X «Мыши» можно с помощью программы на языке Ассемблера.

MOV DX, 201H; адрес игрового порта в DX.

OUT DX, AL; посылаем в порт произвольное значение и обнуляем его разряды с «0» по 3.

MOV AH, «1» в регистр AH.

MOV SI, «0»; очищаем счетчик.

NEXT:IN AL, DX; читаем из порта в регистр AL.

TEST AL, AH; проверяем наличие «1» в бите «0».

JE FINISHED; выход, когда бит «0» в «1».

INC SI; иначе – плюс «1» к счетчику.

LOOP NEXT; переход на начало цикла.

FINISHED: в SI находится координата X.

Проверка состояния нажатой клавиши «Мыши».

Эти операции можно выполнить с помощью программы Ассемблера.

  1. Исследование возможностей манипулятора с помощью программы test.Exe.

Запустить с помощью «Мыши» программу TEST.EXE: подвести курсор «Мыши» к имени программы и нажать левую кнопку.

На экране отражается меню программы, поле подсказки Message, поле позиции курсора «мыши» и поле граничных значений координат Range.

Записать границы изменения координаты X, Y «Мыши».

9.1 Работа с мышью в пункте Movement/Pixel.

Этот режим служит для установки чувствительности «Мыши», определяемой перемещаемой по оси X или Y «Мыши», которые нужно выполнить пользователю, чтобы на экране курсор переместился на одну графическую точку (пиксель) по соответствующей оси.

В поле подсказки выводится сообщение:

Motion/Pixel ratio – движение/пиксель соотношения.

(Default/ Value X=8, Y=16) – значение по умолчанию.

New Ratio: X =, Y = – новое соотношение.

Ввести с дополнительной клавиатуры новые значения чувствительности, например X=300, Y=600, выйти из режима нажатием любой клавиши и проанализировать влияние установленных значений на качество работы «Мыши».

Для ввода новых значений повторно с помощью «Мыши» выбрать этот режим.

Повторить действия для 2-х, 3-х значений чувствительности и сделать вывод.

9.2 Работа в пункте Set Cursor Pos.

Этот пункт позволяет задать позицию для курсора «Мыши».

В поле подсказки выводится сообщение и ожидается ввод позиции курсора по X и Y.

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

9.3Работа в пункте Set X Range.

В этом пункте можно установить границы перемещения по оси X на экране.

В поле подсказки выводится сообщение:

Define Range of cursor Location - определить границу положения курсора.

Maximum = Minimum =

Scope: 0 (min) – 639 (max)

Размах

Ожидается ввод новых границ.

Ввести новые границы, выйти из режима нажатием любой клавиши и проанализировать их влияние на перемещение курсора «Мыши».

Работа в пункте Text Cursor.

На экране изображается таблица символов расширенного кода ASSCI. Курсором «Мыши» выбрать символ для изображения курсора. Выйти из режима и проанализировать изменения курсора «Мыши».

Выйти из программы нажатием любой клавиши.