47381 (665787), страница 2
Текст из файла (страница 2)
Адрес базового регистра, это адрес порта. Для COM1 он равен $3F8 (для COM2 - $2F8, для LPT1 - $378, LPT2 - $278).
Теперь разберёмся, как читать состояние входов.
Как уже говорилось выше, порт возвращает “0”, если на входе “0”, и “N”, если на данном входе “1”. Причём в некоторых случаях (особенно, при работе с LPT) “N” может быть равно сумме кодов ножек, если “1” присутствует не на одном входе.
Осуществляется приём следующим образом: e:=port[b+n] and m;
Где: e – переменная типа byte, в которую сохраняют принятое значение.
b – адрес БР порта.
n – номер подрегистра.
m – весовой коэффициент входа (см. таблицу 1).
Для проверки этой записи соединим перемычкой выход RTS(7) и вход CTS(8) и запустим приведённый ниже код: (пример 1)
var
aa,e:word;
port,base,data:word;
{.........}
aa:=0;
base:=$3F8;
begin
port:=base+4;
data:=2;
outport(port,aa,data);
sleep(10);
port:=base+6;
e:=inport(port) and 16;
port:=base+4;
data:=0;
outport(port,aa,data);
end;
Управлять конкретными выводами порта из под Дельфи можно и с помощью API. Это хоть и сложнее, зато такая программа будет работать на любом Windows, в т.ч. на NT, 2000, XP (приведённые выше пример работоспособен лишь в 95/98/МЕ).
Список использованной литературы
1) Работа с коммуникационными портами (COM и LPT) в программах для Win32. http://bcb.net.ru/article/hard/index003.html
2) Коммуникационные порты персонального компьютера. http://electronics.org.ua/techinfo/lpt/lpt.htm
3) Основы программирования LPT для DOS и Win9x. http://radiopirat.h11.ru/prog/prog004.htm
4) Примеры работы с АЦП. http://dikoy44.narod.ru/photoalbum.html
5) Вакуленко А. Программа LPTtest. – Радио, 2004, №8, с. 23,24.
6) Патрик Гёлль. Как превратить ПК в измерительный комплекс. ДМКпресс, 2002г.
7) Фаронов В.В. TurboPascal 7.0 практика программирования, учебное пособие, М., изд. Нолидж, 2003 г.
8) Павловская Т.А. Паскаль. Программирование на языке высокого уровня, учебник, П, 2003 г.