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
           
          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.
          
 
Gambar 5.2 Konfigurasi pin ADC0804
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 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 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.3 | 
| /RD | P3.4 | 
| D0 s/d D7 | P1.0 s/d P1.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 | 
          Percobaan 5.1. ADC0804 dan Display ke 7 Segmen
Pada percobaan ini, Data ADC dalam desimal akan ditampilkan pada 8 x 7 Segmen pada Display 1, Display 2, dan Display 3 yang masing-masing menampilkan data ratusan, puluhan dan satuan.
 
          (a)
          
          (b)
Gambar 5.3. Interface rangkaian display 7 segmen
Tabel 5.1. kebenaran 74LS138
INPUT SELECTOR   |              ENABLE  |              OUTPUT  |            |||||||||||
 C  |              B  |              A  |              G1  |              /G2A  |              /G2B  |              Y1  |              Y2  |              Y2  |              Y3  |              Y4  |              Y5  |              Y6  |              Y7  |            
0  |              0  |              0  |              1  |              0  |              0  |              0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 
0  |              0  |              1  |              1  |              0  |              0  |              1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 
0  |              1  |              0  |              1  |              0  |              0  |              1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 
0  |              1  |              1  |              1  |              0  |              0  |              1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 
1  |              0  |              0  |              1  |              0  |              0  |              1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 
1  |              0  |              1  |              1  |              0  |              0  |              1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 
1  |              1  |              0  |              1  |              0  |              0  |              1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 
1  |              1  |              1  |              1  |              0  |              0  |              1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 
Pada tabel kebenaran tersebut tampak bahwa seven segmen yang hidup tergantung pada output dari dekoder 74LS138, yang sedang mengeluarkan logika low ”0”, sehingga dari 8 buah display tersebut, selalu hanya satu display yang akan dihidupkan. Agar display tampak nyala secara bersamaan maka ketiga display tersebut harus dihidupkan secara bergantian dengan waktu tunda tertentu.
Untuk melakukan percobaan ini lakukan beberapa langkah            sebagai berikut:
          1. Pada saat langkah pemrograman posisikan saklar togle ke posisi PROG
          2. Posisikan saklar togle ke RUN untuk mengaktifkan ADC0804 CS=0
          3. Hubungkan modul Microcontroller Trainer dengan power supply +5V
          4. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer           
          5. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler            program
          6. Ketik program berikut ini: (download            file prog51a.asm)

(a)

(b)

(c)
 org 0h
          ratusan equ 30h
          puluhan equ 31h
          satuan equ 32h
          ;
          org 0h
start: call ADC
          call Bin2Dec
          call Display2SevenSegmen
          sjmp start
          ;
;=================================================
;Subrutin ini digunakan untuk mengambil data ADC
;=================================================
ADC: clr P3.3
          nop
          nop
          nop
          setb P3.3
          eoc: jb P3.2,eoc
          clr P3.4
          mov A,P1
          setb P3.4
          ret
          ;         ;=================================================
;Subrutin ini untuk menampilkan data ke 7 Segmen
;dalam bentuk: ratusan, puluhan, and satuan
;data desimal diubah ke segmen dengan menggunakan
;Look up table Data7segmen
;=================================================
Display2SevenSegmen:
          mov A, ratusan
          mov DPTR,#Data7segmen
          movc A,@A+DPTR
          mov P0,A
          Setb P3.5 ;
          clr P3.6
          Setb P3.7
          call delay
          ;
          mov A,puluhan
          mov DPTR,#Data7segmen
          movc A,@A+DPTR
          mov P0,A
          clr P3.5 ;
          Setb P3.6
          Setb P3.7
          call delay
          ;
          mov A,satuan
          mov DPTR,#Data7segmen
          movc A,@A+DPTR
          mov P0,A
          Setb P3.5 ;
          Setb P3.6
          Setb P3.7
          call delay
          ret
          ;
          delay: mov R0,#0
          delay1:mov R2,#0fh
          djnz R2,$
          djnz R0,delay1
          ret
          ;         ;==================================================
;Subrutin ini untuk merubah data biner ke desimal
;menjadi 3 digit = ratusan-puluhan-satuan
;==================================================         Bin2Dec:
          mov b,#100d
          div ab
          mov ratusan,a
          mov a,b
          mov b,#10d
          div ab
          mov puluhan,a
          mov satuan,b
          ret
          ;
Data7segmen:
          db 11000000b,11111001b,10100100b,10110000b,10011001b
          db 10010010b,10000010b,11111000b,10000000b,10010000b
          ;
          end          7. Simpanlah program yang anda ketik dan beri nama            : prog51a.asm
          8. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi            program dari *.asm ke *.hex.
          9. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP            Software ( Lihat Petunjuk Penggunaan)
          10. Lakukan modifikasi pada program tersebut dengan manambahkan kata            SUHU, pada Display1, 2, 3 dan 4 diikuti dengan data ADC.


Tidak ada komentar:
Posting Komentar