Top Banner
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 TEORI DASAR DAN PEMROGRAMAN ADC Page 1
36

Modul Teori Dan Pratikum Adc New

Nov 30, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Modul Teori Dan Pratikum Adc New

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

TEORI DASAR DAN PEMROGRAMAN ADC Page 1

Page 2: Modul Teori Dan Pratikum Adc New

ADC

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

Page 3: Modul Teori Dan Pratikum Adc New

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 peng-

konversi-an, ADC akan menyimpan hasilnya pada register internalnya. pin RD

TEORI DASAR DAN PEMROGRAMAN ADC Page 3

Page 4: Modul Teori Dan Pratikum Adc New

inilah yang digunakan untuk mengeluarkan data pada register internal tersebut,

keluar dari ADC0804 melalui pin D0-D7. Saat CS=0, dan adanya pulsa tinggi-ke-

rendah 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

Page 5: Modul Teori Dan Pratikum Adc New

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

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

TEORI DASAR DAN PEMROGRAMAN ADC Page 5

Page 6: Modul Teori Dan Pratikum Adc New

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)                Vin (V)                Ukuran Step (mV)tdk terhubung )*      0 – 5                  5/256 = 19.532.0                       0 – 4                  4/256 = 15.621.5                       0 – 3                  3/256 = 11.711.28                      0 – 2.56               2.56/256 = 101.0                       0 – 2                  2/256 = 1.810.5                       0 – 1                  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

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

TEORI DASAR DAN PEMROGRAMAN ADC Page 6

Page 7: Modul Teori Dan Pratikum Adc New

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.

 

Gambar 12-6 Pewaktuan Read dan Write pada ADC0804

TEORI DASAR DAN PEMROGRAMAN ADC Page 7

Page 8: Modul Teori Dan Pratikum Adc New

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 (0-

5V) 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

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

TEORI DASAR DAN PEMROGRAMAN ADC Page 8

Page 9: Modul Teori Dan Pratikum Adc New

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) Data Digital (desimal)

0,000 0000 0000

0,0156 0000 0001

0,0313 0000 0010

4 1111 1111 255

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

TEORI DASAR DAN PEMROGRAMAN ADC Page 9

Page 10: Modul Teori Dan Pratikum Adc New

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 )

1 1 1 - -

0 1 1 Hi-Z Reset

1 1 1 Hi-Z -

1 1 0 Hi-Z Konversi Selesai

1 0 1 Data Out Data Ready

TEORI DASAR DAN PEMROGRAMAN ADC Page 10

Page 11: Modul Teori Dan Pratikum Adc New

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

Page 12: Modul Teori Dan Pratikum Adc New

PEMROGRAMAN HUBUNGAN PIN IC ADC

RD P3.7, WR P3.6

P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 DATA0 0 1 1 1 1 1 1 3F

DATA P2.0-P2.7

PROGRAM 1Membaca data input analog dan simpan di Register R3

ORG 0HLOOP:MOV P3,#3FHMOV R3,P2SJMP LOOP

HASIL PEMBACAAN DATA INPUT ANALOG

DATA IPUTANALOG ( VOLT))

DATA OUTPUT DIGITAL

0.9 2E1.25 401.6 522.5 693.11 9F3.49 B2

TEORI DASAR DAN PEMROGRAMAN ADC Page 12

Page 13: Modul Teori Dan Pratikum Adc New

4.10 CD4.54 E85.0 FF

MEMBACA DATA INPUT ANALOG OUTPUT MEMORI ORG 0H

LOOP:MOV P3,#3FHMOV 45H,P2SJMP LOOP

MEMBACA DATA INPUT ANALOG OUTPUT LED ( PORT 1 ) ORG 0H

LOOP:MOV P3,#3FHMOV P1,P2SJMP 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 0HMOV R4,#20HLOOP:MOV P3,#3FHMOV A,P2CJNE A,#0B2H,SKANANCJNE A,#40H,SKIRISJMP LOOP

SKIRI:mov A,#01H

LOOP1:MOV P1,A

TEORI DASAR DAN PEMROGRAMAN ADC Page 13

Page 14: Modul Teori Dan Pratikum Adc New

CALL DELAY RL ADJNZ R4, LOOP1sjmp END

SKANAN:mov A,#01H

LOOP2:MOV P1,ACALL DELAY RR ADJNZ R4, LOOP2sjmp END

DELAY:MOV R7,#10H

TUNDA:MOV R6,#10HDJNZ R6,$DJNZ R7,TUNDARET

END:END

TEORI DASAR DAN PEMROGRAMAN ADC Page 14

Page 15: Modul Teori Dan Pratikum Adc New

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

Page 16: Modul Teori Dan Pratikum Adc New

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

P3.6 ADC Write

TEORI DASAR DAN PEMROGRAMAN ADC Page 16

Page 17: Modul Teori Dan Pratikum Adc New

DAC

P1.0 – P1.7 data DAC

P0.7 DAC write

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

org 0h

loop:

mov p3,#3fh

TEORI DASAR DAN PEMROGRAMAN ADC Page 17

Page 18: Modul Teori Dan Pratikum Adc New

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:

mov p1,#33h

jmp loop

TUgas/ Latihan

Mengghasilkan output yang sesesuai dengan perubahan data input

Analog

TEORI DASAR DAN PEMROGRAMAN ADC Page 18

Page 19: Modul Teori Dan Pratikum Adc New

Kemudian ditampilkan di output LED, Display, DAC ( analog output )

output LED

o UP counter

o Down Counter

o 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

mov p1,a

sjmp loop

loop2:

mov r4,#00h

loop3:

mov a,r4

mov p1,a

call delay

TEORI DASAR DAN PEMROGRAMAN ADC Page 19

Page 20: Modul Teori Dan Pratikum Adc New

inc a

mov r4,a

sjmp loop3

jmp loop

delay:

mov r7,#55h

loop4:

mov r6,#20h

djnz r6,$

djnz r7,loop4

ret

3.RANGKAIAN DAC

TEORI DASAR DAN PEMROGRAMAN ADC Page 20

Page 21: Modul Teori Dan Pratikum Adc New

4.PEMROGRAMAN DAC

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

TEORI DASAR DAN PEMROGRAMAN ADC Page 21

Page 22: Modul Teori Dan Pratikum Adc New

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 nyala LED. Harap diperhatikan pula dalam mode free running ini input CS selalu di-ground. 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.

 

TEORI DASAR DAN PEMROGRAMAN ADC Page 22

Page 23: Modul Teori Dan Pratikum Adc New

jawaban:

 

;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         ;buat P1 sebagai input

ULANG:      CLR  P2.6             ;WR = 0

            SETB P2.6             ;WR = 1 >> L-H = Mulai Konversi

TUNGGU:     JB   P2.7,TUNGGU      ;sampai selesai konversi

            CLR  P2.5             ;RD = 0

            MOV  A,P1             ;Baca data

            ACALL HEXTOASCII      ;-panggil rutin

            ACALL DATA_DISPLAY    ;-panggil rutin

            SETB P2.5             ;RD = 1 untuk berikutnya

            SJMP ULANG

 

Catatan : rutin Konversi Hex To ASCII lihat Bab 7 

TEORI DASAR DAN PEMROGRAMAN ADC Page 23

Page 24: Modul Teori Dan Pratikum Adc New

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 type-D (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 24

Page 25: Modul Teori Dan Pratikum Adc New

 Tabel 12-6. Resistansi Thermistor dibanding SuhuTemperature(C)         Tf (KOhms)0                      29.49025                     10.00050                     3.89375                     1.700100                    0.817

 Tabel 12-7. Petunjuk Pilihan Sensor Suhu Seri LM34 Part       Range              Acuuracy       Output ScaleLM34A      -50 F to +300 F    +2.0 F         10 mV/FLM34       -50 F to +300 F    +3.0 F         10 mV/FLM34CA     -40 F to +230 F    +2.0 F         10 mV/FLM34C      -40 F to +230 F    +3.0 F         10 mV/FLM34D      -32 F to +212 F    +4.0 F         10 mV/F

 Tabel 12-8. Petunjuk Pilihan Sensor Suhu Seri LM35Part       Range              Acuuracy       Output ScaleLM35A      -55 C to +150 C    +1.0 C         10 mV/CLM35       -55 C to +150 C    +1.5 C         10 mV/CLM35CA     -40 C to +110 C    +1.0 C         10 mV/CLM35C      -40 C to +110 C    +1.5 C         10 mV/CLM35D        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.

TEORI DASAR DAN PEMROGRAMAN ADC Page 25

Page 26: Modul Teori Dan Pratikum Adc New

Setiap keluaran 10mV dari sensor ini, setara dengan setiap derajat Celcius. Tabel 12-8 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  

TEORI DASAR DAN PEMROGRAMAN ADC Page 26

Page 27: Modul Teori Dan Pratikum Adc New

Tabel 12-9. Temperature Vs Vout of ADC0804Temp (C)        Vin(mV)            DOutput(D7-D0)0               0                  0000 00001               10                 0000 00012               20                 0000 00103               30                 0000 001110              100                0000 101020              300                0001 1110  

Gambar 12-10 Hubungan ADC0804 dan Sensor SuhuGambar 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 27

Page 28: Modul Teori Dan Pratikum Adc New

Gambar 12-11. ADC0808/0809

 

Tabel 12-10. Pemilih Kanal input ADC0808Kanal Analog yang dipilih        C          B         A    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 28

Page 29: Modul Teori Dan Pratikum Adc New

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 29

Page 30: Modul Teori Dan Pratikum Adc New

TEORI DASAR DAN PEMROGRAMAN ADC Page 30