Menggunakan Simulator AVR Basic Compailer (BASCOM)

Posted: August 10, 2014 in Mikrokontroler

Untuk memahami program yang anda buat untuk mikrokontroler (AVR atmega) dan untuk mengetahui program tersebut bekerja atau tidak, hal yang bisa dilakukan adalah memasang (mendownload) program tersebut ke dalam mikrokontroler. Namun, jika anda belum atau tidak memiliki alatnya haruskah anda menyerah?

Anda dapat menggunakan simulator di program AVR-BASCOM. Dengan simulator anda dapat memantau apakah program anda sudah sesuai keinginan dengan melihat input-output dan nilai2x register mikrokontroler saat bekerja. Sebagai contoh adalah program sederhana (flip-flop) di bawah ini.

f1

Program ini saya menggunakan AT-16 dengan crystal 16 mHz. Setelah anda meng-save file tersebut, kemudian anda compile (tekan F7), lalu masuk simulator (tekan F2).

f3

tekan R, IO dan M untuk menampilkan register2x yang digunakan. Untuk mengeksekusi program perlangkah, seperti pada gambar klik kanan pada garis yang ingin anda mulai lalu pilih Run to, maka program akan berhenti di baris tersebut.

f5

Seperti terlihat pada gambar di atas, register2x yg telah berubah ditandai dengan warna merah. Dalam pembuatan sebuah flip-flop (clock) anda membutuhkan keseimbangan antara sinyal naik (logic 1) dan sinyal turun (logic 0). Untuk itu kita harus mereset Cycl. dengan klik kanan lalu pilih Clear Cycles seperti pada gambar di atas. Maka Cycl. akan ter-reset ke 0.

ff1

Untuk menjalankan satu garis perintah klik Step into (tekan F8). Pada gambar di atas PIN nomor 5 pada PORTA dinyalakan. Pada IO register, PORTA berubah nilainya menjadi 20 hex (warna merah) karena dalam biner PORTA yg aktif adalah 0010 0000 (ada pin 0 sampai pin7). Dan terlihat juga untuk menyalakan 1 pin ini dibutuhkan waktu 2 CYCLE atau 2x(1/16000000Hz) second = 0.000125mS.

fff

Jika anda perhatikan Waitus 1 bukan wait selama 1 mikro S tetapi lebih. Untuk lebih jelasnya bisa dilihat gambar di bawah ini.

fcLogic 1 dan Logic o yang terjadi tidaklah seimbang. Dan frekuensi flip-flop yang didapat bukan 1 mHz / 1000 kHz.

Untuk membuat flip-flop dengan frekuensi tepat 1 mHz, kita haruslah menggabungkan bahasa assembly dengan bahasa AVR-BASCOM (lihat gambar di bawah ini).

as1

bahasa assembly yg dimasukan haruslah disisipkan di dalam

$asm

dan

$end Asm

Syntax NOPE membuat prosesor mikrokontroler tidak bekerja selama 1 cycle. Jadi bisa digunakan sebagai delay.

Dari gambar di atas didapat logic 1 selama 8 cycle dan logic 0 selama 8 cycle. Jadi totalnya 16 cycle / 0.001 mS / frekuensi 1 mHz. Untuk lebih jelasnya bisa dilihat pada gambar di bawah ini.

fc2

asmm

Dengan demikian didapatkan flip-flop/clock yang simetris.

Untuk melihat apakah logic 1 sudah dikeluarkan oleh PORTA atau tidak bisa dilihat dengan Hardware emulation.

hwsim

Anda tetap harus menggunakan Step into agar perubahannya dapat terlihat. Karena 1 mHz flip-flop tidaklah bisa dilihat oleh mata.

Akhir Kata

Good Luck

Good Read

Good Bye

Text Me Back