Sabtu, 22 Oktober 2011

Akses Port Paralel Dengan Delphi

Bagi anda yang suka pemrograman untuk mengakses hardware komputer, mungkin salah satu port yang bisa dimanfaatkan adalah paralel port, serial atau USB. Bagaimana kita membuat program untuk mengakses port paralel?. Berbeda dengan pemrograman biasa, untuk program akses port kita harus mengetahui alamat port yang digunakan.

Port paralel walaupun sekarang sudah mulai disertakan pada motherboard keluaran terbaru tetapi masih layak untuk dikembangkan untuk keperluan kontrol perlatan seperti, motor stepper, lampu LED,LCD, Seven Segment dan aplikasi lainnya.Nah bagaimana cara melakukan akses ke port paralel melalui Delphi.

Buatlah Form dengan tampilan sebagai berikut :
Buatlah Kode program sebagai berikut :

procedure TulisPort(addr: word; value: byte); assembler;
asm
XCHG AX,DX
OUT DX,AL
end;
function BacaPort(addr: word): byte; assembler;
asm
MOV DX,AX
IN AL,DX
end;
procedure TForm1.FormCreate(Sender: TObject);
var
kontrol: byte;
begin
kontrol := BacaPort($37A); {baca register kontrol LPT1}
kontrol := kontrol and $DF; {reset bit 5, operasi tulis}
TulisPort($37A, kontrol); {tulis kembali register kontrol LPT1}
end; 

Dobel klik pada Button1 dan tulis perintah berikut (event handler OnClick untuk Button1) untuk menulis data ke port printer.
procedure TForm1.Button1Click(Sender: TObject);
var
data: byte;
begin
data := StrToInt(edit1.text); {mengambil nilai dari Edit1}
data := $FF-data; {komplemenkan nilai tersebut}
TulisPort($378, data); {tulis data tsb ke port data LPT1}
end;
Running Program … 

Jika Edit diisi dengan bilangan, maka akan berlaku konversi bilangan desimal ke biner dengan logika sebagai berikut
Misal 8 = 0 0 0 0 1 0 0 0
Sehiingga bilangan binernya adalah  = 07 + 06 + 05 +04 + 23 + 02 + 01 + 00.
maka led yang menyala adalah 1 led nomor 5 dari kiri
Jika anda menggunakan sistem operasi Windows XP anda  harus menambahkan komponen User Port yang dapat anda:
Paralel port 

Source ;
http://muhal.wordpress.com/2007/03/17/akses-port-paralel-dengan-delphi/

0 komentar:

Posting Komentar

 
Copyright (c) 2010 AkabriUdara and Powered by Blogger.