RS232(0) повертає кількість установлених СОМ-портів, RS232(1) - базову адресу СОМ1, RS232(2) - базову адресу COM2 і т


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

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

RS232(0) повертає кількість установлених СОМ-портів, RS232(1) - базову адресу СОМ1, RS232(2) - базову адресу COM2 і т

Базову адресу можна одержати, злічивши їхній вміст. Комірки пам'яті, у яких міститься інформація про базові адреси встановлених послідовних портів, приведені нижче:

СОМ1: 0000:0400h - 0000:0401h

COM2: 0000:0402h - 0000:0403h

COM3: 0000:0404h - 0000:0405h

COM4: 0000:0408h - 0000:0407h

Однобайтова комірка пам'яті 0000:0411h у першому, другому і третьому бітах містить загальну кількість установлених СОМ-портів:

біт 3 = 0, біт 2 = 0, біт 1 = 0 СОМ-порти не встановлені

біт 3 = 0, біт 2 = 0, біт 1 = 1 встановлено один СОМ-порт

біт 3 = 0, біт 2 = 1, біт 1 = 0 встановлено два СОМ-порти

біт 3 = 0, біт 2 = 1, біт 1 = 1 встановлено три СОМ-порти

біт 3 = 1, біт 2 = 0, біт 1 = 0 встановлено чотири СОМ-порти

2.1.3 Способи керування портами у WINDOWS95 та WINDOWS XP

Програмне керування

У розділі приведені основні варіанти програмування послідовного порту.

Одержання базової адреси послідовного порту

Представлена програма, написана мовою QBASIC, виводить загальну кількість СОМ-портів, вбудованих у ПК, і їхні базові адреси. Рядок 20 зчитує байт з комірки пам'яті 0000:0411 h, використовуючи команду РЕЕК(). Біти 0,1 і 2 містять інформацію про кількість встановлених СОМ-портів. На ці три біти накладається маска за допомогою оператора AND (1+2+4) для визначення кількості портів. Рядок 30 зчитує два байти з комірок пам'яті, що містять базову адресу СОМ1. Рядки 40, 50 і 60 роблять те ж саме для інших портів.

10 DEF SEG=0

20 PRINT "Number of RS232 ports:", (PEEK(H411) AND (1+2+4))

30 PRINT "Address of COM1:", PEEK(H400)+256*РЕЕК(H401)

40 PRINT "Address of CОM2:", PEEK(H402)+256*PEEK(H403)

50 PRINT "Address of COM3:", PEEK(H404)+256*PEEK(H405)

60 PRINT "Address of COM4:", PEEK(H406)+256*PEEK(H407)

70 INPUT X

Наступна функція, написана мовою TP6, зчитує інформацію про кількість встановлених портів і привласнює отримане значення змінній Number_of_ COM. Потім вона зчитує базові адреси з комірок пам'яті, де вони зберігаються, і привласнює адресу обраного порту змінній RS232_address.

(*-Бібліотека ресурсів № А6 (визначення базових адрес СОМ-портів).-*)

Procedure COM_address;

(* $0000:$0400 містить базову адресу порту СОМ1,

$0000:$0402 містить базову адресу порту COM2,

$0000:$0404 містить базову адресу порту COM3,

$0000:$0406 містить базову адресу порту COM4,

$0000:$0411 містить кількість СОМ-портів в двійковому форматі.*)

var

СOM:аггау[1..4] of integer;

COM_number.number_of_COM,code:integer;

Kbchar;char;

begin

clrscr;

COM_number:=1; (*Установка порту за замовчуванням.*)

Number_of_COM:=mem($0000:$0411); (*3читування кількості СОМ-портів.*)

Number_of_COM:=(Number_of_COM and (8+4+2)) shr 1;

COM[1]:=memw($0000:$0400); (*Процедура зчитувань з пам'яті.*)

СОМ[2]:=memw($0000:$0402);

СОМ[3]:=memw($0000:$0404);

СОМ[4]:=memw($0000:$0406);

Textbackground(blue); clrscr;

Textcolor(yellow); Textbackground(red); window(10,22,70,24); clrscr;

Writeln('Number of COM installed:', Number_of_COM:2);

writeln('Addresses for COM1 to COM4: ', COM[1];3', COM[2]:3', COM[3]:3', COM[4]:3);

write('Select COM to be used (1,2.3,4):');

delay(1000);

if number_of_COM>1 then

begin (*Вибір конкретного порту, якщо встановлено кілька портів.*)

repeat

kbchar:=readkey; (*3читування значення з клавіші, що вводиться.*)

val(kbchar,COM_number,code); (*Перетворення символу в число.*)

until (COM_number>=1) and (COM_number<=4) and (COM[COM_number]<>0);

end; clrscr;

RS232_address:=COM[COM_number];

writeln('Your selected RS232 interface: COM', COM_number:1);

write('RS232 address:', RS232_address:4);

delay(1000);

textbackground(black);

window(1,1,80,25); clrscr;

end;

В наступному прикладі показана функція RS232(X), написана мовою Turbo Pascal для Windows. RS232(0) повертає кількість установлених СОМ-портів, RS232(1) - базову адресу СОМ1, RS232(2) - базову адресу COM2 і т.д.

(*-Бібліотека ресурсів № A6 (визначення базових адрес СОМ-портів).-*)

(Universal auto detection of COM base address)

Function RS232(X:integer):integer; export;

(* $0000:$0400 містить базову адресу порту COM1,

$0000:$0402 містить базову адресу порту COM2,

$0000:$0404 містить базову адресу порту COM3,

$0000:$0406 містить базову адресу порту COM4,

$0000:$0411 містить кількість СОМ-портів в двійковому форматі.*)

var

number_of_COM, СОМ1, COM2, COM3, COM4: integer;

begin

number_of_COM:=mem($40:$11); (*3читує кількість СОМ-портів *)

number_of_COM:=(number_of_COM and (8+4+2)) shr 1;

COM1:=0; COM2:=0; COM3: =0; COM4:=0;

COM1:=memw($40:$00); (*Процедура зчитування з пам'яті.*)

COM2.=memw($40:$02);

COM3:=memw($40:$04);

COM4:=memw($40:$06);

Case X of

0: RS232:=number of COM;

1: RS232:=COM1;

2: RS232:=COM2;

3: RS232:=COM3;

4: RS232:=COM4;

end;

end.

Ініціалізація СOM-порту

Перед тим як використовувати СOM-порт, його необхідно настроїти на визначений формат передачі даних, тобто встановити швидкість, кількість бітів даних, кількість стопових бітів та біт перевірки. Існує три методи настроювання.

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

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

З одного боку, 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
; • привід гнучких дисків (дисковод)

заработать

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