Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OKIU / методичка_ОКІУ.doc
Скачиваний:
22
Добавлен:
16.02.2016
Размер:
1.11 Mб
Скачать

Передача даних по лініях взаємодії

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

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

Рrocedure write_modem_status(RS232_address, RTS, DTR:integer);

(*RTS і DTR інвертуються за допомогою Мах238 на експериментальній платі *)

(*RTS=біt 1, DTR=біт 0 регістра управління модемом, зсув 04h.*)

begin

RTS:=1-RTS,

DTR:=1-DTR;

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

end;

(*-Бібліотека ресурсів А11 (запис даних в регістр стану модему).-*)

Function write_modem_status(RS232_address, RTS, DTR:integer):integer; export; (*RTS і DTR інвертуються за допомогою Мах238 на експериментальній платі.*)

(*RTS=біt 1, DTR=біт 0 регістра управління модемом, зсув 04h.*)

begin

RTS:=1- RTS;

DTR:=1- DTR;

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

end;

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

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

Function read_modem_status(RS232_address, x:integer):integer;

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

(*DCD = біт 7, DSR = біт 5, CTS = біт 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;

(*-Бібліотека ресурсів № A13 (читання даних з регістра стану модему) -*)

Function read_modem_status(RS232_address, x:integer):integer;

export;

(*x=1 - вибір біта DCD, x=2 - вибір біта DSR, x=3 - вибір біта CTS.*)

(*DCD = біт 7, DSR = біт 5, CTS = біт 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;

2.4. Експериментальні плати паралельного, послідовного та ігрового портів

Експериментальні плати служать сполучною ланкою між комп'ютером і призначеними для користувача схемами. Вони забезпечені світлодіодами для індикації логічного стану кожного входу і виходу, що покращує наочність операції вводу/виводу. Крім того, на кожній платі є клемна колодка, до якої можна підключити експериментальну схему користувача. Всі вхідні цифрові лінії під'єднуються до комп'ютера через тригер Шмітта. Для роботи плат необхідне нестабілізоване джерело постійного струму 8-15 В. Розміщений на платах стабілізатор 7805 перетворить вхідну напругу в напругу +5 В. Струм джерела живлення обмежується за допомогою вбудованого запобіжника на 1 А. У платах використані поширені електронні компоненти, монтаж виконаний на односторонніх друкованих платах, що дозволяють проводити різні експерименти по з’єднанню зовнішніх пристроїв з комп'ютером.

Соседние файлы в папке OKIU