Buenas no se si han hecho un nuevo subforo pero yo me he iniciado en el mundo de delphi y quise manejar el puerto paralelo asi que para el que quiera aqui va un programita para comunicarse con dicho puerto y que anda en todos los sistemas incluido winxp.
Lo primer buscar en internet la libreria inpout32.dll (ojo esta libreria debe ocupar 32.768 bytes para que funcione bien en todos los sistemas ya que hay una libreria inpout32.dll que ocupa menos y no la he podido hacer andar en winxp y win2000)
lo siguiente es: o copiar la libreria a la carpeta del sistema c:windowssystem32 o en su defecto dejarla dentro de la capeta donde se encuentra el programa, creo que hay otra manera que es compilando la libreria dentro de nuestro ejecutable pero personalmete no la he probado.
aqui les pongo un programa que en el formulario hay dos botones y con uno de ellos ponemos el byte de datos (D0 a D7) en alto (si pusieramos leds conectados a resistencias a dichos pines se prenderian) y con el otro boton a esos pines los ponemos en bajo (se apagarian los 8 leds) hay tambien un label que muestra la lectura de el byte de status.
Aqui va el codigo:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Timer1: TTimer;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Label1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function inportb(EndPorta: Integer): BYTE stdcall; external "inpout32.DLL" name "Inp32";
procedure outportb(EndPorta: Integer; Valor:BYTE); stdcall; external "inpout32.DLL" name "Out32";
procedure TForm1.Button1Click(Sender: TObject);
begin
outportb($378,255); //pone el byte del puerto paralelo D0...D7 en alto (5 volts)
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
outportb($378,0); //pone el byte del puerto paralelo D0...D7 en bajo (0 volts)
end;
procedure TForm1.Label1Click(Sender: TObject);
begin
Label1.Caption := IntToStr( inportb($379) ); //lee el byte de STATUS
end;
end.
Hace poco me encontre con una pagina en la que un programa en delphi se comunica con un pic 18F4550 a travez del puerto USB para manejar un motor paso a paso con el codigo fuente en delphi, para el que le interese se encuntra en esta direccion:
http://www.sixca.comBueno espero que les sea util.