Работа с LPT
Написание этой статьи началось с того, что недавно на форуме (Dengiforum.com) я набрел на вопрос о работе с LPT портами, появилась тема для новой статьи. Тема эта довольно простая и интересная. Через LPT к компу подключаются принтеры, сканеры и прочие устройства, уже догадываешься, что можно замутить свое устройство и подключить к LPT. Можно напаять светодиодов, малость накодить, получится светомузыка. Можно пошевелить мозгами и включать свет в соседней комнате одним щелчком мышки. В общем можно подключить все или почти все.
В надежде на обустройство интеллектуальной квартиры, кторой можно будет управлять не вставая с кресла, приступаем к разбору того, как всетаки управлять LPT портом. У правлять им не сложно, ногу порта можно подключить или отключить. На каждую ногу приходятся две процедуры: одна посылает на ногу единицу, другая ноль. Еденица - это 5 вольт, а ноль - почти 0 вольт. Вот и все, что знать надо. Соответственно если разбирать тему на примере свето-музыки, то одна процедура включает светодиод, а вторая выключает.
- Включаем вторую ногу (шлем на нее единицу):
procedure s_reset;
begin
s:=port[888]; {Порт LPT1}
asm
mov al,1
mov bl,s
or bl.al
mov s,bl
end;
port[888]:=s
end;
- Устанавливаем ногу 2 в ноль:
procedure c_reset;
begin
s:=port[888];
asm
mov al,254
mov bl,s
and bl,al
mov s,bl
end;
port[888]:=s;
end;
Аналогично все остальные проводки, меняется только маска. Для третьей ноги - mov al,2{Маска 00000010}, mov al,253 {Маска 11111101}и т.д. пишем чистим соответственно.
Вот и все дальше лампочки припаивай или удлинитель на лазерных указках делай, все зависит от тебя.
|