|
Jika Anda penggemar rangkaian elektronik analog dan ingin memproses data dari ragkaian tersebut dalam PC maka
Anda akan membutuhkan konektor penghubung antara rangkaian analog Anda dengan PC
Anda yang merupakan peralatan digital. Konektor tersebut itulah yang disebut dengan interface. Interface dapat dilakukan dalam beberapa cara antara lain yang sering digunakan adalah melalui parallel port (printer) dan IC PPI 8255.
Kali ini penulis akan membahas mengenai interface dengan menggunakan parallel port (printer) sebab dengan parallel port anda tidak membutuhkan PPI card lagi.
Untuk program pengambilan data dari interface diperlukan fungsi atau prosedur yang mampu membaca input dan output dari port.
Kali ini kita akan menggunakan io.dll untuk interfacingnya.
File io.dll ini dapat anda download pada akhir tulisan ini.
Misalnya kita akan membuat program sederhana membaca keluaran tegangan dari rangkaian analog. Pertama kali kita harus tahu
fungsi pin-pin parallel port:

Kita juga harus tahu alamat dari parallel port dengan melihatnya lewat
my computer - view system information - hardware - device manager - view - resource by type -
Input/Output(I/O). Cari Printer Port maka akan tertulis alamat (00000378 - 0000037F) Kita dapat menggunakan alamat dengan:
Data (output) :$378
Status (input) :$379
Control (input) :$37A

Dengan D7 sebagai MSB dan D0 menjadi LSB. Data masukan dari ADC ke PC diletakkan pada status port yang hanya terdiri dari 5 pin (pin
busy, ACK, PE, Select, Error) maka masukan 8 byte dibagi menjadi 2, 4 byte - 4 byte, maka masuknya data bergantian dengan mengatur pergantian strobe pada control port. Pada pengambilan data, data yang masuk pada pin busy akan
di-invers, jika Anda memasukkan data 0 maka yang terbaca adalah 1. Maka dari itu untuk D7 pada status port harus
di-invers balik, dalam program digunakan fungsi XOR $80.
Anda harus memasukkan function dan procedure untuk memanggil io.dll terlebih dahulu sebelum anda memakai komponen ini. Pemanggilan itu dapat dituliskan seperti
berikut:
function PortIn(Port:Word):Byte;stdcall;external'io.dll';
procedure
PortOut(Port:Word;Data:Byte); stdcall; external'io.dll';
Contoh Program:
var
Form1: TForm1;
x :integer;
implementation
{$R *.dfm}
function PortIn(Port:Word):Byte;stdcall;external'io.dll';
procedure PortOut(Port:Word;Data:Byte); stdcall; external'io.dll';
procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.Enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
input1,input2,data:integer;
begin
inc(x);
label2.Caption :=floattostr(x);
PortOut($37A,$01); //$37A adalah alamat untuk
//mengatur masuknya data (strobe 1)
//diambil data 4 byte yang
//dibelakang dahulu
input1:= PortIn($379) xor $80; //$379 alamat input
//dari ADC ke PC
//dengan XOR $80 karena
//pin ke 10 invers
input1:= (input1 shr 4) and $0F; //4 byte digeser dan
//di AND $0F agar
//data XXXX yang kita
//tidak tahu isinya
//dapat dihilangkan
PortOut($37A,$00); //strobe 0 sehingga data 4 byte
//pertama dapat masuk
input2:=(PortIn($379) xor $80);
input2:= input2 and $F0;
data:= input1 or input2;
label1.Caption :=floattostr((data/255)*5)+' Volt';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
timer1.Enabled:=false;
end;
end.
Untuk gambaran jalannya program dapat penulis gambarkan seperti dibawah ini:

ket : xxxx adalah data yang tidak diketahui
Ketika dirun label1 tertulis 2.25 Volt. Variable "data" tidak mengambil nilai biner tetapi langsung desimal. Dibagi 255 karena jika byte penuh maka desimalnya adalah 255 (decimal dari $FF) dan pengali 5 bergantung pada span yang ada pada rangkaian analog.
Untuk menggunakan function atau procedure io.dll lainnya Anda dapat melihatnya di
www.geekhideout.com/iodll.shtml.
Dengan mentransfer data ke PC kita akan lebih mudah untuk mengolahnya. Anda bisa lebih mengembangkan program diatas. Jika anda menginginkan output dari PC maka kita dapat menggunakan outputan alamat $378 (data
output).
Demikian pembahasan tentang interface menggunakan parallel port (printer). Semoga berguna bagi
Anda semua. Untuk komentar tulisan dapat Anda kirimkan ke ratih@sony-ak.com. Untuk melihat tulisan menarik lainnya anda dapat melihat di
www.sony-ak.com.
Source code aplikasi di atas (termasuk io.dll) bisa di download di delphiinterface1.zip.
Ditulis kembali dari berbagai sumber
thx to 'Nurdin' Larins ITS
For a great mind.
Terimakasih.
| Send
your comments or suggestions |
|
|
|