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
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
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
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
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
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
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
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
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
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
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 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
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
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
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
P3.6 ADC Write
TEORI DASAR DAN PEMROGRAMAN ADC Page 16
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
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
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
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
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
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
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
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
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
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
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
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
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