Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Вниз

Работа с LPT...   Найти похожие ветки 

 
XP   (2004-01-26 17:21) [0]

Уважаемые Мастера, у меня есть ряд вопросов по работе с LPT портом:
1. Я знаю что на ножках LPT по команде появляется напряжение в 5V, вопрос-какое напряжени постоянное или импульс и как его проверить?
2. Как мне измерить это напряжение.
3. И можно ли переключать режимы: постоянное-импульс.
4. Как включать каждую ножку.

Заранее спасибо.


 
icWasya ©   (2004-01-26 18:07) [1]

http://gzw1.narod.ru/prog/prg_004/prog_4.html


 
Dmitriy_G ©   (2004-01-27 06:34) [2]

Читать ссылку влом. Так что отвечу
1 Напряжение стоит до тех пор пока в рег не запишутся новые данные так называемый рег защелка.
2 Вольтметром мериют или осцилографом
3 Чтобы подавать импульсы нужно инвертировать значение рег данных, с частотой которая требуется для импульсов
4 И опять таки пишем данные в рег. А в данных устанавливаем определенный бит


 
XP   (2004-01-27 14:15) [3]

Спасибо за ответ. Я вчера припоял светодиод к LPT  и естественно он загорелся(почему это произошло я понял из ответа Dmitriy_G), немогли бы вы дать код на делфи, чтобы у меня напряжение подавалось только на вторую ножку, и соответственно светодиод горел тоько когда он подключен ко второй ножке.
Заранее спасибо...


 
pavel_guzhanov ©   (2004-01-27 17:50) [4]

Я для этого использовал WinIO. Если интересно, скажи, мыльну пример и саму библиотеку. Только мне лично не понятно, как у тебя загорелся светодиод, ведь в порт выдается очень маленький ток, которого не хватит, чтобы зажечь  светодиод. Я использовал светодиодную матрицу, и между ней и LPT собирал еще дополнительную схему


 
icWasya ©   (2004-01-27 18:03) [5]

в статье по ссылке написано - какие разряды каких портов каким контактам соответствуют


 
hyper_omsk ©   (2004-01-28 09:34) [6]

Я так понял ты пишишь под 98, если так то лучьше на ассемблере
адрес порта 378 в шесть-ричном виде то есть 888 в десятич.
для того чтоб на второй ножке точнее (D1) был сигнал а на остальных не то тебе необходимо записать двойку
(кстати светодиот загорается напряжения хватает это при условии если используешь обыкновенные светодиоды, есть светодиоды которым этого тока мало например инфрокрасные)
Вот пример:

Включить светодиод (D1)

procedure TForm1.Button1Click(Sender: TObject);
var DataByte,PortAddr:integer;
begin
DataByte:=2;
PortAddr:=888;
asm
mov al,Databyte
mov dx,PortAddr
out dx,al
end;
end;


Выключить светодиод (D1)

procedure TForm1.Button1Click(Sender: TObject);
var DataByte,PortAddr:integer;
begin
DataByte:=2;
PortAddr:=888;
asm
mov al,Databyte
mov dx,PortAddr
out dx,al
end;
end;


 
XP   (2004-01-28 13:12) [7]

Если не сложно, не могли бы Вы дать код который будет работать и под XP...


 
hyper_omsk ©   (2004-01-29 05:13) [8]

XP проверь почту.


 
hyper_omsk ©   (2004-01-29 05:25) [9]

Кстати я ошибся в коде (наверно уже заметили)

Выключить светодиод (D1)

procedure TForm1.Button1Click(Sender: TObject);
var DataByte,PortAddr:integer;
begin
DataByte:=0; //была 2
PortAddr:=888;
asm
mov al,Databyte
mov dx,PortAddr
out dx,al
end;
end;


 
Dmitriy_G ©   (2004-01-29 06:55) [10]

hyper_omsk, вышли мне тоже. Еще один драйвер лишним не будет.


 
RedSerg   (2004-01-29 15:25) [11]

Хочу что б мой комп управлял електро сетью через LPT. Апаратная часть проблем не вызывает, а вот програмная!!!(для меня дремучий лес). Мне надо что б на ножках (2-9 на одной из них) LPT порта повллась 1 (5В) в то время когда я запрогпамирую. Видел проги под Win98, а вот под NT !!!?


 
XP   (2004-01-29 18:10) [12]

RedSerg, не могу подключить реле к LPT, оно не переключается. Что делать?


 
XP   (2004-01-29 18:16) [13]

И последний вопрос, какие сила тока и напряжение на выходе, а то реле не переключается. Сегодня подключил 3-х вольтовое реле и нихрена! Что делать???


 
Dmitriy_G ©   (2004-01-30 06:24) [14]

Ну нет, реле не переключится факт. Токи сколько не знаю врать не буду (20 мА, около). Но транзистор ставится в любом случае. Или даже еще лучше uln2003, кажется так.


 
RedSerg   (2004-01-30 12:16) [15]

to XP. Я ставлю два реле! певое с маленькым потребляемым током и напряжением(РГК15), а второе уже на 220(помощьнее- любое ). Первое реле замыкает цепь 220В на второе (мощьное реле срабатывает от напр 220В). Почему би не использовать только первое ! Потому, че оно не потянет той нагрузки котороя нужна для роботы ел. приборов .


 
XP   (2004-02-08 23:13) [16]

Уважаемы hyper_omsk, не могу понять почему код который ты мне дал не работатет. Делфи говорит-Operand size mismath. Чё делать?
Заранее спасибо.


 
hyper_omsk ©   (2004-02-09 11:29) [17]

ХР почему не работает у тебя я конечно не знаю.
Сразу задам тебе встречный вопрос.
Ты использовал dll из папки Demo
Если что не получится пиши.


 
XP   (2004-02-10 23:16) [18]

hyper_omsk, я использовал вот этот код:
procedure TForm1.Button1Click(Sender: TObject);
var DataByte,PortAddr:integer;
begin
DataByte:=0; //была 2
PortAddr:=888;
asm
mov al,Databyte
mov dx,PortAddr
out dx,al
end;
end;

Мне уже достатачно, чтоб прога работала только под 98.
Спасибо за ответы.


 
hyper_omsk ©   (2004-02-11 06:55) [19]

Пробуй проще (или вместо integer ставь word или еще что, пробуй)

Простой код

procedure TForm1.ButtonOnClick(Sender: TObject);
begin
asm
mov ax,2
mov dx,888
out dx,ax
end;
end;

procedure TForm1.ButtonOffClick(Sender: TObject);
begin
asm
mov ax,0
mov dx,888
out dx,ax
end;
end;



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.037 c
1-1080699443
Zakalibit
2004-03-31 06:17
2004.04.18
Синхронизация VCL с другими потоками


7-1076620965
salex
2004-02-13 00:22
2004.04.18
Чтение HDD SMART


3-1079591866
ceval
2004-03-18 09:37
2004.04.18
при нажатии кнопки появлялась форма для поиска


1-1080894120
IrviS
2004-04-02 12:22
2004.04.18
Как сделать для кнопки свойство ShortCut Ctrl + "+"


4-1076335924
VKSam
2004-02-09 17:12
2004.04.18
ToolBar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский