Mungkin Yang Anda Cari Ada di Sini

Sabtu, 02 Oktober 2010

Akses peralatan luar lewat Parallel Printer Port 2

oleh: Fuad Haharap


Gambar 4. Rangkaian penyangga.



Dari skema pada Gambar 4, terlihat pin 3,5,7,9,12,16 dan 18 dari 74LS224 terhubung ke masing-masing relai. Selanjutnya sakelar pada setiap relai tersebut, bisa kita gunakan untuk mengontrol peralatan yang memiliki beban besar.


Kode Program Delphi
Tidak seperti Turbo Pascal atau Delphi 1 dimana tersedia fungsi Port, pada Delphi 32 bit (versi 2 s/d 6) fungsi itu sudah tidak didukung lagi. Sebagai gantinya kita gunakan in-line assembler code.

Listing 1. Hidupkan LED 5 dari rangkaian pada Gambar 3.


procedure KirimDataKePort(AlamatPort: Word; DataBit: Byte);
(* alamat LPT1, range 378-37F hex
   alamat LPT2, range 278-37F hex
   alamat LPT3, range 3BC-3BF hex
   lihat juga referensi teknis dari Intel dan Microsoft *)

asm
  MOV   DX, AlamatPort
  MOV   AL, DataBit
  OUT   DX, AL
end;

procedure TForm1.btnLED5Click(Sender: TObject);
begin
(* contoh pemanggilan prosedur KirimDataKePort,
   ini akan menyalakan LED 5 (data bit-4 / pin 6
   dari rangkaian yang terdapat pada Gambar 3.  *)
  KirimDataKePort($378$8); //00010000 biner
end;



Gambar 5. Tampilan program kendali, dikembangkan dengan Delphi.


Pada prinsipnya, untuk menyalakan LED, kita kirim data biner 8 bit ke port. Sesuaikan pengiriman data biner ini, dengan LED yang ingin dinyalakan.


Misalnya, untuk menyalakan LED pertama datanya adalah 1 hex (biner; 0000001), sedangkan data biner 10000000 (80 hex / 128 dec) digunakan untuk menyalakan LED kedelapan.

Daftar berikut, dapat digunakan sebagai acuan.



DataPort Bit 0 = LED1 = 00000001 bin = 1 hex = 1 dec
DataPort Bit 1 = LED2 = 00000010 bin = 2 hex = 2 dec
DataPort Bit 2 = LED3 = 00000100 bin = 4 hex = 4 dec
DataPort Bit 3 = LED4 = 00001000 bin = 8 hex = 8 dec
DataPort Bit 4 = LED5 = 00010000 bin = 10 hex = 16 dec
DataPort Bit 5 = LED6 = 00100000 bin = 20 hex = 32 dec
DataPort Bit 6 = LED7 = 01000000 bin = 40 hex = 64 dec
DataPort Bit 7 = LED8 = 10000000 bin = 80 hex = 128 dec



Bagi yang ingin bereksperimen, Listing 2 merupakan kode program dari contoh Aplikasi Pengendali seperti yang terlihat pada Gambar 5.

Listing 2. Kode program aplikasi pengendali.
(*  = Mengontrol peralatan luar lewat Parallel Printer Port = *)
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls,
  Forms, Dialogs, Buttons, ExtCtrls, StdCtrls;
type
  TForm1 = class(TForm)
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    SpeedButton6: TSpeedButton;
    SpeedButton7: TSpeedButton;
    SpeedButton8: TSpeedButton;
    Bevel1: TBevel;
    Bevel2: TBevel;
    lblDataPortBit: TLabel;
    lblNoLED: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    procedure SpeedButton1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    procedure KirimDataKePort(DataPortBit: Byte);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

uses
  Math;

const
  AlamatPort = $378;

procedure TForm1.KirimDataKePort(DataPortBit: Byte);
var
  Nilai: Byte;
begin
  lblDataPortBit.Caption := IntToStr(DataPortBit);
  lblNoLED.Caption := 'LED No. ' + IntToStr(DataPortBit + 1) +
                      ' Nyala';
  Nilai := Trunc(Power(2, DataPortBit));
  asm
    MOV     DX, AlamatPort
    MOV     AL, Nilai
    OUT     DX, AL
  end;
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  (* Letakan 8 buah TSpeedButton, atur propeti Tag
     dari 8 TSpeedButton tersebut dengan nilai
     0 sampai dengan 7. Dari Object Inspector,
     arahkan event Clik dari semua TSpeedButton
     ke SpeedButon1Click. *)

  KirimDataKePort((Sender as TSpeedButton).Tag);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  KirimDataKePort(0);
end;

end.



sebelumnya .......


Download


sebelumnya.....




back to tutorial delphi home....

Tidak ada komentar:

Posting Komentar

Subscribe via email

Enter your email address:

Delivered by FeedBurner

Related Posts Plugin for WordPress, Blogger...
web metrics