Friday 17 January 2014

Perintah pilihan (IF)

Pada kesempatan ini kita coba menggunakan perintah if pada BascomAVR. Perintah if merupakan pilihan, artinya jika ada kondisi tertentu, maka akan terjadi kondisi tertentu. pada posting-posting sebelumnya kita sudah bisa menghidupkan Led pada portB mikrokontroler ATMEGA 16, menghidupkan dan mematikan menggunakan pushButton.  Sekarang kita akan mematikan dan menghidupkan Led dengan tombol, tapi dengan memanfaatkan perintah If.

Struktur perintah If

'---------------------

if xxxxxx then
yyyyyyy
end if

'---------------------

jika kondisi x, maka
kondisi y
Ok
'---------------------

Sekarang kita coba dengan logika berikut.

jika tombol kita tekan, maka lampu led menyala. 

Tombol kita letakkan pada portC. Sebagai pengingat, portC terdiri atas 8 pin, yaitu pinc.0 sampai pinC.7. Jika kita letakkan tombol pada pinC.0, maka pada saat kita tekan tombol maka pinC.0 kondisinya rendah (logika 0) dan jika tidak kita tekan maka tinggi (logika 1)

perintahnya adalah berikut

if pinc.0 = 0 then
portB = &B11111111
endif
if pinc.0 = 1 then
portB = &B00000000
endif



Ok, setelah dibuat programnya di BascomAVR, jangan lupa di save dan di compile. jangan lupa menyimpan ditempat yang mudah dicari. 


Setelah itu buat simulasinya di proteus seperti gambar diatas. Doubleclick IC mikrokontrollernya dan masukkan program .Hex nya. Kalau sudah, coba di jalankan program proteusnya. Untuk cara detailnya bisa dibuka posting-posting sebelumnya. 

Setelah di jalankan, coba perhatikan Lednya. Kemudian coba tekan tombol yang terhubung ke PortC.0 dan lihat yang terjadi. Bandingkan dengan logika program yang telah dibuat tadi. 





Thursday 16 January 2014

Tombol sebagai masukan AVR





Setelah mencoba menghidupkan LED pada salah satu port AVR, sekarang kita coba menghidupkan led berdasarkan input berupa tombol (push button). Komponen yang kita butuhkan tetap sama, namun ditambah dengan tombol sebagai input pada AVR, sebagaimana berikut ini.


Untuk menambahkan push button cari di library dengan menekan click kanan terus search push button. Sambungkan kaki push button ke setiap pin pada portC kemudian sambungkan sisi yang lain dari push button ke ground. Ini berarti bahwa kita berikan aktif rendah pada mikrokontroler.
Setelah dirangkai, jangan lupa di simpan. Kemudian kita masuk ke program. Sebagaimana yang sudah-sudah, kita gunakan BascomAVR untuk membuat program. Buat program sebagaimana berikut ini



   $regfile = "m16def.dat"                     ‘artinya adalah mikrokontroller yang kita gunakan ATMEGA 16
   $crystal = 1000000                         ‘artinya adalah kita gunakan crystal internal (gak pake crystal)
Config Portc = Input                          ‘artinya adalah mengatur portc sebagai input
 Portc = 255                                         ‘artinya adalah mengatur pull up pada portC
 Config Portb = Output                     ‘ artinya adalah mengatur portB sebagai output
 Do                                                 ‘perintah pengulangan
   Portb = Pinc                                ‘ artin ya adalah kondisi portB sama dengan kondisi tiap pin pada portC
   Waitms 500                               ‘artinya delay 500ms
 Loop                                             ‘pasangan dari do

Setelah selesai, simpan dan compile program tersebut. Jangan lupa untuk menyimpan pada tempat yang mudah dicari nantinya. Untuk cara menyimpan dan mengcompile bias dilihat pada posting sebelumnya.
Buka kembali jendela proteus yang telah kita buta rangkaian tadi. Masukkan program ke IC AVR dengan cara men-doubleclick gambar IC AVR tersebut dan browse program file ke file .Hex yang telah kita buat tadi. Kemudian jalankan proteus. Apa yang terjadi…. Semua lampu led menyala?? Gak berubah???.... tunggu, tekan salah satu tombol dengan menggunakan mouse perhatikan kondisi led, berubah??? Selamat anda sudah membuat program dengan benar.
Jadi mulai sekarang jangan bilang belajar mikrokontroler susah, khususnya dengan bahasa BASIC…
Ok tunggu posting berikutnya untuk aplikasi yang lain..

Wednesday 15 January 2014

Simulasi Bascom AVR dengan proteus

Mikrokontroler...........

Bagi mahasiswa maupun penggemar elektronika, mikrokontroler merupakan komponen wajib yang harus di kuasai, karena ada beberapa aplikasi yang akan lebih mudah dibuat ketimbang menggunkan komponen-komponen lain (khususnya sistem digital). 

Jenis mikrokontroler bermacam-macam, dari yang termahal maupun yang termurah, namun jangan kuatir untuk yang ingin mulai belajar kita bisa menggunakan software proteus yang dapat mensimulasikan mikrokontroler tanpa harus membuat perangkat keras. Untuk mendapatkan software proteus tinggal cari di mesin pencari tercanggih Google, berezz.

Bahas pemrograman mikrokontroler bermacam-macam, dari bahasa assembly, C dan basic. Nah disini kita akan mencoba membuat aplikasi sederhana dengan memanfaatkan bahasa basic dengan memanfaatkan BascomAVR. 

Hal pertama yang harus di lakukan adalah mengInstall Proteus dan BascomAVR ke PC kira masing-masing. Setelah diinstal sekarang kita coba membuat aplikasi menghidupkan satu lampu led secara berkedip dengan memanfaatkan mikrokontroller, berikut ini algoritmanya.. 

Sekarang kita buat programnya di BascomAVR. . 

Buka dulu BascomAVR. Buat file baru dengan memilih kotak putih sebelah kiri atas. kemudian ketik programnya. Pada program diatas menggunakan IC ATMEGA 16 (m16def.dat) kalo pake ATMEGA 32 tinggal ganti 16 dengan 32 kalo pake 8535 tulis m8535.dat. Setelah memilih IC AVR nya kita pilih besarnya kristal yang akan kita pakai. kristal ini disesuaikan dengan kristal yang ada pada rangkaian mikrokontroler kita (minsis) maksimalnya 16MHz. Pada program diatas, kita memakai kristal 12MHz. Kemudian kita atur port yang akan kita kendalikan. Pada ATMEGA 16 terdapat 4 port, yaitu PORTA, PORTB, PORTC dan PORTD. Tiap port dapat dikendalikan masing-masing, baik itu menjadi input (misalnya kita sambung ke tombol) atau sebagai output (misalnya kita pasang ke Led).

Setelah itu kita masuk ke program. Program  kita buat sesuai dengan flowchart yang telah kita gambar diatas. PortB maupun Port yang lain terdiri atas 8 bit (8 buah kaki/pin), sebenarnya tiap pin bisa kita kendalikan masing-masing, namun untuk latihan dasar kita seragamkan dahulu. 

Portb = &B11111111 /artinya setiap pin dari portB bernilai 1 (tinggi secara digital)

Wait 1  /artinya tunggu 1 detik kemudian lanjutkan ke program dibawahnya. Jika ingin waktu yang lebih cepat gunakan waitms sebagai pengganti wait

Portb = &B00000000 /artinya setiap pin dari portB bernilai 0

setelah dibuat, langsung kita simpan program kita. Ingat menyimpan program ke tempat yang mudah dicari, karena nanti saat memasukkan ke IC AVR akan kesulitan jika letak file susah dicari. 

Setelah disimpan, kemudian kita Compile (menterjemahkan menjadi bahasa mesin). Ok, semua proses pembuatan program selesai, sangat mudah..

kemudian kita buat simulasi rangkaian pada Proteus. 

Buka Isis pada proteus setelah terbuka akan tampil seperti ini.

Kemudian kita cari komponen yang kita perlukan, yaitu dengan menekan click kanan mouse kita hingga muncul pop up seperti ini.





Pada jendela pick device, kita pilih komponen yang kita perlukan. Kabar gembira bagi pemula, AVR bisa beroperasi tanpa menggunkana komponen eksternal, artinya bahwa AVR bisa berjalan dengan baik hanya dengan memasangkan tegangan 5Vdc dan ground, namun frekuensi maksimal yang dihasilkan adalah 1MHz. 

Setelah kita pilih komponen ATMEGA 16 akan muncul gambar seperti ini. Dengan cara yang sama, kita pilih Led (pilih yang simulated) kemudian kita buat rangkaian sebagai berikut. Untuk ground, kita pilih pada device pin (7 item dibawah componen) bisa dilihat digambar diatas.


 

Setelah itu kita masukkan program yang telah kita buat ke dalam mikrokontroler. Doubleclick IC AVR, setelah muncul jendela seperti hambar diatas, kita browse program yang akan kita masukkan (pilih yang berekstensi .Hex). setalh selesai, tekan OK dan proses pembuatan telah selesai, tinggal kita coba. 

Untuk mencoba, tekan tombol play seperti pada gambar diatas. Perhatikan Led akan nyala dan tunggu beberapa detik, maka lampu led akan mati. Tapi mati dan hidupnya sangat lama, iya kan??

itu karena kristal yang kita buat di program berbeda dengan yang di rangkaian skematik Proteus. sekarang kita coba ganti kristal pada program BascomAVR menjadi 1MHz. 

$crystal = 1000000 

Ok, jangan lupa di save dan compile. kemudian jalankan Proteus kitan. Perhatikan Lednya akan lebih cepat kan??

Namunprogram diatas hanya akan jalan sekali, sekarang gimana caranya agar bisa jalan terus menerus. Kita tambahkan do dan loop, perhatikan posisi perintahnya.


Flow Chartnya jadi seperti ini


Jangan lupa save dan compile, kemudian jalankan proteus..lihat hasilnya.

Ok, tunggu simulasi selanjutnya..

File simulasinya monggo di download dibawah ini:

 http://www.ziddu.com/download/23543306/led.rar.html