Senin, 21 November 2011

Pada mikrokontroler Atemal keluarga AT89C (obsollete) atau AT89S, Port 0 tidak memiliki pullup internal. Pullup FET yang berada di dalam penggerak luaran P0 digunakan hanya pada saat port mengirimkan logika ‘1′ selama pengaksesan memori eksternal. Selain dari itu, pullup FET akan selalu mati. Konsekuensinya, jalur-jalur P0 yang digunakan sebagai jalur luaran merupakan saluran terbuka (open drain). Penulisan ‘1′ ke bit pengancing membuat kedua FET keluaran menjadi mati, dengan demikian kondisi kaki-kakinya menjadi mengambang (float). Dalam kondisi seperti ini, pin dapat digunakan sebagai masukan berimpedansi tinggi.

Karena Port 1, 2 dan 3 telah memiliki pullup internal yang pasti, mereka dinamakan sebagai port-port kuasi-dwi-arah (quasi-bidirectional). Saat dikonfigurasi sebagai masukan, maka ditarik tinggi dan memberikan arus (source current) saat ditarik rendah secara eksternal. Port 0, di sisi lain, merupakan Port 0 dwi-arah yang sebenarnya, karena akan mengambang jika dikonfigurasi sebagi masukan.
Fungsi reset atau saat Power ON akan menuliskan ‘1′ ke seluruh bit-bit pengancing (latch) port pada keluarga AT89. Jika kemudian ‘0′ dituliskan ke pengancing, pengancing dapat dikonfigurasi sebagai masukan jika ‘1′ dituliskan padanya.
Contoh rangkaian dan aplikasi
Rangkain minimum untuk menghidupkan 8 LED melalui Port 1 ditunjukkan pada gambar dibawah ini. Yang perlu diperhatikan adalah konfigurasi rangkaian LED itu sendiri, yaitu Common Anode (CA), artinya untuk menghidupkan LED pada Port 1 yang bersangkutan, harus dikirim logika ‘0′. Hal ini berkaitan dengan penjelasan sebelumnya, Jika ‘0′ kita tulis ke Port 0 maka luaran dari lacth (yang ) akan menghidupkan FET sehingga baik kaki Port 0 maupun resistor pullup internal akan di pulled-low (secara internal juga), sehingga LED yang terhubungkan secara CA bisa menyala.
Sedangkan jika menggunakan rangkaian Common Khatode (CK), untuk menyalakan LED butuh penulisan ‘1′, namun penulisan ‘1′ ini menyebabkan Port 0 menjadi masukan berimpedansi (karena adanya resistor pullup internal) dan hanya cocok untuk masukan bukan keluaran (arus dari pullup internal tidak kuat untuk menyalakan LED karena ordenya uA, sedangkan keluarannya bisa mencapai sekitar 3,8 mA). Hal ini berlaku juga untuk Port 2 dan Port 3. Penggunaan resistor 330 ohm sebagai pembatas arus, dengan tegangan Vcc 5 volt maka arusnya sekitar 15 mA dan ini cukup untuk menghidupkan LED (biasanya sekitar 10 mA).
Program bab3_01.asm merupakan aplikasi untuk membuat kelompok 4 (empat) LED mati-hidup secara bergantian (flip-flop):

Apakah Mikrokontroller Itu ????

Jika kita bicara tentang Mikrokontroler, maka tidak terlepas dengan pengertian atau definisi tentang Komputer itu sendiri, mengapa? Ada kesamaan-kesamaan antara Mikrokontroler dengan Komputer (atau Mikrokomputer), antara lain:
  • Sama-sama memiliki unit pengolah pusat atau yang lebih dikenal dengan CPU (Central Processing Unit);
  • CPU tersebut sama-sama menjalankan program dari suatu lokasi atau tempat, biasanya dari ROM (Read Only Memory) atau RAM (Random Access Memory);
  • Sama-sama memiliki RAM yang digunakan untuk menyimpan data-data sementara atau yang lebih dikenal dengan variabel-variabel;Sama-sama memiliki beberapa keluaran dan masukan yang digunakan untuk melakukan komunikasi timbal-balik dengan dunia luar.
Lantas apa yang membedakan antara Mikrokontroler dengan Komputer atau Mikrokomputer? Begitu mungkin pertanyaan yang ada di benak kita, saat kita membaca beberapa daftar kesamaan yang sudah saya tuliskan tersebut. Sama sekali berbeda, itu jawaban yang saya berikan kepada Anda:
Mikrokontroler adalah versi mini dan untuk aplikasi khusus dari Mikrokomputer atau Komputer!
Berikut saya berikan kembali daftar kesamaan yang pernah ditulis sebelumnya dengan menekankan pada perbedaan antara Mikrokontroler dan Mikrokomputer:
  • CPU pada Mikrokomputer berada eksternal dalam suatu sistem, sampai saat ini kecepatan operasionalnya sudah mencapai tingkat lebih dari 2 GHz, sedangkan CPU pada Mikrokontroler berada internal dalam sebuah chip, kecepatan bekerja masih cukup rendah, dalam orde MHz (misalnya, 24 MHz, 40 MHz dan lain sebagainya). Kecepatan yang relatif rendah ini sudah mencukupi untuk aplikasi-aplikasi berbasis mikrokontroler.
  • Jika CPU pada mikrokomputer menjalankan program dalam ROM atau yang lebih dikenal dengan BIOS pada saat awal dihidupkan, kemudian mengambil atau menjalankan program yang tersimpan dalam hard disk. Sedangkan mikrokontroler sejak awal menjalankan program yang tersimpan dalam ROM internal-nya (bisa berupa Mask ROM atau Flash PEROM). Sifat memori program ini non volatile, artinya tetap akan tersimpan walaupun tidak diberi catu daya.
  • RAM pada mikrokomputer bisa mencapai ukuran sekian MByte dan bisa di-upgrade ke ukuran yang lebih besar dan berlokasi di luar chip CPU-nya, sedangkan RAM pada mikrokontroler ada di dalam chip mikrokontroler yang bersangkutan dan ukurannya sangat minim, misalnya 128 byte, 256 byte dan seterusnya dan ukuran yang relatif kecil inipun dirasa cukup untuk aplikasi-aplikasi mikrokontroler.
  • Keluaran dan masukan pada mikrokomputer jauh lebih kompleks dibandingkan dengan mikrokontroler, yang jauh lebih sederhana, selain itu, pada mikrokontroler tingkat akses keluaran dan masukan bisa dalam satuan per bit.
  • Jika diamati lebih lanjut, bisa saya katakan bahwa Mikrokomputer atau Komputer merupakan komputer serbaguna atau general purpose computer, bisa dimanfaatkan untuk berbagai macam aplikasi (atau perangkat lunak). Sedangkan mikrokontroler adalah special purpose computer atau komputer untuk tujuan khusus, hanya satu macam aplikasi saja.
Perhatikan gambar berikut agar Anda mendapatkan gambaran tentang mikrokontroler…
ALU, Instruction Decoder, Accumulator dan Control merupakan Otak-nya mikrokontroler yang bersangkutan. Jantungnya berasal dari detak OSC (lihat gambar sebelah kiri atas). Sedangkan di sekeliling ‘Otak’ terdapat berbagai macam periferal seperti SFR (Special Function Register yang bertugas menyimpan data-data sementara selama proses berlangsung), Memori RAM (tugas hampir sama seperti SFR hanya saja tidak berhubungan langsung selama proses operasional mikrokontroler), ADC (untuk mengubah data-data analog menjadi digital untuk diolah atau diproses lebih lanjut), EEPROM (sama seperti RAM hanya saja tetap akan menyimpan data walaupun tidak mendapatkan sumber listrik/daya) dan port-port I/O untuk masukan/luaran, untuk melakukan komunikasi dengan pihak-pihak eksternal mikrokontroler (sensor dan aktuator).
Ciri khas mikrokontroler lainnya, antara lain:
  • ‘Tertanam’ (atau embedded) dalam beberapa piranti (umumnya merupakan produk konsumen) atau yang dikenal dengan istilah embedded system atau embedded controller;
  • Terdedikasi untuk satu macam aplikasi saja (lihat contoh-contoh yang akan saya terangkan pada bagian berikutnya);
  • Hanya membutuhkan daya yang rendah (low power) sekitar 50 mWatt (Anda bandingkan dengan komputer yang bisa mencapai 50 Watt lebih);
  • Memiliki beberapa keluaran maupun masukan yang terdedikasi, untuk tujuan atau fungsi-fungsi khusus;
  • Kecil dan relatif lebih murah (seri AT89 di pasaran serendah-rendahnya bisa mencapai Rp. 15.000,00 sedangkan Basic Stamp bisa mencapai Rp. 500.000,00);
  • Seringkali tahan-banting, terutama untuk aplikasi-aplikasi yang berhubungan dengan mesin atau otomotif atau militer.
Dapatkan informasi lengkapnya dengan mengunduh ebook gratisnya disini