8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 11 12 13 14 15 16 17 ... 105

X-AXIS А(3) :

Y-AXIS А(6) :

Y-AXIS В(11):

СЗ ЮнФ -

Y-AXIS В(1 3) >-1

-< wftlte games POF?t + 5В

+ 5В

TRIG

T/H0LD

RST

DIS

CHRG

0/P

dd1

TRIG

T/HOLD

RST

DIS

CHRG

0/P

DD2

TRIG

T/HOLD

RST

DIS

CHRG

O/P

DD3

-

нФ T" L-

GND (4) GND (5)

TRIG

T/HOLD

RST

DIS

CHRG

O/P

DD4

Кнопка 1 A(2)>-Кнопка 2 A(7)>-Кнопка 1 В(Ю) >-Кнопка 2 B(14) >-

+ 5B (1)*4 + 5B (9)-*-l

Примечоние DD1-4 NE555 DD5 74LS244 Все незогрузочнае резистора 4,7к0м

rM> Games PorT

Шино донньх

DD5o Ar Y

16 DO

16 d1 .

14 D2,

12 D3

15

17

DD5a A->Y

7

D5,

5

d6,

3

D7j

Рис. 1.12. Внутренняя блок-схемо типового игрового порта

подключены к питанию +5 В через нагрузочные резисторы. Порт имеет адрес 201 п. Функции битов порта приведены ниже:

ВВ2 ВВ1 ВА2 ВА1 BY BX AY АХ

ВВ2, ВВ1, ВА2 и ВА1цифровые входы

BY, BX, AY и AXаналоговые выходы

Метод измерения сопротивления основан на программном определении длительности импульса, пропорционального сопротивлению. Преобразование начинается после вывода любого байта в регистр порта (201п), при этом биты 0-3 устанавливаются в 1. Время измеряется до возврата в нулевое состояние битов 0-3,


Компьютер

Бит

0 1

АХ

AY

2

ВХ

5

BY

Адрес регистра игро&ого порта 201п

А

ВАТ

5

ВА2

6

ВВ1

7

ВВ2 + 5В

Внутренние иепи

Аналого&ае бхода АХ

Игро&ой порт ПК 15 -контактный енездабой разьем D-muna

Рис. 1.13. Логическая структура игрового порта

соотнесенных с четырьмя аналоговыми каналами. Если аналоговый вход закорочен на «землю» или цепь измеряемого сопротивления разорвана, соответствующий бит не обнулится. Поэтому в программе преобразования должен быть предусмотрен тайм-аут. Взаимосвязь временного интервала и подключенного сопротивления характеризуется следующей формулой:

Сопротивление (Ом) - Временной интервал - 24,2 мкс . v 0,011

Временной интервал изменяется в пределах от 24,2 мкс для пулевого сопротивления до 1124 мкс для максимального (100 кОм). Однако погрешности внутреннего конденсатора и резистора делают формулу неточной. На практике необходимо производить калибровку, которая включает в себя измерение интервалов времени, когда входное сопротивление близко к нулю или равно 100 кОм.

1.3.3. Программное управление

В языке программирования QBASIC существуют два оператора, предназначенные для игрового порта, - STICK(x) и STRIG(x). Оператор STICK(x) может принимать значения 0-3 и используется для чтения информации с потенциометров X и Y джойстиков А и В.

Х=0 считывает Х-координату джойстика А Х=1 считывает Y-координату джойстика А Х=2 считывает Х-координату джойстика В Х=3 считывает Y-координату джойстика В

Применяя эту команду, необходимо сначала вызвать STICK(O), а затем STICK(1), STICK(2) и STICK(3). Функция STICK возвращает значение координаты, которое изменяется от 6 (нулевое сопротивление) до 150 (сопротивление 100 кОм).


STRIG(x) возвращает -1, если условие верно; в противном случае функция возвращает 0. X может принимать значения от 0 до 7 и используется для выбора определенного состояния кнопки джойстика.

Х=0 Первая кнопка джойстика А была нажата с момента последней команды STRIG(O)

Х=1 Первая кнопка джойстика А была только что нажата

Х=2 Первая кнопка джойстика В была нажата с момента последней команды

STRIG(2)

Х=3 Первая кнопка джойстика В была только что нажата Х=4 Вторая кнопка джойстика А была нажата с момента последней команды STRIG(4)

Х=5 Вторая кнопка джойстика В была только что нажата Х=6 Вторая кнопка джойстика А была нажата с момента последней команды STRIG(6)

Х=7 Вторая кнопка джойстика В была только что нажата

Следующая программа на языке QBASIC выводит на экран координаты X и Y джойстика А и показывает состояния двух кнопок.

10 dummy=STICK(0)

20 print Coordinate of X , STICK(O)

30 print Coordinate of Y ,STICK(1)

40 print Current status of 1st button STRIG(1)

50 print Current status of 2nd button ,STRIG(5)

60 end

Функция на языке TP6, приведенная ниже, возвращает состояние конкретного бита, определенного переменной Bitx. Содержимое регистра игрового порта счи-тывается в компьютер и присваивается переменной Input byte. Затем состояние конкретного бита определяется наложением маски на считанный байт.

(♦-Библиотека ресурсов № А14 (чтение регистра игрового порта) -*) Function read game port(bitx integer) integer, («Адрес игрового порта 201h

Bitx (1-8) выбирает состояние АХ, AY, ВХ, BY, ВА1, ВА2, ВВ1 и ВВ2 «) var

input byte byte begin

input byte =port($201),

read game port =round((input byte and bit weight(bitx))/bit weight(bitx)), end,

Чтобы определить величину сопротивления, необходимо записать байт в порт 201h для запуска одновибратора. Соответствующий бит в регистре порта становится единицей. Нужно постоянно опрашивать этот бит, пока он снова не станет нулем. В результате получим требуемый временной интервал. Наиболее удобно измерять временной интервал с помощью третьего счетчика/таймера 8253/8254 внутри компьютера, который можно настроить как независимый таймер с обратным отсчетом времени. Если в счетчике записано число 255, его значение обнуляется



0 ... 11 12 13 14 15 16 17 ... 105