Categories
Mikrokontroler

Membuat Aplikasi Mikrokontroler AVR/AT89: Khusus Pemula!

versi 1.2 (14 Desember 2009)

Banyak komentar,pertanyaan dan saran masuk melalui SMS, email, omong langsung agar saya membuat sebuah tulisan atau artikel tentang bagaimana cara membuat aplikasi mikrokontroler AVR maupun AT89 dari nol. Okey dech, kali ini saya berikan jawabannya…

Baiklah, untuk memudahkan saya menjelaskan dari ‘nol’, ada baiknya Anda perhatikan dulu diagram alir pada Gambar 1 (jika kurang jelas, silahkan di-klik aja yach)…

Gambar 1

Nach, berdasar diagram alir tersebut, semuanya berawal dari MASALAH, atau bisa juga Anda sebut PROYEK, KASUS atau apa saja yang Anda suka selama artinya adalah sesuatu yang ingin dicari, dibuat solusinya. Lebih tepatnya, pada tahap awal yang perlu dilakukan adalah IDENTIFIKASI MASALAH, persis atau detilnya bagaimana, misalnya…

“Bagaimana membuat aplikasi menghidupkan LED berdasar tombol yang ditekan?”

Ini tentunya belum cukup, informasinya masih kurang, beberapa pertanyaan yang bisa diajukan antara lain:

  • LED-nya berapa?
  • Tombol apa saja yang ditekan?
  • Bagaimana hubungan antara sebuah tombol dengan LED yang bersangkutan?
  • Apakah dimungkinkan menekan dua  tombol atau lebih secara bersamaan?
  • Apakah menyala-nya LED menggunakan tundaan? Atau hanya sekedar sesuai dengan tombol yang bersangkutan?
  • Dan lain sebagainya.

Hal ini sangat penting, dikarenakan dengan informasi yang detil, maka kita bisa membuat rangkaian dan program yang benar-benar sesuai dengan apa yang diinginkan. Dan yang lebih penting lagi, jika ini merupakan proyek atau pesanan orang, bisa dijadikan bahan dalam kontrak kerja atau berita acara. Tidak peduli akan Anda selesaikan dengan mikrokontroler AVR maupun AT89 atau bahkan mikrokontroler apapun.

Selain itu, dengan detil informasi yang diperoleh, Anda bisa menentukan mikrokontroler apa yang akan digunakan, sesuai dengan kebutuhan berdasar detil informasi yang bersangkutan. Ingatlah bahwa setiap mikrokontroler (baik keluarga AVR maupun AT89) masing-masing memiliki fasilitas yang sama dan juga berbeda. Apakah aplikasi atau solusi yang Anda tawarkan memerlukan timer? Memerlukan sinyal PWM? Menggunakan motor servo? Motor DC? Motor Langkah? Apakah memerlukan Watchdog? Berapa frekuensi clock yang dibutuhkan? Dan lain sebagainya…

Biasanya, persoalan yang dihadapi adalah mencari solusi itu sendiri. Katakan saja jika persoalan masukan/luaran sudah teridentifikasi secara 100% semuanya, langkah berikutnya adalah merancang solusi, termasuk memilih mikrokontroler mana yang akan digunakan. Untuk keperluan mendapatkan informasi mikrokontroler AVR atau AT89 secara lengkap silahkan merujuk datasheet masing-masing. Ini adalah sumber utama yang bisa dipercaya, karena langsung diterbitkan oleh pabrik mikrokontroler yang bersangkutan (ATMEL).

Setelah Anda melakukan IDENTIFIKASI MASALAH, langkah berikutnya (lihat diagram alir) adalah MELAKUKAN PERANCANGAN (termasuk menentukan masukan dan luaran apa saja yang terlibat dalam solusi tersebut). Langkah ini memang tidak semudah mengatakan-nya, namun ANDA PASTI BISA, karena semakin tinggi jam terbang Anda dalam menangani berbagai macam kasus-kasus yang melibatkan penggunaan mikrokontroler, Anda akan semakin terampil dan ‘jenius’.

Misalnya saja, ada pertanyaan yang masuk ke saya bagaimana menampilkan hasil perhitungan atau hasil akuisisi data di LCD? di Dot Matrix atau bahkan di 8x7segmen? Ini semua memerlukan kreativitas untuk mendapatkan solusinya. Anda rajin membaca artikel-artikel saya atau diskusi dengan saya, atau bahkan cari sendiri di internet, tanya ke yang lebih pakar dan lain sebagainya…

Termasuk dalam langkah MELAKUKAN PERANCANGAN adalah membuat DIAGRAM ALIR program mikrokontroler Anda (Anda bisa membaca ulasan tentang diagram alir disini). Beruntunglah Anda, karena saat ini sudah ada sebuah program yang dapat digunakan untuk membuat diagram alir sekaligus mengkonversikan-nya dalam bahasa C atau ASM untuk mikrokontroler AVR (termasuk juga untuk PIC dan ARM), asik khan? Silahkan baca informasinya dan unduh program demonya di Matrix Multimedia – FLOWCODE v3.0 for AVR atau langsung saja mengunduh disini.

Oya, dalam membuat diagram alir usahakan dibuat secara umum, artinya tidak mewakili bahasa pemrograman apapun, termasuk assembly. Mengapa? Karena memang begitu aturan dalam membuat diagram alir yang baik dan benar, selain itu akan memudahkan kita atau mungkin orang lain, jika Anda berkenan, melakukan pengembangan lebih lanjut dengan bahasa yang berbeda-beda (misalnya Basic, C dan lain sebagainya).

Langkah berikutnya adalah MEMBUAT RANGKAIAN YANG SESUAI (RANGKAIAN BAKU/MINIMUM PLUS APLIKASINYA), namun sebelum itu ada baiknya juga Anda sudah menentukan bahasa pemrograman apa yang akan digunakan, sebaiknya yang GRATIS aja, namun itu terserah Anda.

Pada tahap ini, barangkali Anda bertanya-tanya, dimana dan bagaimana saya mendapatkan rangkaian-rangkain aplikasi tersebut? Ya Anda sangat beruntung, karena beberapa buku-buku mikrokontroler sudah banyak membahas hal tersebut, antara lain:

  • Belajar Mikrokontroler AT 89C51/52/55 (Teori dan Aplikasi) Edisi 2, Oleh: Agfianto Eko Putra, terbitan Gava Media, Yogyakarta (info);
  • Belajar Dengan Mudah dan Cepat Pemrograman Bahasa C Dengan SDCC (Small Device C Compiler) Pada Mikrokontroler AT89X051/AT89C51/52 Teori, Simulasi dan Aplikasi, Oleh: Totok Budiok, terbitan Gava Media, Yogyakarta (info);
  • Belajar Mikrokontroler ATMEL AT89S8252, Oleh: M. Ibnu Malik, ST, terbitan Gava Media, Yogyakarta (info);
  • Belajar Mikrokontroler Atmel AVR ATtiny 2313 “Step by Step”, Oleh: Ardi Winoto, terbitan Gava Media, Yogyakarta (info);
  • Design dan Implementasi Sistem Embedded Mikrokontroller ATMega8535 dengan Bahasa Basic, Oleh: Iswant, terbitan Gava Media, Yogyakarta (info)
  • Bisa juga dengan membaca rangkuman artikel “Memulai Belajar Mikrokontroler – Quick, Easy and Harmless!“.
  • dan masih banyak lagi!

Selain dari buku-buku yang saya sebutkan tersebut, Anda juga bisa memanfaatkan media Internet untuk mencari dan mendapatkan rangkaian-rangkaian aplikasi yang Anda inginkan, cobalh bergabung atau melihat-lihat mengunjungi

Setelah Anda merancang rangkaian solusinya, yang kemudian kita sebut sebagai PROTOTIPE atau PURWARUPA, tentu langkah selanjutnya adalah MEMBUAT PROGRAM APLIKASI yang terkait dengan solusi yang telah Anda rancang sebelumnya, berdasarkan diagram alir yang telah Anda buat sebelumnya.

Pembuatan program aplikasi bisa Anda lakukan dengan bahasa pemrograman apapun yang Anda inginkan, jika Anda seorang pemula, saya sarankan untuk menggunakan BASCOM 51 atau BASCOM AVR dari MCSELEC.COM, karena sangat mudah penggunaanya. Selain itu, Anda bisa menggunakan:

Oya program Anda, yang menggunakan bahasa apapun yang Anda suka, harus dikompilasi (menggunakan perangkat lunak yang sudah saya sebutkan sebelumnya) menjadi berkas BIN atau HEX (format heksadesimal), sebagaimana ditunjukkan pada Gambar 2, untuk kemudian di-download-kan ke mikrokontroler yang bersangkutan. Sehingga mikrokontroler Anda bisa menjalankan program Anda. Selain itu, Anda bisa mencoba-nya terlebih dahulu melalui simulator mikrokontroler Proteus VSM dari LabCenter.

Bagaimana cara mendownload? Menggunakan (alat) apa? Silahkan membaca artikel Pemrogram (downloader) Mikrokontroler AVR melalui USBSoftware untuk AVR Downloader (berbasis USBasp) dan Min MCS51/AVR dan Min AVR dari ADP. Ingatlah selalu, agar mikrokontroler AVR Anda bisa berjalan dengan baik dan benar, lakukan pengaturan clock sistem terlebih dahulu, silahkan simak artikel Mengenal System Clock pada Mikrokontroler AVR.

Untuk persoalan mendownload ada sebuah catatan pengalaman menggunakan AT89S8252 yang terasa sangat lambat saat didownload menggunakan Min MCS51/AVR dan ternyata saya mendapatkan pencerahannya langsung dari pembuatnya mas Anang Dono Prasetyo (terima kasih mas Anang), berikut cuplikannya:

Signature AT89S8252 memang tidak bisa dibaca jika menggunakan serial programmer, sama seperti signature AT89S53. lihat: AT89S8252.pdf hal 21. kedua mikro tersebut menggunakan format pemrograman FLASH yg tdk setandar yaitu 3byte. (yang lain 4byte). Byte MSB alamat programnya juga tdk beraturan. Signature AT89S8252 & AT89S53 hanya bisa dibaca dengan programer Paralel.

Kalau ingin memprogram mikro ini harus dipilih secara manual pada list mikrokontroler programernya. karena alamat FLASH tidak beraturan maka memprogram mikro ini jadi lama.

Solusinya, ganti AT89S8252 dengan AT89S8253. lebih besar dan menggunakan format programer FLASH standar(4byte). harga tdk jauh beda. Semoga Bermanfaat….

Langkah selanjutnya tentu saja MELAKUKAN UJI-COBA DAN EVALUASI apakah rangkaian dan program sudah berjalan dengan benar atau belum, lakukan TROUBLESHHOTING jika memang masih ada kesalaha mayor maupun minor, sehingga hasil yang diperoleh menjadi baik dan benar. Ingatlah bahwa kesalahan bisa terjadi pada RANGKAIAN dan/atau PROGRAM, bahkan seringkali kesalahan-kesalahan sepele tetapi berdampak besar pada jalannya aplikasi kita, dengan demikian lakukan pengecekan secara menyeluruh.

Untuk informasi lebih lanjut, silahkan Anda bertanya atau berkomentar, dan silahkan juga mengikuti pelatihan-pelatihan mikrokontroler AVR atau AT89 yang kita selenggarakan.

Terima kasih sudah membaca artikel saya, semoga bermanfaat dan sukses selalu untuk Anda!

NB: artikel ini versi 1.2 diupdate pada 14 Desember 2009, update akan dilakukan setiap saat, keep in touch…