Arsip: Interface dg port parallel 2

 
user image
more 12 years ago

coacoac

seperti yg saya tanyakan pada post yang lalu "Interface dg port parallel"..listing program yang saya buat kayak gini, tapi tidak dapat menjalankan output ..ada yang tau dimana ya kesalahannya??? plizzz halp me !

unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, SmallPort, StdCtrls, ExtCtrls;
type
  TForm1 = class(TForm)
    SmallPort1: TSmallPort;
    ButtonBuka: TButton;
    ButtonTutup: TButton;
    procedure strobe;
    procedure ButtonBukaClick(Sender: TObject);
    procedure ButtonTutupClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  tampung: byte;
const
  LPT_Data= $378;
  LPT_Status= $379;
  LPT_Kontrol= $37A;
implementation
{$R *.dfm}
procedure delay(lama:LongInt);
var
  ref : LongInt;
begin
  ref:=gettickcount;
  repeat
    Application.ProcessMessages;
  until ((gettickcount - ref) >= lama)
end;
procedure TForm1.strobe;
begin
  tampung:=SmallPort1.ReadByte(LPT_Kontrol);
  tampung:=tampung and $FE;
  SmallPort1.WriteByte(LPT_Kontrol,tampung);
end;
  
procedure TForm1.ButtonBukaClick(Sender: TObject);
begin
  strobe;
    if (tampung= $6F) then                    //tombol 1
    begin
      SmallPort1.WriteByte(LPT_Data, $01);
      delay(100);
    end
    else
    if (tampung= $5F) then               //tombol 2
    begin
      SmallPort1.WriteByte(LPT_Data, $02);
      delay(100);
    end
    else
    begin
      SmallPort1.WriteByte(LPT_Data, $00);
      delay(100);
    end;
end;
procedure TForm1.ButtonTutupClick(Sender: TObject);
begin
  strobe;
    if (tampung= $3F) then               //tombol 3
    begin
      SmallPort1.WriteByte(LPT_Data, $04);
      delay(100);
    end
    else
    if (tampung= $FF) then               //tombol 4
    begin
      SmallPort1.WriteByte(LPT_Data, $08);
      delay(100);
    end
    else
    begin
      SmallPort1.WriteByte(LPT_Data, $0F);
      delay(100);
    end;
end;
end.
user image
more 12 years ago

mas_kofa

pesan errornya kaya apa....???? pengaruh windows nya apa bukan???
user image
more 12 years ago

coacoac

pesan erornya tdk ada..tetapi pada saat keadaan ini terpenuhi

     if (tampung= $6F) then                    //tombol 1
dia tidak mau menjalankan peintah ini...

      SmallPort1.WriteByte(LPT_Data, $01);
jadi pada saat tombol button saya klik maka perintah ini yan jalan

else
    begin
      SmallPort1.WriteByte(LPT_Data, $00);
      delay(100);
    end;
tetapi jika 'tampung' terpenuhi dia tidak mau menjalankan perintah yang dibawahnya..
user image
more 12 years ago

ImanD

klo dilihat dari pernyataan @coacoac saat tombol 1 ditekan justru nilai tampung bukan $6F jadinya dia loncat ke ELSE, coba sebelumnya di trace dulu az variable tampung masukan ke Add Watch klo ngga di showmessage az.
user image
more 12 years ago

coacoac

mas @ImanD maksudnya gimana ya...?? :roll:
user image
more 12 years ago

coacoac

sudah ketemu masalahnya...makasih ya atas masukannya ternyata ada yang harus ditambah

procedure TForm1.ButtonBukaClick(Sender: TObject);
begin
  tampung:=SmallPort1.ReadByte(LPT_Status);  //tambahan
  strobe;
    if (tampung= $6F) then                    //tombol 1
    begin
      SmallPort1.WriteByte(LPT_Data, $01);
      delay(100);
    end
 
    else
    if (tampung= $5F) then               //tombol 2
    begin
      SmallPort1.WriteByte(LPT_Data, $02);
      delay(100);
    end
 
    else
    begin
      SmallPort1.WriteByte(LPT_Data, $00);
      delay(100);
    end;
end;
 
procedure TForm1.ButtonTutupClick(Sender: TObject);
begin
  tampung:=SmallPort1.ReadByte(LPT_Status);  /tambahan
  strobe;
    if (tampung= $3F) then               //tombol 3
    begin
      SmallPort1.WriteByte(LPT_Data, $04);
      delay(100);
    end
 
    else
    if (tampung= $FF) then               //tombol 4
    begin
      SmallPort1.WriteByte(LPT_Data, $08);
      delay(100);
    end
 
    else
    begin
      SmallPort1.WriteByte(LPT_Data, $0F);
      delay(100);
    end;
end;
end.
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com