Menghubungkan DAC Dengan Microcontroller MCS51
DAC adalah perangkat yang berfungsi untuk mengubah data digital menjadi sinyal analog. Dalam aplikasi microcontroler MCS51 sering dibutuhkan DAC untuk mengubah data output menjadi sinyal analog. Gambar dibawah memperlihatkan mikrokontroler AT89Cx051 yang dihubungkan ke DAC0800 buatan National Semiconductor buatan National Semiconductor, kapasitor C1, C2 dan Xtal 12 MHz membentuk rangkaian osilator, kapasitor C3 dan resistor R1 membentuk rangkaian reset. Besaran digital diberikan ke B1 sampai B7 (kaki 5 sampai 12) pada IC DAC0800, nilai biner dari besaran digital ini dirubah menjadi besaran analog berupa arus pada IOUT (kaki 4 DAC0800) dan IOUT* (kaki 2 DAC0800), kemudian oleh IC Operational Amplifier LM741 arus tersebut dirubah menjadi tegangan. Tegangan yang dihasilkan dinyatakan dengan rumus yang tertera pada Gambar dibawah, selain tergantung pada nilai bobot besaran digital yang diberikan, tegangan ini tergantung pula pada besarnya Vref (kaki 14 DAC0800).
Gambar Konfigurasi DAC dengan Mikrokontroler MCS51
C3 yang dipasang pada kaki 16 dan ground berguna untuk menstabilkan tegangan yang dihasilkan. DAC0800 dan LM741 memakai sumber tegangan +12 Volt dan -12 Volt, ini agak berbeda dengan tegangan yang biasa dipakai untuk rangkaian digital, agar sinyal digital bisa diterima IC DAC0800 dengan baik, DAC0800 dilengkapi kaki VLC (kaki nomor 1) untuk menyesesuaikan level tegangan berbagai jenis IC digital. Dalam data sheet DAC0800 diperlihatkan berbagai rangkaian yang harus dipasang pada kaki ini agar DAC0800 bisa dipakai untuk berbagai keluarga IC digital. Dalam rangkaian Gambar diatas, DAC0800 dihubungkan ke keluarga mikrokontroler MCS51 yang bekerja pada level tegangan TTL, untuk keperluan ini kaki VLC dihubungkan ke ground.
Di balik kaki-kaki B1 sampai B8 IC DAC0800 tidak dilengkapi latch untuk menampung besaran digital yang diumpankan, perubahan kombinasi sinyal digital pada kaki-kaki ini langsung mengakibatkan perubahan tegangan output. Konstruksi input DAC0800 semacam ini, mengakibatkan DAC0800 tidak bisa dihubungkan langsung ke saluran-data (data bus) sistem mikroprosesor, hubungan DAC0800 ke prosesor harus melalui port paralel. Dalam Gambar 1, DAC0800 dihubungkan ke port paralel P1 dari AT89Cx051. Menghubungkan DAC0800 ke keluarga MCS51 yang lain, misalnya AT89C51, bisa lewat port parelel P0, P1, P2 ataupun P3, tergantung pada kondisi rangkaian yang dibentuk. Instruksi untuk mengeluarkan tegangan pada rangkaian Gambar 1 sangat sederhana, cukup mamakai instruksi MOV P1,A dengan pengertian besaran analog yang ingin dibangkitkan sebelumnya sudah disimpan pada Akumulator A.