MENGGUNAKAN
ANALOG TO DIGITAL CONVERTER /ADC0820
1
pemilih mode, dikoneksikan ke VCC (mode WR-RD)
7 Mode
sinyal baca hasil konversi
8 /RD
sinyal keluaran penanda konversi selesai (EOC)
9 /INT
10 GND Ground
VREF(-) tegangan sisi bawah dari resistor ladder , jangkauan
11 tegangannya GND ≤ VREF(-) ≤ VREF(+)
19 NC tidak dihubungkan
20 VCC tegangan positif catu daya
Catatan:
Untuk parameter DC maupun AC dapat dilihat secara lengkap pada datasheet (Lihat di CD).
I.1.2Kerja ADC
Secara umum kerja ADC terdiri atas tiga runtun yaitu :
-memulai konversi (START),
-melakukan konversi,
-memberitahu akhir konversi
Untuk memulai konversi maka sinyal /CS dan /WR diberi logika rendah (0). Beberapa chip
ADC mengunakan nama WR dengan START.
Setelah ADC menerima sinyal mulai konversi maka ADC akan melakukan proses konversi
yang ditandai dengan keluaran /INT tinggi (beberapa chip ADC menamakan dengan
keluaran End of Conversion /EOC).
Akhir konversi ditandai dengan logika rendah pada keluaran /INT. Pada akhir konversi data
digital dihasilkan dan dapat dibaca melalui kaki DB0 s/d DB7 (bus data) dengan
mengaktifkan /RD.
Diagram pewaktuan kerja ADC diperlihatkan pada Gambar I.6. Untuk mempercepat proses
konversi maka sinyal /RD dapat diakifkan sebelum akhir proses konversi namun pembacaan
data tetap setelah sinyal /INT aktif sebagaimana pada Gambar I.6.
Pada mode stand alone atau free running sinyal /CS dan /RD diberi logika rendah. Sinyal
akhir konversi (/INT) digunakan untuk mengaktifkan /RW oleh karena itu kaki /INT
dikoneksikan dengan kak /RW. Sinyal /RW masih harus diaktifkan secara eksternal (saklar
atau dari mikrokontroler). Diagram pewaktuan diperlihatkan pada Gambar I.6.
2
Gambar I.6 Diagram pewaktuan Kerja ADC (mode WR-RD)
Gambar I.6 Operasi stand alone atau free running (mode WR-RD)
I.1.3Tegangan Referensi
Tegangan referensi VREF terdiri atas VREF(+) dan VREF(-). Tegangan VREF merupakan
deferensial antara VREF(+) dan VREF(-), sehingga nilai VREF = VREF(+) - VREF(-). Tegangan
masukan yang nilainya sama dengan VREF(-) akan dikonversi ke data 0x00 (nol) dan
tegangan masukan yang nilainya sama dengan VREF(+) akan dikonversi ke data 0xff (skala
penuh). Dengan mengurangi VREF maka sensitivitas ADC akan meningkat.
3
Contoh:
VREF = 2,55 Volt maka 1 LSB = 2,55 Volt/255 = 10 mV.
I.1.4.1.1Antarmuka
Gambar I.6 contoh antarmuka dengan mikrokontroler menggunakan teknik terkoneksi port.
Bus data ADC dikoneksikan dengan Port 0. Signal WR, CS, dan RD masing-masing
dikoneksikan dengan P2.0, P2.1, dan P2.2. Sedangkan /INT dikoneksikan dengan P3.3
(INT1) untuk antisipasi jika menggunakan teknik interupsi dalam pembacaan data hasil
konversi.
Data analog berupa tegangan keluaran potensiometer dengan jangkauan tegangan dari 0V
s/d 5V. Vref(+) dikoneksikan dengan Vcc (+5V) dan Vref(-) dikoneksikan dengan ground.
I.1.4.1.2Pemrograman
Antarmuka dengan teknik terkoneksi dengan port seluruh algoritma konversi
diimplementasikan menggunakan perangkat lunak, oleh karena itu program menjadi lebih
panjang jika dibandingkan dengan teknik terpetakan memori.
Fungsi Konversi
Untuk memerintahkan ADC melakukan konversi dan kemudian membaca hasil konversinya,
cukup dibuat satu fungsi. Adapun algorimanya adalah sebagai berikut.
1.Aktifkan pulsa Start (WR dan CS =0 kemudian 1 kembali)
4
2.Tunggu sampai konversi selesai (INT=0)
3.Baca data hasil konversi (RD dan CS =0, baca port yang terkonekasi dengan
bus data ADC).
I.1.4.1.3Aplikasi
#include<at89x51.h>
#include<stdio.h>
#include "tunda_keras.h"
#include "lcd_4bit.h"
#define data_ADC P0
#define WR_ADC P2_0
#define CS_ADC P2_1
#define RD_ADC P2_2
#define INT_ADC P3_3
5
void putchar(char datanya) //standar output diarahkan ke LCD
{
Tulis_LCD4bit(datanya);
}
void main()
{
Uchar hs=9;
Tunda_ms(60);
Init_LCD4bit();
while(1)
{
Kirim_Perintah4bit(0x01);
hs=ADC();
printf_small("Hasil =%d",hs);
Tunda_ms(1000);
}
}
I.1.4.2Terpetakan Memori
Selain menggunakan teknik terkoneksi port, antarmuka ADC0820 juga dapat dilakukan
dengan teknik terpetakan memori. Ruang memori yang digunakan adalah ruang memori
data eksternal. Perlu diingat adalah ADC merupakan peralatan masukan sehingga hanya
dapat dibaca saja. Penulisan pada ADC digunakan untuk mengaktifkan sinyal start bukan
untuk menulis/mengeluarkan data ke ADC.
I.1.4.2.1Antarmuka
Agar dapat membandingkan dengan teknik terkoneksi ke port maka keluaran data ADC
tetap dikoneksikan dengan Port 0 (P0). Kaki RD dan WR pada ADC masing-masing
dihubungkan dengan kaki RD ( P3.7) dan WR (P3.6) pada mikrokontroler sedangkan kaki
CS dihubungkan dengan keluaran dekoder alamat untuk menentukan alamat ADC.
6
Contoh:
Gambar I.6 di atas adalah contoh antarmuka ADC dengan mikrokontroler terpetakan
memori. Hanya jalur alamat A15, A14, dan A13 saja yang menjadi masukan dekoder alamat
sehingga logika 1 atau 0 pada jalur alamat yang lainnya tidak mempengaruhi aktif tidaknya
ADC. Akibatnya akan terjadi duplikasi alamat yang sangat banyak untuk komponen ADC.
Karena jalur alamat yang tidak dikoneksikan dengan masukan ADC sebanyak 13 bit maka
akan terjadi duplikasi alamat sebanya 213 – 1 = 8191 alamat
I.1.4.2.2Pemrograman
Pada teknik terpetakan memori ADC dianggap sebagai variabel yang berada di ruang
memori data eksternal oleh karena itu perlu dideklarasikan sebagai variabel.
Fungsi Konversi
Uchar ADC()
{
adc_data=0xff;
while(INT_ADC==1);
return(adc_data);
}
I.1.4.2.3Aplikasi
#include<at89x51.h>
#include<stdio.h>
#include "tunda_keras.h"
#include "lcd_4bit.h"
Uchar ADC()
{
adc_data=0xff;
while(INT_ADC==1);
return(adc_data);
}
7
{
Tulis_LCD4bit(datanya);
}
void main()
{
Uchar hs=9;
Tunda_ms(60);
Init_LCD4bit();
while(1)
{
Kirim_Perintah4bit(0x01);
hs=ADC();
printf_small("Hasil =%d",hs);
Tunda_ms(1000);
}
}