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

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

Следующие две процедуры написаны на языке ТР6 и выполняют те же функции.

(«Библиотека ресурсов № А10 (запись данных в буферный регистр передатчика).*)

Procedure write transmit buffer(RS232 address,output byte:integer),

begin

port(RS232 address):=output byte; end;

(«Библиотека ресурсов № A12 (чтение данных из буферного регистра приемника) *) Function read receive buffer(RS232 address,output byte:integer):integer; begin

read receive buffer:=port(RS232 address); end;

Ниже приведены две функции, написанные на Turbo Pascal для Windows.

(«Библиотека ресурсов № А10 (запись данных в буферный регистр передатчика).*) Function write transmit buffеr(RS232 address,output byte integer).integer; export; begin

port(RS232 address):=output byte; end;

(Библиотека ресурсов № A11 (чтение данных из буферного регистра приемника).*) Function read reseive buffer(RS232 address,output byte:integer):integer, export; begin

read reseive buffer:=port(RS232 address); end;

Передача данных по линиям взаимодействия

Для вывода данных через линии RTS и DTR в регистр управления модемом (смещение 04п) необходимо записывать биты 1 и 0, которые соответствуют сигналам RTS и DTR. Линии управляются процедурами на языках ТР6 и Turbo Pascal для Windows, требующими базовый адрес выбранного СОМ-порта и состояние этих линий - либо 0, либо 1. Причем RTS и DTR инвертируются перед подачей в порт с целью компенсации инверсии преобразователями TUI/RS232, которые также используются для трансформации уровня напряжения.

(•-Библиотека ресурсов № А11 (запись данных в регистр состояния модема) -*)

procedure write modeiri status(RS232 address, RTS. DTR:integer);

(*RTS и DTR инвертируются с помощью MAX238 на экспериментальной плате *)

(«RTS=6ht 1, DTR=6ht 0 регистра управления модемом, смещение 04h.*)

begin

RTS.=1-RTS,

DTR: =1 -DTR;

port(RS232 address+4):=RTS*2+DTR;(*3апись в регистр 04h «)

end;

(♦-Библиотека ресурсов № A11 (запись данных в регистр состояния модема).-*) Function write modeiri status(RS232 address, RTS, DTR: integer): integer; export; (*RTS и DTR инвертируются с помощью MAX238 на экспериментальной плате.*)


(*RTS=6mt 1, DTR=6mt 0 регистра управления модемом, смещение 04h.*) begin

RTS:=1-RTS;

DTR:=1-DTR;

port(RS232 address+4):=RTS*2+DTR; («Запись в регистр 04h *) end,

Чтобы считать данные с линий DSR, CTS и DCD, необходимо считать регистр состояния модема. Для этого служат нижеприведенные процедуры на языках ТР6 и TPW, требующие базовый адрес выбранного СОМ-порта. Линии DSR, CTS и DCD инвертируются для компенсации инверсии преобразователями Ti7I/RS232.

(«-Библиотека ресурсов № А13 (чтение данных из регистра состояния модема).-*)

Function read modem status(RS232 address, х:integer);integer;

(*х=1 - выбор бита DCD, х=2 - выбор бита DSR, х=3 - выбор бита CTS. *)

(*DCD=6ht 7, DSR=6mt 5, СТБ=бит 4 регистра состояния модема, смещение 06h *)

(*Все биты инвертируются с помощью МАХ238 на экспериментальной плате.*)

var

input byte byte; begin

input byte:=port(RS232 add ress+6), case x of

1: Read modem status =1-round((input byte and 128)/128); 2: Read modem status.=1-round((input byte and 32)/32); 3: Read modem status =1-round((input byte and 16)/16),

end; end;

(*-Библиотека ресурсов № A13 (чтение данных из регистра состояния модема) -*) Function read modem status(RS232 address, х:integer).Integer; export; (*x=1 - выбор бита DCD, x=2 - выбор бита DSR, x=3 - выбор бита CTS.*) (*DCD=6ht 7, DSR=6ht 5, CTS=6ht 4 регистра состояния модема, смещение 06h.*) (*Все биты инвертируются с помощью МАХ238 на экспериментальной плате.*) var

input byte"byte; begin

input byte:=port(RS232 address+6); case x of

1: Read modem status:=1-round((input byte and 128)/128); 2: Read modem status:=1-round((input byte and 32)/32); 3: Read modem status:=1-round((input byte and 16)/16);

end; end;

1.3. Игровой порт

В большинстве настольных компьютеров есть встроенный игровой порт, куда подключаются один или два джойстика - с двумя цифровыми и двумя аналоговыми входными линиями (одно устройство) или с четырьмя цифровыми и четырьмя аналоговыми (два устройства). Цифровые линии позволяют считывать


входные данные, а аналоговые - измерять подключенное к ним сопротивление (оно должно быть в пределах 0-100 кОм).

Джойстик имеет два потенциометра 100 кОм для индикации координат X и Y, а также две нормально разомкнутые кнопки. На соответствующих им линиях порта устанавливается высокий уровень, а при нажатии на кнопку - низкий.

1.3.1. Разъем

Порт имеет 15-контактную розетку D-типа. Назначение выводов и типовое соединение с джойстиком представлены на рис. 1.11.

б)

Джойстик А

© © © © © © ©

© (И) © © © © ©

Y-потенииометр

Х-потенциометр

®(Z)(!)©©®©6

14 13 12 11 Ю 9

Номера

Наимено-

Описание

контактов

вание

1, 8, 9, 15

+ 5В

Питание со сторона ПК

4. 5. 12

GND

"Земля"

2

ВА1

Первая кнопка джойстика А

3

АХ

Х-потенииометр джойстико А

6

AY

Y-потенииометр джойстика А

7

ВА2

Первоя кнопка джойстика А

10

ВВ1

Первая кнопко джойстико В

11

ВХ

Х-потенииометр джойстика В

13

BY

Y-потенииаметр джойстика В

14

ВВ2

Первая кнопка джойстика В

А В2

у Х-погпенииом

emp

Y-потенииометр

Джойстик

Рис. 1.11. Назначение выводов и типовое соединение с джойстиком: а - 15-контактный гнездовой разъем D-типа, вид со стороны зодней стенки компьютере, б - соединение контоктов порто с внешними резисторами и переключотелями; в - назначение контактов игрового порта

1.3.2. Внутреннее аппаратное устройство

Внутренняя блок-схема типового игрового порта изображена на рис. 1.12, а логическая структура - на рис. 1.13.

Восьмибитовые линии шины данных состоят из четырех выходов микросхемы DD5a и четырех выходов микросхемы DD5b. Четыре входа состояния кнопок



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