sys-ok Fans Club
Sobat Mau Jago Soal Hardware?? Klik Di Sini!!


Selasa, 05 Juni 2012

Flowcode AVR 3.0: Aplikasi Masukan/Luaran (I/O) Sederhana

GROSIR KAOS POLOS & KAOS MURAH


Kali ini Flowcode AVR kita gunakan untuk mencoba membuat sebuah aplikasi sederhana yang melakukan pembacaan masukan di PORT A kemudian menampilkan hasil pembacaan tersebut, yang sebelumnya melalui suatu variabel DATANYA, ke PORT B. Rancangan Flowcode AVR-nya ditunjukkan pada Gambar 1.
Gambar 1
Kemudian kita kompail dan disimulasikan hasilnya (juga) bisa dilihat pada Gambar 1 tersebut. Perhatikan bahwa tidak semua masukan PORT A kita buat berlogika 1, hanya A7, A5, A3 dan A1. Hasilnya juga tidak semua LED pada PORT B menyala, hanya sesuai dengan PORT A saja, yaitu B7, B5, B3 dan B1. Nah sekarang pertanyaannya:
Bagaimana dengan hasil kompilasi dalam bahasa C-nya (juga dalam bahasa ASM-nya)?
Berikut saya cuplik sebagian hasil kompilasi dalam bahasa C (baris 59-96), cukup yang utama dulu, selebihnya Anda bisa mencermati bahwa di awal program C-nya merupakan inisialisasi variabel, pemetaan mikrokontroler dan lain-lain. Perhatikan Gambar 2.
Gambar 2
Pada cuplikan listing tersebut saya sudah memberikan catatan. Bagaimana dengan Anda? Apa yang dilakukan pada bagian inisialisasi, baris 76 dan 77? Instruksi MCUCSR = 0×00; digunakan untuk mereset (memberikan logika 0) pada semua bit di register MCU Control and Register, perhatikan penjelasan pada gambar MCUCSR. Sedangkan WDTCR = 0×10; digunakan untuk mematikan watchdog, perhatikan penjelasan register WDTCR (Watchdog Control Register). Langkah ini dilakukan oleh Flowcode, menurut saya, untuk keamanan atau play safe saja. Karena kemungkinan kompailer C yang digunakan tidak mematikan watchdog secara otomatis (ada beberapa kompailer yang bisa melakukan-nya secara otomatis selama tidak secara eksplisit dinyatakan penggunaan watchdog).
MCUCSR
WDTCR
Listing program selebihnya adalah sesuai dengan yang diharapkan, baca masukan seperti pada baris 85, namun sebelumnya ada inisialisasi PORT A sebagai masukan, mengapa tidak langsung aja DDRA = 0×00? Kok harus di-AND-kan segala dengan 0, khan hasilnya sama saja logika-0 khan? Aneh? Kemudian dilanjutkan dengan mengirimkan isi variabel dari pembacaan PORT A ke PORTB, lihat baris 91, yang sebelumnya (juga) diawali dengan inisialisasi PORT B sebagai luaran (nah kalo ini caranya langsung).
Jika Anda berikan loop pada program, seperti pada Gambar 3, hasilnya juga sama saja, keunikan juga terjadi lagi seperti saya jelaskan pada artikel sebelumnya.
Gambar 3
Semoga bermanfaat, amin! || Facebook Bagi2 Software Dan Ipad Gratis Loh! Download Disini

  • Share
iklan 440x90

Baca artikel lainnya :

0 komentar:

Show Hide Comments

Posting Komentar

© 2011 copyright www.belajarber-sama.blogspot.com Themes By Gresik edited by belajarber-sama.blogspot
Free Download Software Full Crack Keygen Patch Serial

Flowcode AVR 3.0: Aplikasi Masukan/Luaran (I/O) Sederhana