Anda di halaman 1dari 11

ADC 0804 DRIVER PARAREL

PORT

Pendahuluan

ADC 0804 adalah salah satu jenis ADC successive-opproximation. ADC

0804 adalah untai terpadu yang berguna untuk mengubah tegangan analog

menjadi data-data biner yang sesuai. Metode yang digunakan untuk mengubah

tegangan masukan analog menjadi kode biner 8 bit oleh ADC 0804 adalah metode

pendekatan berturut-turut. ADC0804 mempunyai dua buah masukan analog yang

diperuntukkan untuk tipe masukan differensial (Vin analog=Vin+-Vin-). Berikut

ini adalah blok diagram sederhana dari ADC 0804:

Blok diagram sederhana ADC0804

ADC 0804 didesain khusus supaya cocok dipakai sistem mikroprosesor

dengan tambahan komponen external yang sedikit. Keluaran output data tiga

kondisi dapat langsung dihubungkan dengan jalur data ìC/ìP. Agar keluaran dari
ADC 0804 PARAREL PORT

sensor dapat dibaca oleh mikrokontroler, maka sinyal analog tersebut harus

diubah menjadi data digital. ADC0804 adalah sebuah chip (IC CMOS) yang

terdiri dari 20 pin IC DIP yang banyak diproduksi oleh National Semiconductor,

Signetic dan Intersil. IC ADC 0804 diperlihatkan pada gambar 5.2.

IC ADC 0804

Keterangan gambar:

 CS pemilih chip aktif rendah

 RD enable output aktif rendah

 WR start konversi aktif rendah

 CLKIN masukan clock external/titik koneksi untuk kapasitor jika

digunakan clock internal

 INTR aktif konversi aktif rendah

 Vin+,Vin- masukan analog tipe differensial

 AGND groun analog

 Vref/2 pin koneksi untuk Vref2

 DGND digital ground

 Vcc 5V catu daya positif dan sebagai referensi


 CLK R titik koneksi untuk R pada mode clock internal

 D0-D7 output digital

Keunggulan ADC 0804 ini adalah :

1. Sesuai (kompatibel ) dengan derivatif µP 8080 sehingga tidak me-

merlukan antarmuka tambahan dan mempunyai waktu akses 135 nS.

2. Mudah dalam teknik antarmuka untuk segala macam µP dan dapat

dioperasikan sendiri (stand alone) tanpa perangkat tambahan.

3. Tegangan masukan dan logika keluaran sesuai dengan level tegangan

CMOS dan TTL.

4. Tegangan referensi 2.5 volt.

5. Mempunyai pembangkit detak internal.

6. Tidak memerlukan pengesetan nol.

7. Dioperasikan dengan tegangan Vcc = 5 volt dan tegangan masukan

analog yang differensial.

8. Mempunyai waktu konversi sebesar 100 µS dan total kesalahan

konversi sebesar ± 1 bit.

ADC ini memiliki generator clock internal yang harus diaktifkan dengan

menghubungkan sebuah resisitor eksternal (R) antara pena CLK OUT dan CLK

IN serta sebuah kapasitor (C) antara CLK IN dan ground digital. Frekuensi clock

yang diperoleh di pena CLK OUT sama dengan f = 11,1RC . Untuk sinyal clock

ini dapat juga digunakan sinyal eksternal yang dihubungkan ke pena CLK IN.
ADC 0804 PARAREL PORT

Jangkah tegangan masukan analog dapat diubah selain 0-5 V dengan

memanfaatkan masukan Vref2. Hal ini akan mengakibatkan jangkauan tegangan

yang lebih sempit dikodekan menjadi 8 bit biner. Pada pemakaian normal pin

Vref2 tidak dihubungkan dan memiliki nilai 2,5Volt. Dengan menghubungkan

Vref2 jangkah masukan analog manjadi lebih rendah, misal jika dihubungkan

dengan tegangan 2V maka jangkauan menjadi 0-4V, dihubungkan dengan

tegangan 1,5V jangkauan menjadi 0-3V, dan sebagainya. Semakin rendah/kecil

jangkah maka akurasi akan menjadi semakin tinggi.

ADC 0804 menggunakan metode pengubahan successive approximation.

Pada ADC tipe ini masukan cuplikan dibandingkan dengan tegangan-tegangan

berurutan yang dibandingkan dengan tegangan-tegangan berurutan yang

dibangkitkan oleh successive approximation register (SAR) register. Proses akan

dimulai pada skala separuh penuh (MSB=1) dan jika berbeda dengan tegangan

dan masukan cuplikan, SAR akan mengatur keluaran digital sesuai kebutuhan.

Pengubahan dimulai dari bit signifikan terbesar dari keluaran biner.

Keadaan ini dinyatakan sebagai logika 1, diumpankan ke pengubah digital ke

analog, yang akan mengubahnya menjadi bentuk analog yang akan dibandingkan

dengan aras tegangan masukan cuplikan. Jika 1 pada MSB menunjukkan nilai

yang lebih besar dibandingkan masukannya, logika 1 akan diubah menjadi 0. jika

logika 1 pada MSB menunjukkan nilai yang lebih besar daripada masukan, maka

status dipertahankan.

Proses ini diulang untuk bit berikutnya, sampai dengan tegangan keluaran

ADC sama dengan aras masukan kira-kira separuh bit signifikan terkecil.
Perbedaan yang ada disebabkan kesalahan kuantitas yang muncul pada

pengubahan digital.

Successive approximation dapat dikendalikan oleh perangkat lunak yaitu

berupa sistem komputer. ADC ini relatif cepat dan mempunyai ukuran kecil.

Keuntungan tambahan adalah setiap cuplikan diubah pada selang waktu yang

sama. Dengan kata lain, waktu pengubahan tetap sama tidak bergantung pada

tegangan masukan dan secara keseluruhan ditentukan oleh frekuensi yang

mengendalikan clock dan resolusi dari pengubah. Kekurangan dari ADC jenis ini

adalah kekebalan yang rendah terhadap derau (noise) dan diperlukan adanya

pengubah digital ke analog yang tepat dan pembanding dengan unjuk kerja yang

tinggi.

Gambar 5.4. Rangkaian ADC dengan Vref/2 = 2,5 volt

Penggunaan referensi pada ADC 0804 dengan tujuan menentukan batas

maksimum keluaran digital pada konversi tegangan analog. Pada perancangan alat

ini pena Vref/2 pada ADC 0804 dihubungkan dengan rangkaian seperti pada
ADC 0804 PARAREL PORT

gambar. Rangkaian pada gambar diatur agar menghasilkan tegangan referensi buat

ADC 0804 sebesar 2,5 Volt. Dengan penggunaan Vref/2 = 2,5 Volt, maka pada saat

masukan pada ADC sebesar 0V, keluaran akan sama dengan 0000 0000 dan pada

saat tegangan masukan sebesar 5 Volt, maka keluaran akan sama dengan 1111

1111.

Konstanta-konstanta yang telah ditentukan diatas seperti resolusi ADC,

besar penguatan dan karakteristik sensor akan dipergunakan dalam perhitungan

nilai-nilai yang terbaca pada program.

Masukan CS ( chip select, aktif rendah) digunakan untuk mengaktifkan

ADC 0804. Jika CS berlogika 1, ADC 0804 tidak aktif (disable) dan semua

keluaran digital akan berada dalam keadaan Hi-Z (impedasi tinggi). Masukan

RD (read atau output enable) digunakan untuk mengaktifkan keluaran digital

ADC 0804. Kalau CS = RD = 0,keadaan logika di pena D0 – D7 akan mewakili

hasil konversi A/D terakhir dan dapat dibaca oleh mikrokontroler. Masukan (write

atau start convertion) digunakan untuk memulai proses konversi. Untuk itu WR

harus diberi logika 0. Keluaran INTR (interrupt atau end of convertion)

menyatakan akhir konversi. Pada saat dimulai proses konversi, INTR akan

berubah menjadi tinggi. Di akhir konversi INTR akan kembali ke logika 0.

Rangkaian Driver ADC0804

Rangkaian berikut digunakan untuk interfacing ADC 0804 dengan port

pararel. Rangkaian yang akan digunakan bermetode Free runing dengan 8 bit

keluaran yang akan masuk ke port data pada konektor DB25, sehingga lebih
sederhana. Konektor DB25 sendiri terdapat 25 port, sedangkan yang digunakan

adalah port data sebanyak 8 bit dan sebuah port control. Port data berfungsi untuk

mengambil data digital dari ADC, sedangkan port control berfungsi untuk

mengaktifkan ADC0804
P1
STAR T J3
1 U 2
1 4
2 1 8 6 2
1 5 1 7 D B 0 + IN 7 1
3 1 6 D B 1 -IN
D B 2 R 1
1 6 1 5 9
4 1 4 D B 3 V R E F /2 19
1 7 1 3 D B 4 C LKR 4 In p u t
5 1 2 D B 5 C L K IN
1 8 1 1 D B 6 1 R
6 D B 7 C S 2 C 1
1 9 STAR T 5 R D 3 STAR T
7 IN T R W R C AP N P
2 0
8 AD C 0804
2 1
9
2 2
1 0 VC C
2 3 J1
1 1
2 4 1
1 2 2
2 5
PO W ER
1 3

Y o PC

Gambar 5.6. Hasil pemasangan komponen-komponen

5.1. Pemrograman Antarmuka ADC0804 Dengan IO.dll

Setelah rangkaian antarmuka ADC0804 dibuat dan dihubungkan dengan

port pararel, maka sekarang saatnya Anda membuat program yang digunakan

untuk membaca data ADC tersebut.

Langkah-langkah pembuatan program pertama ini adalah sebagai berikut:

1. Buat aplikasi project baru dengan nama form frmadcdriver. Ubah ukuran

form menjadi seukuran Gambar


ADC 0804 PARAREL PORT

Hasil Pemasangan Pemrograman ADC0804 Dengan IO.dll

2. Klik ganda GroupBox pada Toolbox standart dan tempatkan pada form

sehingga terlihat seperti Gambar

3. Klik ganda kontrol Panel pada Toolbox standart dan tempatkan pada form

sehingga terlihat seperti Gambar

4. Klik ganda kontrol Timer pada Toolbox standart dan tempatkan pada form

sehingga terlihat seperti Gambar

5. Klik ganda kontrol Label pada Toolbox standart sebanyak tiga kali dan

tempatkan pada GroupBox sehingga terlihat seperti Gambar

6. Klik ganda kontrol BitBtn pada Toolbox Additional sebanyak tiga kali dan

tempatkan pada Panel sehingga terlihat seperti Gambar

7. Setelah selesai menyusun interfase seperti pada Gambar kemudian ubah

nama komponen/objek sbb:

Objek Properti Nilai properti Method lewat event


Form1 Name Fadcdriver
Caption Form ADC Dirver
Weight 375
Height 200
Button1 Name BtnHello Onclick
Caption Hello
Button2 Name BtnClear Onclick
Caption Clear Teks
Button3 Name BtnExit Onclick
Caption Exit
Label3 Name LblHello
Caption (kosong)
Font MS Sans Serif, Bold, Size = 24,
Color = clFuchsia
AutoSize True

8. Setelah selesai pembuatan form dan poperti, kita siap menulis kode-kode

program yang akan menjadikan program yang kita buat sesuai dengan

keinginan kita. Program ADC0804 driver ini memiliki even yang harus

ditangani, yaitu even FormCreate pada form. Untuk even FormCreate, klik

ganda OnClick, maka akan muncul editor program. Tulis kode program

sebagai berikut:

procedure TForm1.FormCreate(Sender: TObject);


begin
PortOut(lpt1+2,$20);
end;

9. Ketik kode program berikut untuk membuat procedure pemanggilan io.dll.

function PortIn(Port:Word):Byte;stdcall;
external'io.dll';
procedure PortOut(Port:Word;Data:Byte);stdcall;
external'io.dll';

10. Ketika tombol BitBtn1 ditekan, program akan menampilkan data ADC0804.

Untuk penulisan kode program, klik BitBtn1 kemudian pilih event dan klik

ganda OnClick, maka akan muncul editor program. Tulis kode program

sebagai berikut:

procedure TForm1.BitBtn1Click(Sender: TObject);


begin
start_freeruning;
timer1.Enabled:=true;
end;

11. Ketik kode program berikut untuk membuat prosedure tunda.

procedure tform1.tunda(waktu:integer);
var k:integer;
begin
ADC 0804 PARAREL PORT

for k:=0 to waktu do


begin
//nop
end;
end;

12. Ketik kode program berikut untuk membuat prosedure start_freeruning.

procedure tform1.start_freeruning;
var kontrol:byte;
begin
kontrol:=portin($37a);
kontrol:=kontrol or $20;
portout($37a,kontrol)
end;

13. Klik Timer1, kemudian pilih event dan klik ganda OnTimer, maka akan

muncul editor program. Tulis kode program sebagai berikut:

procedure TForm1.Timer1Timer(Sender: TObject);


var inport:byte;
dat : single;
data1:string;
begin
inport:= PortIn($378);
dat:=(inport);
str(dat:4:0,data1);
datain:=strtoint(data1);
label1.caption:=inttostr(round(datain/2));
end;

14. Klik BitBtn2, kemudian pilih event dan klik ganda OnClick, maka akan

muncul editor program. Tulis kode program sebagai berikut:

timer1.enabled:=false;

15. Klik BitBtn3 (Exit), kemudian pilih event dan klik ganda OnClick, maka

akan muncul editor program. Tulis kode program sebagai berikut:

Application.Terminate;
16. Simpan program dengan klik ikon Save pada Toolbar, lalu simpan project

dengan nama Pwelcom.dpr dan unit dengan nama Uwelcom.pas.

Anda mungkin juga menyukai