Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Com USB управление PASCAL

16K
16 февраля 2006 года
YouRich
2 / / 16.02.2006
КАК УПРАВЛЯТЬ ПОРТОМ ЧЕРЕЗ ПАСКАЛЬ??? Именно мне нужно из паскаля подать напряжение (до 5 вольт) на какой нибудь контакт. и обесточивать его. т.е.
типа
if *условие* then
goto
[напряжение на контакт подалось]
else [не подалось].

Хочется сделать выключатель чего либо через реле, управляемым COM или USB портом. через паскаль.
Начальные знания - работа в паскале модулями DOS, GRAPH, CRT.

Очень надо. ПОМОГИТЕ!
391
16 февраля 2006 года
Archie
562 / / 03.02.2005
Цитата:
Originally posted by YouRich
КАК УПРАВЛЯТЬ ПОРТОМ ЧЕРЕЗ ПАСКАЛЬ??? Именно мне нужно из паскаля подать напряжение (до 5 вольт) на какой нибудь контакт. и обесточивать его. т.е.
типа
if *условие* then
goto
[напряжение на контакт подалось]
else [не подалось].

Хочется сделать выключатель чего либо через реле, управляемым COM или USB портом. через паскаль.
Начальные знания - работа в паскале модулями DOS, GRAPH, CRT.

Очень надо. ПОМОГИТЕ!



Из под НТ-ёвых винд не будет работать. Проще всего взять какой-нить микроконтроллер, навесить его на RS-232 и работать с портом чесным путем (открывая файл и выполняя чтение-запись в него).

Под ДОС-ом или виндой 9х можно программировать COM и LPT путем обращения непосредственно к портам. Вот, скажем тут написано: http://kazus.ru/modules/Content/shemes/691.html

16K
20 февраля 2006 года
YouRich
2 / / 16.02.2006
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, LPTIO,
ExtCtrls, StdCtrls, Buttons;

type
TForm1 = class(TForm)
Panel1: TPanel;
Button1: TButton;
BitBtn1: TBitBtn;

procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
Lpt : TLptPortConnection;
public

function GetCurrentPort : byte;
function Pin2 : boolean;
procedure ButtonPin2;
end;

var
Form1: TForm1;

implementation
{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var msg : AnsiString;
begin
Lpt := TLptPortConnection.Create;

//*********************************************************************
//Выполнение корневого кода}

//*********************************************************************
end;


procedure TForm1.FormDestroy(Sender: TObject);
begin
Lpt.Destroy;
end;

function TForm1.GetCurrentPort : byte;
begin
GetCurrentPort:=LPT2;
end;

function TForm1.Pin2 : boolean ;
Var
d : boolean;
begin
d := true;
d := d and (1 = (1 and Lpt.ReadPort( (GetCurrentPort) ,0))) ;
Pin2 := d;
end;

procedure TForm1.ButtonPin2;
begin
Lpt.WritePort (GetCurrentPort,0,(1 xor Lpt.ReadPort( (GetCurrentPort) ,0) ));
end;

//___


procedure Delay(ms: Longint);
var TheTime: LongInt;

begin TheTime := GetTickCount + ms;
while GetTickCount < TheTime do
Application.ProcessMessages;
end;

procedure TForm1.Button1Click(Sender: TObject);
var a,b,c : integer;

begin
if Pin2 = false then ButtonPin2; // Режим ожидания.
a:=1;

repeat;
a:=a+1;
ButtonPin2; // делаем колебание
delay(20);
until a = 150;

if Pin2 = true then ButtonPin2; // возврат в режим ожидания.
end;
end.

СДЕЛАНО ПО ШАБЛОНУ: СМОТРЕТЬ
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог