Anda di halaman 1dari 30

MATERI KULIAH MICROCONTROLLER

ANALOG TO DIGITAL CONVERTER ( ADC )


TUJUAN:
1. Mahasiswa memahami rangkaian interface mikrokontroller dengan ADC
0804
2. Mahasiswa memahami setting tegangan referensi Vref ADC0804
3. Mahasiswa memahami perhitungan tegangan resolusi ADC0804
4. Mahasiswa dapat memahami program assembly untuk menampilkan data
ADC ke 7 Segmen
5. Mahasiswa dapat memahami program assembly untuk menampilkan data
ADC ke LCD Karakter 2 x 16

1. TEORI DASAR ADC

ADC
TEORI DASAR DAN PEMROGRAMAN ADC

Page 1

Analog-to-Digital Converter adalah sebuah peralatan yang paling sering


digunakan untuk melakukan pencuplikan data (data acquisition). Komputer
Digital selalu menggunakan nilai-nilai biner (discrete), tapi dalam dunia nyata
semua adalah analog (continuous). Suhu, tekanan (gas atau cair), kelembaban,
dan kebisingan adalah beberapa contoh dari nilai-nilai fisika yang akrab dengan
kita. Nilai fisika tersebut harus dikonversi menjadi nilai listrik dengan alat yang
digolongkan sebagai tranduser. Tranduser kadang-kadang juga disebut sebagai
sensor. Masing-masing sensor misalnya Suhu, Velocity, Tekanan, Cahaya, dan
yang lainnya, memiliki output besaran listrik. Dan kita butuh sebuah konverter
analog-ke-digital untuk mengartikan besaran besaran listrik tersebut menjadi
besaran-besaran

angka

digital

yang

dimengerti

komputer.

Di

dunia

mikrokontroller chip yang sudah terkenal adalah ADC0804.

TEORI DASAR DAN PEMROGRAMAN ADC

Page 2

Chip ADC0804
Chip ADC0804 adalah konverter analog-ke-digital, turunan langsung dari
keluarga seri ADC800 buatan National Semiconductor. Sekarang chip sejenis
sudah dibuat oleh beberapa pabrik dan merek berbeda. Dia bekerja pada
tegangan 5 Volts dan memiliki resolusi 8-bit. Selain resolusi, waktu konversi
(convertion time) menjadi parameter yang sangat penting pula. Convertion Time
ini menunjukkan berapa lama waktu yang dibutuhkan oleh ADC untuk melakukan
1 kali konversi. Pada ADC0804 Convertion Time ditentukan oleh nilai clock yang
ad pada pin-pin CLK R dan CLK IN, dan paling cepat adalah 110uS. Pin-pin
dalam ADC0804 adalah sebagai berikut ini..
CS
Chip Select adalah input dengan aktif rendah yang digunakan untuk
mengaktifkan chip ADC0804. Agar kita dapat megakses chip ini, tentu saja pin ini
harus dibuat rendah terlebih dahulu.
RD (read)
Pin ini adalah input dan aktif rendah. Setelah ADC melaksanankan tugas pengkonversi-an, ADC akan menyimpan hasilnya pada register internalnya. pin RD
TEORI DASAR DAN PEMROGRAMAN ADC

Page 3

inilah yang digunakan untuk mengeluarkan data pada register internal tersebut,
keluar dari ADC0804 melalui pin D0-D7. Saat CS=0, dan adanya pulsa tinggi-kerendah pada RD maka hasil konversi 8-bit akan diteruskan pada pin D0-D7. Pin
RD ini juga disebut sebagai "Output Enable".
WR (Write, lebih cocokdisebut Start Convr.)
Ini adalah input aktif rendah yang digunakan untuk menginformasikan ADC0804
untuk segera memulai konversi. Jika CS = 0 dan ada pulsa tinggi-ke-rendah
pada WR, maka ADC akan memulai proses konversi nilai alnalog dari pin Vin
menjadi nilai digital 8-bit. Lama waktu konversi tergantung besaran kompoenen
yang kita pasanag pada CLK IN dan CLK R seperti yang sudha dijelaska
sebellumya.Begitu konversi selesai maka pin INTR akan langsung oleh ADC
dibuat rendah.
CLK IN dan LCK R
CLK IN adalah pin input yang dihubungkan pada sumber clock eksternal, jika kita
mengunakan sumber clock eksternal untuk pewaktuan/timming. Namun,
ADC0804 juga memiliki pembangkit clock sendiri di dalamnya. Untuk
menggunakan pembangkit clock tersebut kita hanya membutuhkan sebuah
capasitor dan sebuah resistor yang dihubugkan pada pin CLK IN dan CLK R
tersebut. Cara menghubungkan ke 2 komponen dan ke 2 pin tersebut
digambarkan pada gambar 12-5. Dalam kasus ini frekuensi clock ditentukan dari
perhitungan sbb:
f= 1/(1.1 R C)
Dimana R biasanya adalah resistor 10 k Ohms, dan C biasanya 150 PF.
Sehingga akan didapat f = 606 kHz. Dan dalam kasus ini kita akan mendapatkan
convertion time = 110uS.

TEORI DASAR DAN PEMROGRAMAN ADC

Page 4

Gambar 12-5 Menguji ADC0804 pada mode Free Running


INTR (Interupt, lebih cocok disebut :"koversi selesai")
Ini adalah output pin dengan aktif rendah. Normalnya pin ini adalah tinggi,dan dia
akan segera rendah hanya saat setelah selesainya proses konversi. Pin ini
biasanya digunakan untuk memberitahukan CPU bahwa konversi telah selesai
dan CPU bisa mengambil datanya pada pin-pin data.
Vin(+) dan Vin(-)
Ini adalah 2 buah input deferensial di mana sejatinya Vin = Vin(+) Vin(-). Jika
Vin(-) dihubungkan pada bumi (ground) maka berarti nilai pada Vin(+) adalah
sama dengan Vin, yakni nilai yang akan dikonversi.
Vcc

TEORI DASAR DAN PEMROGRAMAN ADC

Page 5

Ini adalah pin untuk catu daya 5 volts. Selain itu, jika pin 9 atau pin Vref/2
dibiarkan tidak terhubung maka tinggi tegangan Vcc inilah yang akan dijadikan
Vref-nya. Hal ini akan dijelaskan kemudian.
Vref/2
Pin 9 ini adalah input tegangan yang digunakan sebagai tegangan referensi. Jika
pin dibiarkan tidak terhubung, maka jangkauan tegangan input analog adalah
mulai dari 0 5 Volts. Pin ini sangat penting jika kita ingin mengubah ADC
dipekerjakan dalam jangkauan selain 0-5V tersebut. Misalnya agar ADC0804
dapat bekerja dalam jangkauan 0 4 Volts, maka kita harus menggunakan pin 9
ini dan menghubungkannya pada tegangan 2 Volts. Tabel 1.5 menunjukkan
jangkauan Vin dengan Vref/2 berbeda.
Table 12.5: Hubungan Vref/2 dan jangkauan Vin
Vref/2 (V)
tdk terhubung )*
2.0
1.5
1.28
1.0
0.5

Vin (V)
05
04
03
0 2.56
02
01

Ukuran Step (mV)


5/256 = 19.53
4/256 = 15.62
3/256 = 11.71
2.56/256 = 10
2/256 = 1.81
1/256 = 3.90

Catatan Vcc= 5 Volts


* Saat tidak terhubung (terbuka), Vref/2 terukur 2.56 secara internal, diukur
terhadap Vcc=5 Volts. Ukuran Step (resolusi) adalah perubahan terkecil yang
dapat dibaca oleh ADC.
D0 D7
ke 8-pin ini adalah output data digital. Mereka memiliki 3 status. Pin ini akan
merepresentasikan nilai hasil konversi terakhir yang dilakukan ADC, hanya saat
pin RD = 0.
Dout = Vin/Step Size
Dimana Dout adalah data output digital dalam desimal, dan Vin = adalah input
analog dalam tegangan, dan Step Size (resolusi) adalah nilai perubahan terkecil,
dimana (2 x Vref/2)/256 untuk ADC 8-bit.
Analog Ground dan Digital Ground
TEORI DASAR DAN PEMROGRAMAN ADC

Page 6

Ini adalah 2 pin input yang menghubungkan ground dari 2 bagian dalam chip
ADC0804, yakni bagian analog dan bagian digital. Digital Ground adalah
pasangan dari pin Vcc. Alasan kenapa terdapat 2 buah ground adalah agar
masing-masing rangkaian dapat benar-benar sedapat mungkin terpisah satu
sama lain. Sehingga pensaklaran digital yang terjadi terutama pada pin D0-D7
tidak mempengaruhi Vin, sehingga ditakutkan hasil yang diperoleh menjadi tidak
sesuai dengan yang diharapkan. Semakin terpisah maka kualitas konversi akan
menjadi semakin baik. Dalam prakteknya kita dapat menghubugkan ke 2 pin Gnd
pada ground yang sama, walaupun harus sedikit mengorbankan kualitas
konversi. Dalam hal masih belajar, bolehlah hal ini diabaikan. Untuk peralatan
profesional, maka ground ini menjadi masalah yang sangat penting yang harus
kita perhatikan.
Dari diskusi ini kita dapat menarik kesimpulan bahwa langkah-langkah berikut inilah
yang harus dilakukan untuk melakukan konversi pada chip ADC0804.
1. Buatlah CS = 0 dan kirim pulsa rendah-ke-tinggi pada pin WR untuk segera
melakukan konversi.
2. Selalu memonitor pin INTR. Jika INTR rendah, maka konversi selesai, dan kita dapat
segera ke langkah berikutnya. Namun jika INTR masih tinggi, maka kita harus
menunggu sampai dia rendah.
3. Setelah INTR rendah, maka pastikan CS=0 dan kirim pulsa tinggi-ke-rendah pada pin
RD. Sehingga kita dapat segera membaca hasil konversi pada D0-D7. Sedang
Timming Diagram adalah seperti pada Gambar12-6.

TEORI DASAR DAN PEMROGRAMAN ADC

Page 7

Gambar 12-6 Pewaktuan Read dan Write pada ADC0804

TEORI ADC LANJUTAN

Gambar 5.1 Rangkaian ADC0804


DASAR TEORI
Konverter A/D tersedia secara komersial sebagai rangkaian terpadu dengan resolusi 8 bit sampai
dengan 16 bit. Pada percobaan ini akan memperkenalkan ADC0801, yaitu sebagai sebuah
konverter A/D 8 bit yang mudah diinterfacekandengan sistem mikrokontroller. A/D ini
menggunakan metode approksimasi berturut-turut untuk mengkonversikan masukan analog (05V) menjadi data digital 8 bit yang ekivalen. ADC0801 mempunyai pembangkit clock internal
dan memerlukan catu daya +5V dan mempunyai waktu konversi optimum sekitar 100us.
Diagram konfigurasi pin ADC0804 ditunjukkan pada gambar 5.2. Pin 11 sampai 18 ( keluaran
digital ) adalah keluaran tiga keadaan, yang dapat dihubungkan langsung dengan bus data
bilamana diperlukan. Apabila CS ( pin 1 ) atau RD (pin2) dalam keadaan high (1), pin 11
sampai 18 akan mengambang ( high impedanze ), apabila CS dan RD rendah keduanya, keluaran

TEORI DASAR DAN PEMROGRAMAN ADC

Page 8

digital akan muncul pada saluran keluaran.Sinyal mulai konversi pada WR (pin 3). Untuk
memulai suatu konversi, CS harus rendah. Bilamana WR menjadi rendah, konverter akam
mengalami reset, dan ketika WR kembali kepada keadaan high, konversi segera dimulai.
Konversi detak konverter harus terletak dalam daereh frekuensi 100 sampai 800kHz. CLK IN
( pin 4) dapat diturunkan dari detak mikrokontroller, sebagai kemungkinan lain, kita dapat
mempergunakan pembangkit clock internal dengan memasang rangkaian RC antara CLN IN
( pin 4) dan CLK R ( pin 19).Pin 5 adalah saluran yang digunakan untuk INTR, sinyal selesai
konversi. INTR akan menjadi tinggi pada saat memulai konversi, dan akan aktiv rendah bila
konversi telah selesai. Tepi turun sinyal INTR dapat dipergunakan untuk menginterupsi sistem
mikrokontroller, supaya mikrokontroller melakukan pencabangan ke subrutine pelayanan yang
memproses keluaran konverter.Pin 6 dan 7 adalah masukan diferensial bagi sinyal analog. A/D
ini mempunyai dua ground, A GND (pin 8) dan D GND ( pin10). Kedua pin ini harus
dihubungkan dengan ground. Pin 20 harus dihubungkan dengan catu daya

+5V

A/D ini mempunyai dua buah ground, A GND ( pin 8 ) dan D GND ( pin 10). Keduanya harus
dihubungkan dengan catu daya, sebesar +5V.Pada A/D 0804 merupakan tegangan referensi yang
digunakan untuk offset suatu keluaran digital maksimum. Dengan persamaan sebagai berikut:

Misalnya anda menginginkan masuk analog maksimum sebesar 4 V, maka:


Vref=0.5 x 4 = 2 volt
Resolusi ini mempunyai arti sebagai berikut:
Vin (volt)

Data Digital (biner)

0,000

0000 0000

0,0156

0000 0001

0,0313

0000 0010

1111 1111

TEORI DASAR DAN PEMROGRAMAN ADC

Data Digital (desimal)

255

Page 9

A/D ini dapat dirangkai untuk menghasilkan konversi secara kontinu. Untuk
melaksanakannya, kita harus menghubungkan CS, dan RD ke ground dan
menyambungkan WR dengan INTR seperti pada gambar dibawah ini. Maka dengan ini
keluaran digital yang kontinu akan muncul, karena sinyal INTR menggerakkan masukan
WR. Pada akhir konversi INTR berubah menjadi low, sehingga keadaan ini akan
mereset konverter dan mulai konversi.
Tabel 5.1 Koneksi Interface ADC ke Mikrokontroller
ADC

Port Mikrokontroller

/INTR

P3.2

/WR

P3.6

/RD

P3.7

D0 s/d D7

P2.0 s/d P2.7

Tabel 5.2. Instruksi logika pada pin kontrol A/D 0804


INPUT

OUTPUT

KEGIATAN

/WR

/RD

/INTR

DO S/D D7

Hi-Z ( High Impedansi )

Hi-Z

Reset

Hi-Z

Hi-Z

Konversi Selesai

Data Out

Data Ready

TEORI DASAR DAN PEMROGRAMAN ADC

Page 10

2.PEMROGRAMAN ADC

Simbol skematik untuk konverter analog-ke-digital tipikal ditunjukkan di bawah ini. Di sebelah
kanan adalah sebuah ilustrasi bagaimana ADC dapat dihubungkan dengan 8051.

TEORI DASAR DAN PEMROGRAMAN ADC

Page 11

PEMROGRAMAN
HUBUNGAN PIN IC ADC
RD P3.7, WR P3.6
P3.7
0

P3.6
0

P3.5
1

P3.4
1

P3.3
1

P3.2
1

P3.1
1

P3.0
1

DATA
3F

DATA P2.0-P2.7

PROGRAM 1
Membaca data input analog dan simpan di Register R3
ORG 0H
LOOP:
MOV P3,#3FH
MOV R3,P2
SJMP LOOP
HASIL PEMBACAAN DATA INPUT ANALOG
DATA IPUT
ANALOG ( VOLT))
0.9
1.25
1.6
2.5
3.11
3.49
TEORI DASAR DAN PEMROGRAMAN ADC

DATA OUTPUT
DIGITAL
2E
40
52
69
9F
B2
Page 12

4.10
4.54
5.0

CD
E8
FF

MEMBACA DATA INPUT ANALOG OUTPUT MEMORI


ORG 0H
LOOP:
MOV P3,#3FH
MOV 45H,P2
SJMP LOOP

MEMBACA DATA INPUT ANALOG OUTPUT LED ( PORT 1 )


ORG 0H
LOOP:
MOV P3,#3FH
MOV P1,P2
SJMP LOOP
LATIHAN PEMROGRAMAN
MEMBACA DATA INPUT ANALOG DENGAN OUTPUT LED SHIFT LEFT
Jika data input analog 3.49 volt , maka output LED ( Shift Left )
Jika data input analog 1.25 Volt, maka output LED ( Shift Right )
MEMBACA DATA INPUT ANALOG DENGAN OUTPUT DISPLAY 7 SEGMENT
Jika data input analog 3.49 volt , maka output DISPLAY 3
Jika data input analog 1.25 Volt, maka output DISPLAY 1
JAWABAN PROGRAM-1
MODIFIKASI PROGRAM BERIKUT
ORG 0H
MOV R4,#20H
LOOP:
MOV P3,#3FH
MOV A,P2
CJNE A,#0B2H,SKANAN
CJNE A,#40H,SKIRI
SJMP LOOP
SKIRI:
mov A,#01H
LOOP1:
MOV P1,A
TEORI DASAR DAN PEMROGRAMAN ADC

Page 13

CALL DELAY
RL A
DJNZ R4, LOOP1
sjmp END
SKANAN:
mov A,#01H
LOOP2:
MOV P1,A
CALL DELAY
RR A
DJNZ R4, LOOP2
sjmp END
DELAY:
MOV R7,#10H
TUNDA:
MOV R6,#10H
DJNZ R6,$
DJNZ R7,TUNDA
RET
END:
END

TEORI DASAR DAN PEMROGRAMAN ADC

Page 14

Fungsi dari pin ADC adalah sebagai berikut:

CS-bar chip pilih

INTR-bar adalah baris interrupt - pergi rendah bila konversi selesai.

RD-bar memungkinkan saluran data.

WR-bar dibersihkan dan kemudian mengatur untuk memulai konversi.

Dalam contoh di atas antarmuka ADC ke 8051, garis CS-bar terhubung ke tanah secara
permanen mengaktifkan chip. Garis INTR-bar pergi RENDAH sekali konversi selesai, oleh
karena itu terhubung ke salah satu pin interrupt eksternal pada 8051. Dengan cara ini, pada 8051
akan terputus ketika konversi selesai dan data siap untuk membaca.
Baris data adalah tri-state (maka simbol segitiga terbalik) yang berarti chip ini dapat memori
dipetakan dan data garis dapat dihubungkan langsung ke data bus. Pada contoh di atas baris data
yang terhubung ke port 1, tapi karena mereka adalah tri-negara pelabuhan juga dapat digunakan
untuk sesuatu yang lain.
Hanya ketika konversi selesai adalah P2.0 dibersihkan yang memungkinkan jalur data dan
konversi analog muncul pada port 1. Garis WR-bar digunakan untuk memulai konversi. Kliring
ini me-reset garis mendaftar berturut-pendekatan internal dan 8-bit pergeseran mendaftar.
TEORI DASAR DAN PEMROGRAMAN ADC

Page 15

Ketika garis diatur konversi dimulai. Oleh karena itu, mengambil membaca dari ADC adalah
proses dua langkah:
1. Yang jelas dan kemudian menetapkan WR-bar untuk memulai konversi.
2. Beberapa waktu kemudian (biasanya 100 kita), garis INTR-bar akan pergi RENDAH
untuk menunjukkan konversi selesai. Hal ini akan menyebabkan interupsi eksternal 0 dan
terserah ke ISR 0 eksternal untuk membaca data dengan membersihkan P2.0 dan
membaca data dari port 1.
Menggunakan interrupt mikrokontroler memungkinkan untuk melakukan beberapa pekerjaan
selama 100 kita yang diperlukan untuk mengubah masukan analog menjadi digital.

MATERI PRAKTEK LABORATORIUM


MICROCONTROLLER
ADC ( Analog to Digital Converter )
TUJUAN

Mahasiswa memahami rangkaian interface mikrokontroller dengan ADC 0809

Mahasiswa memahami perhitungan input tegangan ADC

Mahasiswa memahami pemrograman assembly ADC

Format Analog I/O ( ADC dan DAC )


ADC
P2.0 s/d P2.7

data ADC

P3.7

ADC Read

TEORI DASAR DAN PEMROGRAMAN ADC

Page 16

P3.6

ADC Write

P1.0 P1.7

data DAC

P0.7

DAC write

DAC

Pemograman Dasar
1.1 Input Analog output Register
org 0h
loop:
mov p3,#3fh
mov R4,p2
sjmp loop
1.2 Input Analog output Memori
org 0h
loop:
mov p3,#3fh
mov 45h,p2
sjmp loop

1.3 Membaca input Analog , output Analog

TEORI DASAR DAN PEMROGRAMAN ADC

Page 17

org 0h
loop:
mov p3,#3fh
mov a,p2
mov p0,#7fh
mov p1,a
sjmp loop

1.4 Input Analog output LED


org 0h
mov r3,#8fh
loop:
mov p3,#3fh
mov a,p2
subb a,r3
jz loop2
mov p0,#7fh
mov p1,a
sjmp loop
loop2:
TEORI DASAR DAN PEMROGRAMAN ADC

Page 18

mov p1,#33h
jmp loop

TUgas/ Latihan
Mengghasilkan output yang sesesuai dengan perubahan data input Analog
Kemudian ditampilkan di output LED, Display, DAC ( analog output )
output LED
o

UP counter

Down Counter

UP-Down Counter

Jawaban Tugas-1
Jika tegangan input analog = 2.80 Volt, maka Output Up-Counter Aktif

org 0h
mov r3,#8fh
loop:
mov p3,#3fh
mov a,p2
subb a,r3
jz loop2
mov p0,#7fh
TEORI DASAR DAN PEMROGRAMAN ADC

Page 19

mov p1,a
sjmp loop
loop2:
mov r4,#00h
loop3:
mov a,r4
mov p1,a
call delay
inc a
mov r4,a
sjmp loop3
jmp loop

delay:
mov r7,#55h
loop4:
mov r6,#20h
djnz r6,$
djnz r7,loop4
ret
TEORI DASAR DAN PEMROGRAMAN ADC

Page 20

3.RANGKAIAN DAC

4.PEMROGRAMAN DAC

TEORI DASAR DAN PEMROGRAMAN ADC

Page 21

TEORI ADC LANJUTAN


Menguji ADC0804
Kita bisa menguji ADC0804 menggunakan rangkaian seperti pada Gambar 12-5.
Desain rangkain ini, disebut sebagai "Pengujian Model Free Running" dan ini yang
direkomendasikan oleh pabrik pembuat chip. Gambar 12-5 memperlihatkan adanya
sebuah potensiometer yang digunakan untuk memberikan tegangan analog variable 0
s/d 5 Volts, yang langsung dihubungkan pada pin Vin. Output biner dapat dilihat dari
TEORI DASAR DAN PEMROGRAMAN ADC

Page 22

nyala LED. Harap diperhatikan pula dalam mode free running ini input CS selalu diground. Dan input WR terhubung pada output INTR. Namun menurut data sheet yang
dikeluarkan oleh "National Semiconductor", bahwa WR dan INTR, keduanya sebaiknya
harus dibuat rendah sesaat begitu chip dinyalakan, untuk menjamin operasi yang
sempurna.

Gambar 12-7 Hubungan ADC0804 dengan sumber clock mandiri

Contoh 12-1
Buatlah hubungan ADC0804 dengan 8051 seperti pada gambar 12-7. Dan
kemudian tulis program untuk memonitor pin INTR dan baca nilai dari input
analog ke Akumulator. Kemudian panggil rutin konversi Hex-to-ASCII, dan
rutin Display untuk menampilkan nilai tersebut. Buat hal tersebut berulang.

jawaban:

TEORI DASAR DAN PEMROGRAMAN ADC

Page 23

;P2.6 = WR (Start convertion need to L to H pulse)


;P2.7 when low, end-of-convertion
;P2.5 = RD (a H-to-L will read the data from ADC Chip)
;P1.0 P1.7 = D0 D7 of ADC0804
;
MOV P1,#0FFh
ULANG:

CLR P2.6

SETB P2.6
TUNGGU:

;buat P1 sebagai input


;WR = 0
;WR = 1 >> L-H = Mulai Konversi

JB P2.7,TUNGGU

CLR P2.5
MOV A,P1

;RD = 0
;Baca data

ACALL HEXTOASCII
ACALL DATA_DISPLAY
SETB P2.5

;sampai selesai konversi

;-panggil rutin
;-panggil rutin

;RD = 1 untuk berikutnya

SJMP ULANG

Catatan : rutin Konversi Hex To ASCII lihat Bab 7

TEORI DASAR DAN PEMROGRAMAN ADC

Page 24

Gambar 12-8 Hubungan ADC0804 dengan sumber clock XTAL2 milik 8051
Perhatikan gambar 12-8, clock untuk ADC0804 datang dari kristal milik mikrokontroller.
Mengingat frekuensi tersebut masih terlalu tinggi, maka kita menggunakan flip-flop typeD (74LS74) untuk membagi frekuensi tersebut 4 kali. Seperti yang nampak pada
gambar kita menggunakan 2 buah flip-flop. Untuk prosesor yang menggunakan kristal
lebih tinggi lagi, maka terpaksa kita juga akan menambah flip-flopnya, sehingga
frekuensi clock yang diberikan masih dapat diterima oleh ADC0804.
Menghubungkan sensor suhu pada 8051
Tranduser mengkonversi data fisika seperti suhu, intensitas cahaya, aliran, dan
kecepatan, menjadi sebuah sinyal listrik. Tergantung dari tranduser yang kita pakai,
output keluaran yang dihasilkan bisa berupa Tegangan (Volt), Arus (Current), Resistansi
(Resistance), atau kapasitas (Capacitance). Misalnya suhu diubah menjadi sinyal listrik
menggunakan tranduser yang disebut dengan thermistor. Thermistor merespon
perubahan suhu dengan berubahnya resistansi diri thermistor tersebut, walaupun
sebenarnya respon tersebut tidak linier, seperti yang ditampilkan pada Tabel 12-6.

TEORI DASAR DAN PEMROGRAMAN ADC

Page 25

Tabel 12-6. Resistansi Thermistor dibanding Suhu


Temperature(C)
Tf (KOhms)
0
29.490
25
10.000
50
3.893
75
1.700
100
0.817
Tabel 12-7. Petunjuk Pilihan Sensor Suhu Seri LM34
Part
Range
Acuuracy
Output Scale
LM34A
-50 F to +300 F +2.0 F
10 mV/F
LM34
-50 F to +300 F +3.0 F
10 mV/F
LM34CA -40 F to +230 F +2.0 F
10 mV/F
LM34C
-40 F to +230 F +3.0 F
10 mV/F
LM34D
-32 F to +212 F +4.0 F
10 mV/F
Tabel 12-8. Petunjuk Pilihan Sensor Suhu Seri LM35
Part
Range
Acuuracy
Output Scale
LM35A
-55 C to +150 C +1.0 C
10 mV/C
LM35
-55 C to +150 C +1.5 C
10 mV/C
LM35CA -40 C to +110 C +1.0 C
10 mV/C
LM35C
-40 C to +110 C +1.5 C
10 mV/C
LM35D
0 C to +100 C +2.0 C
10 mV/C
Akan menjadi sangat sulit membuat sebuah program komputer/mikrokontroller untuk
mendapat petunjuk suhu yang tepat dari sebuah tranduser yang tidak linier. Dengan
alasan ini National Semiconductor telah meluncur seri sensor terbaik mereka yang
terkenal sejak lama sampai sekarang, yakni LM34 dan LM35. Merupakan sebuah
tranduser (sensor) yang sangat linier, yang bisa kita gunakan dengan sangat
mudahnya.
Sensor suhu LM34 dan LM35
Sensor-sensor dari seri LM34 adalah sebuah sensor suhu yang sangat presisi dalam
kemasan IC TO-92. Yang mana keluarannya adalah tegangan linier yang proporsional
terhadap derajat suhu Fahrenheit. LM34 tidak membutuhkan kalibrasi eksternal, karena
sudah memiliki peralatan kalibrasi otomatis di dalamnya. Keluaran 10mV adalah setara
dengan setiap derajat Fahrenheit. Tabel 12-7 adalah daftar pilihan untuk LM34.
Sensor-sensor dari seri LM35 adalah mirip dengan LM34, hanya saja dia memiliki
tegangan keluaran yang proporsional terhadap derajat suhu Celcius (Centigrade).
Seperti juga dengan LM34, sensor ini juga tidak membutuhkan kalibrasi eksternal.
Setiap keluaran 10mV dari sensor ini, setara dengan setiap derajat Celcius. Tabel 12-8
TEORI DASAR DAN PEMROGRAMAN ADC

Page 26

menjelaskan pilihan untuk LM35. (Untuk lebih jauh tentang sensor-sensor ini kunjungi
www.national.com).
Pengkondisian Sinyal dan menghubungkan LM35 dengan 8051
Pengkondisian sinyal digunakan secara luas dalam pekerjaan pencuplikan data (data
acquisition). Sebuah tranduser yang paling umum menghasilkan output dalam bentuk
tegangan, arus, muatan, kapasitas, dan resistansi. Namun, kita butuh untuk
mengkoversi sinyal-sinyal tersebut ke dalam bentuk Voltage (tegangan), yang ujungnya
nanti akan kita kirim pada konverter A-D. Konversi (modifikasi) ini biasa disebut dengan
Pengkondisian sinyal. Pengkondisian sinyal dapat berupa konversi arus-ke-tegangan,
atau penguatan sinyal. Misalnya, thermistor berubah resistansinya akibat suhu.
Perubahan resistansi tersebut harus diterjemahkan ke dalam tegangan karena nanti
kita menggunakan ADC. Lihat pada kasus menghubungkan LM35 pada ADC0804.
Mengingat ADC0804 memiliki resolusi 8-bit dengan maksimum 256(2exp8) langkah dan
LM35 (atau LM34) menghasilkan 10mV setiap derajat dari perubahan suhu. Kita bisa
mengkondisikan Vin dari ADC0804 untuk menghasilkan Vout 2560mV (2.56V)
jangkauan keluaran maksimumnya. Sehingga pada akhirnya ADC0804 akan
menghasilkan keluaran 1 bilangan biner setara dengan 1 derajat suhu.
Agar ADC0804 bisa dibuat untuk memiliki skala 0 2560 mV saja, kita harus membuat
tegangan Vref/2 menjadi setengah tegangan maksimum yang diinginkan, yakni 1.28V.
Lihat
Tabel
12-9,
dan
nilai
Vref/2
diberikan
Tabel
12-5.

Gambar 12-9. Pengambilan data dari Dunia Analog


Tabel 12-9. Temperature Vs Vout of ADC0804
TEORI DASAR DAN PEMROGRAMAN ADC

Page 27

Temp (C)
0
1
2
3
10
20

Vin(mV)
0
10
20
30
100
300

DOutput(D7-D0)
0000 0000
0000 0001
0000 0010
0000 0011
0000 1010
0001 1110

Gambar 12-10 Hubungan ADC0804 dan Sensor Suhu


Gambar 12-10 menunjukkan hubungan sensor suhu pada ADC0804. Perhatikan
penggunaan dioda zener 3,9V untuk menstabilkan tegangan keluaran yang ada pada
pot 10K, tetap 1,28 Volts. Penggunaan dioda zener tersebut untuk menghilangkan
setiap fluktuasi yang disebabkan sumber catu daya yang kurang baik.
Chip ADC0808/9 dengan 8 kanal masukan
Chip yang sangat berguna lainnya adalah ADC0808 atau ADC0809 dari National
Semiconductor. Lihat gambar 12-11. Dimana ADC0804 hanya memiliki 1 input analog,
sementara chip ini memiliki 8 input. Dengan chip ADC0808/9 ini membuat kita bisa
memonitor keluaran dari 8 tranduser berbeda, semuanya hanya dari 1 chip saja.
Perhatikan bahwa ADC0804 juga memiliki 8-bit output data persis seperti ADC0804. 8
kanal input analog tersebut di-multiplex dan dipilih berdasarkan Tabel 12-10 dengan
menggunakan 3 pin pengalamatan A, B dan C.

TEORI DASAR DAN PEMROGRAMAN ADC

Page 28

Gambar 12-11. ADC0808/0809

Tabel 12-10. Pemilih Kanal input ADC0808


Kanal Analog yang dipilih
C
B
IN0
0
0
0
IN1
0
0
1
IN2
0
1
0
IN3
0
1
1
IN4
1
0
0
IN5
1
0
1
IN6
1
1
0
IN7
1
1
1

Pada ADC0808/9, Vref(+) dan Vref(-) diatur sebagai tegangan refrensi. Jika Vref(-) =
Gnd dan Vref(+) = 5 V, maka ukuran step adalah 5V / 256 = 19.53 mV per step.
Sehingga untuk mendapatkan ukuran step menjadi 10mV, maka kita harus mengubah
tegangan Vref(-) = Gnd dan Vref(+) = 2.56V. Dari gambar 12-11, lihat pin ALE. Kita
menggunaan alamat A, B, dan C untuk memilih IN0 IN7, dan perlu mengaktifkan ALE
untuk mengunci alamat. SC berarti Start Convertion. EOC berarti End Of Convertion,
dan OE berarti Output Enable. Selanjutnya, kita harus membuat kode untuk itu semua.
Langkah-langkah pemrograman ADC0808/9

TEORI DASAR DAN PEMROGRAMAN ADC

Page 29

Berikut ini adalah langkah-langkah untuk mendapatkan data dari input analog
ADC0808/9 menuju mikro kontroller.
1. Pilih kanal analog dengan mengatur bit alamat A, B, dan C sepeti pada Tabel 12-10.
2. Aktifkan pin ALE (Address Latch Enable). Dia membutuhkan pulsa rendah-ke-tinggi
untuk segera dapat mengunci alamat yang sudah diberikan.
3. Aktifkan pin SC (Start Convertion) dengan memberikan pulsa tingg-ke-rendah agar
ADC segera melakukan konversi.
4. Periksa pin EOC (End Of Convertion) untuk melihat apakah konversi sudah selesai
atau belum. Begitu pin tersebut menjadi rendah menandakan konversi telah selesai.
5. Aktifkan pin OE (Output nable) untuk membaca data keluar dari ADC. Berikan pulsa
tinggi-ke-rendah pada pin OE tersebut.
Perhatikan bahwa ADC0808/9 tidak memiliki pembangkit clock sendiri. Clock harus
diberikan kepadanya pada pin CLK yang sumbernya dari peralatan lain (Misalnya Mikro
Kontroller). Sehingga kecepatan konversi tergantung dari frekuensi clok yang terhubung
kepadanya, dan tidak pula bisa melebihi 100mS.
Ringkasan
Pada BAB ini ditunjukkan bagaimana menghubungkan peralatan Dunia Nyata seperti
LCD, Chip ADC, dan sensor-sensor, pada 8051. Pertama, kita dijelaskan tentang mode
operasi LCD, dan kemudian dijelaskan bagaimana memprogam LCD dengan
mengirimkan Command atau Data lewat koneksi hubungan dengan 8051 tersebut.
Kemudian kita menggali chip ADC dan sensor suhu. Mengambil data dari Dunia Nyata
menuju ke peralatan Digital yang disebut dengan Signal Conditioning. Dan itu adalah
hal yang paling mendasar dari "system akuisisi data".

TEORI DASAR DAN PEMROGRAMAN ADC

Page 30

Anda mungkin juga menyukai