Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)


 

 

 

 



Разъемы для подключения манипулятора



Манипулятор связан линиями последовательной асинхронной связи с одним из разъемов адаптера (COM 1) последовательных портов. Для связи с адаптером используются три линии в одном направлении и три линии в другом: Д – линия данных, 3ПР – линия запроса передачи, ГТ – линия готовности (Рисунок.8).

Данные передаются последовательным кодом в виде посылки. Формат посылки представлен на рис. 3. Длина посылки может быть равной 8, 7, 6 и 5 бит с контролем или без контроля на нечетность (четность) и количеством строковых битов равным 1, 1.5 и 2.

Рисунок 8

 

Адаптер установлен в разъем системного канала базовой платы ПЭВМ.

Основу адаптера составляет микросхема универсального асинхронного приемника – передатчика (Universal Asynchronous Receiver Transmitter или UART 8250 фирмы Intel).

Операционная система может поддерживать два порта коммуникаций (COM 1, COM 2), поэтому адаптер содержит две микросхемы UART.

Микросхема 8250 имеет десять программируемых однобайтовых регистра для контроля и управления последовательным портом. Доступ к этим регистрам осуществляется через семь портов с адресами 3F8H ¸ 3FTH. Доступ к регистрам с 1-го по 5-ый зависит от установки бита 7 в регистре управления линии.

1 3F8 (OUT, бит 7 = «0» в 3FBH) – регистр хранения передатчика.

2 3F8H (IN, бит 7 = «0» в 3FBH) – регистр данных приемника.

3 3F8H (OUT, бит 7 = «1» в 3FBH) – делитель скорости обмена (младший).

4 3F9H (IN, бит 7 = «1» в 3FBH) – делитель скорости обмена (старший).

5 3F9H (OUT, бит 7 = «0» в 3FBH) – регистр разрешения прерывания.

6 3FAH (IN) – регистр идентификации прерывания.

7 3FBH (OUT) – регистр управления линии.

8 3FDH (IN) – регистр статуса линии.

 

Формат регистра управления линии

биты: «1», «0» – длина символа: «00» – 5 бит, «01» – 6 бит, «10» – 7 бит, «1»1 – 8 бит;

2 – число стоп-битов: «0» = 1; «1» = 1.5, если длина символа равна 5, иначе 2;

3 – четность: «1» генерируется бит четности, «0» = нет;

4 – тип четности:0=нечетная, «1» = четная;

5 – фиксация четности: заставляет бит четности всегда быть «0» или «1». «0» = отмена, «1» =в сегда «1», если бит 3 = «1» «&» ,бит 4 = «0» или «1» = всегда «0», если бит 3 = «1» «&» бит 4 =»1» или «1» = нет четности, если бит 3 = «0»;

6 установка перерыва: вызывает вывод строки нулей в качестве сигнала отдаленной станции «0» = запрещено, «1»=перерыв;

7 меняет адреса портов других регистров.

Обычно биты 5 – 7 сброшены в «0». Остальные описывают значения, определяемые протоколом обмена.

IBM PC AT имеет игровой порт 201Н, который может поддерживать две мыши. Порт сообщает координаты X и Y и состояние двух кнопок.

 

Назначение битов порта 201H

бит «0» координата X «Мыши» А

1 координата Y «Мыши» А

2 координата X «Мыши» B

3 координата Y «Мыши» B

4 кнопка 1 «Мыши» A

5 кнопка 2 «Мыши» A

5 кнопка 1 «Мыши» B

5 кнопка 2 «Мыши» B

Координата описывается одним битом, т.к. задается временным интервалом от момента обнуления порта 201Н до появления «1» в соответствующем бите. Этот интервал программным путем с помощью счетчика преобразуют в цифровой код координаты.

Если в одном из разрядов с 4 по 7 есть «1», это означает, что соответствующая кнопка нажата.

Состояние кнопок автоматически читается несколько раз в секунду.

Если кнопка нажата, то вызывается специальная процедура и выполняет нужные действия. Обычно нажатие левой кнопки аналогично нажатию клавиши <Enter>, правой – <Esc>.

Рисунок - 9.

 

Установка курсора в определённое место экрана приводит к запоминанию этой точки.

При перемещении по столу шар вращается и приводит во вращение два непрозрачных диска. Диски имеют по всей окружности прорези. Эти прорези при вращении дисков считываются фотодатчиками, а сигналы считывания суммируются на двух счетчиках собственно, где и формируются коды координат курсора (Рис.4). Эти коды передаются в асинхронный адаптер, к которому подключена «Мышь», а оттуда, выбирается и обрабатывается драйвером «Мыши», несколько раз в секунду. Нажатие клавиши «Мыши» вызывает передачу определённых кодов в адаптер и их внеочередную обработку по прерыванию.

 

8 Правила работы с манипулятором типа «Мышь»

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

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

- инициализировать минимум четыре регистра 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.

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

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

 



Просмотров 1017

Эта страница нарушает авторские права




allrefrs.su - 2025 год. Все права принадлежат их авторам!