-*) Function read_modem_status(RS232_address, x:integer):integer; export; (*x=l - вибір біта DCD, x=2 - вибір біта DSR, x=3 - вибір біта CTS


перейти к полному списку дипломных проектов

Ссылка на скачивания файла в формате .doc находится в конце странички

-*) Function read_modem_status(RS232_address, x:integer):integer; export; (*x=l - вибір біта DCD, x=2 - вибір біта DSR, x=3 - вибір біта CTS

Щоб передати дані, можна записати їх безпосередньо в буферний регістр передавача 3F8h використовуючи наступний оператор мови QBASIC:

OUT 3F8h,X

де X - дані в десятковому форматі. Для одержання даних з порту СОМ1 зчитуються дані з буферного регістра приймача 3F8h. З цією метою використовується інший оператор мови QBASIC (Y - вхідні дані в десятково-му форматі):

Y=INP(3F8h)

Наступні дві процедури написані на мові ТР6 і виконують ті ж функції.

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

Procedure write_transmit_buffer(RS232_address,output_byte:integer);

Begin

port(RS232_address):=output_byte;

end;

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

Function read_receive_buffer(RS 232_addгеss,output_byte: integer]: integer;

begin

read_receive_buffer:=port(RS232_address);

end;

Нижче показані дві функції, написані на Turbo Pascal для Windows.

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

Function write_transmit_butfer(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 у регістр керування модемом (зміщення 04h) необхідно записувати біти 1 і 0, що відповідають сигналам RTS і DTR. Лінії керуються процедурами на мовах TP6 і Turbo Pascal для Windows, що вимагають базову адресу обраного СОМ-порту і стан цих ліній - або 0, або 1. Причому RTE і DTR інвертуються перед подачею в порт з метою компенсації інверсії перетворювачами TTЛ/RS232, що також використовуються для трансформації рівня напруги.

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

procedure write_modem_status(RS232_address, RTS, DTR:integer);

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

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

begin

RTS.=1-RTS,

DTR:=1-DTR;

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

end;

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

Function wrile_modem_stalus(RS232_address, RTS, DTR:integer):integer; export;

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

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

begin

RTS:=1-RTS;

DTR:=1-DTR;

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

end.

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

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

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

(*х=1 - вибір біта DCD, х=2 - вибір біта DSR, х=З - вибір біта 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=l - вибір біта DCD, x=2 - вибір біта DSR, x=3 - вибір біта CTS.*)

(*DCD=біт 7, DSR=біт 5, CTS= біт 4 регістри стану модему, зміщення 06h.*)

(*Усі біти інвертуються за допомогою МАХ238 на експериментальній пла-ті.*)

var

input byte:byte;

begin

input_byte:=port|RSZ32_addres+GJ;

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.

скачать бесплатно КОМП’ЮТЕРНЕ МОДЕЛЮВАННЯ РОБОТИ

Содержание дипломной работы

З одного боку, RS-232 і RS-485 називають протоколами, а з іншого, MODBUS, ZModem і CAN - також протоколи
І хоча уже всі комп'ютери мають інтерфейс USB, інтерфейс RS-232 ще живий і активно застосовується
2 Будова і принцип роботи послідовного порта Послідовна передача даних Послідовний потік даних складається з бітів синхронізації і власне бітів даних
Якщо інтерфейс націлений на перевірку за парністю, такий біт буде виставлятися в одиницю при непарній кількості одиниць у бітах даних, і навпаки
Під час прийому відбувається зворотна операція: після того як дані успішно прийняті і за допомогою регістра зміщення перетворені в рівнобіжний формат, вони передаються в буферний регістр приймача
Перетворювачі передавачів конвертують рівень напруги ТТЛ у рівень RS232, а перетворювачі приймачів - навпаки
RS232(0) повертає кількість установлених СОМ-портів, RS232(1) - базову адресу СОМ1, RS232(2) - базову адресу COM2 і т
Третій, найбільш гнучкий метод конфігурує порт за допомогою запису даних у регістр формату даних UART (зсув 03h)
-*) Function read_modem_status(RS232_address, x:integer):integer; export; (*x=l - вибір біта DCD, x=2 - вибір біта DSR, x=3 - вибір біта CTS
; • привід гнучких дисків (дисковод)

заработать

Закачай файл и получай деньги