SimulatorInDLL – Simulator Mikrokontroler MCS-51

Simulator pada versi ini dibuat terpisah dari IDE-nya, yaitu dibuat menjadi file “SimulatorInDLL.dll”. Dengan begini Anda bisa mengembangkan simulator tersebut agar bekerja sesuai keinginan Anda.

Sebenarnya, simulator ini baru mendukung assembly. Tapi Anda bisa membuat batasan-batasan agar simulator seolah-olah bekerja untuk C. Syaratnya, Anda harus tahu persis bagaimana C membuat programnya. Hal ini mungkin jika Anda seorang multi-programmer, artinya tidak hanya mengerti pemrograman mikrokontroler tapi juga pemrograman yang lain. Anda juga harus cukup mengerti bagaimana SDCC bekerja. Jika tidak, Anda baru bisa menggunakan simulator untuk assembly saja.

Eit, jangan kuatir, meskipun simulator ini baru bisa bekerja dalam bahasa assembly, tapi Microcontroller Project akan mengonversi program yang Anda tulis dengan SDCC menjadi assembly. Jadi program C Anda tetap bisa dicoba dengan simulator. Nah sekarang kita akan bahas penggunaan simulator secara umum.

Menu utama SimulatorInDLL

Menu utama SimulatorInDLL

Tujuh menu utama pada simulator:

  1. Start. Tentu saja menu ini berfungsi untuk menjalankan simulasi. Menu ini akan berubah menjadi Stop jika sedang berjalan, jadi tentu saja berfungsi untuk menghentikan simulasi.
  2. Single Step (F7). Menu ini berfungsi untuk menjalankan hanya satu baris instruksi.
  3. Step Over (F8). Menu ini hampir sama dengan Single Step. Bedanya tampak jika instruksi yang dijalankan adalah instruksi call. Single Step akan melompat ke subprogram yang dipanggil, sedangkan Step Over akan menjalankan subprogram sampai selesai.
  4. Reset. Menu ini berfungsi halnya kita menekan tombol reset pada rangkaian mikrokontroler. Biasanya saat pertama kali simulator dijalankan, Anda belum bisa menjalankan simulasi sampai Anda klik menu ini. Demikian juga setelah Anda melakukan perubahan opsi.
  5. View. Menu ini berfungsi untuk memilih window mana saja yang akan ditampilkan. Yaitu window RAM internal, RAM eksternal, Port, SFR, dan Register.
  6. Option. Nah, yang ini yang benar-benar harus diperhatikan agar bisa menggunakan simulator secara optimal.
    • Update External. Kalau menu ini diberi tanda cek, maka setiap akses ke ram eksternal akan menyebabkan isi register pada jendela ram eksternal akan langsung diupdate.
    • Update Display. Kalau menu ini diberi tanda cek, maka setiap eksekusi program akan langsung menyebabkan semua jendela diupdate. Anda sebaiknya memberi tanda cek pada menu ini jika Anda ingin melihat setiap perubahan data pada setiap eksekusi program. Tapi hal ini akan menyebabkan jalannya simulasi menjadi jauh lebih lambat. Jadi kalau Anda hanya ingin melihat hasil akhir atau hanya ingin melihat kerja yang ditunjukkan pada port, sebaiknya buang saja tanda ceknya.
    • Separate 4 bit biner. Nah kalau menu ini diberi tanda cek, maka bilangan biner pada jendela port, sfr, register, atau ram eksternal akan dipisah dalam dua nibble.
    • Com. Nah menu ini termasuk menu yang sangat penting jika Anda sedang mencoba program untuk komunikasi serial. Anda bisa pilih Com1 hingga Com4 jika ingin setiap penulisan pada register SBuf benar-benar dikirim ke port serial di komputer Anda. Selain itu Anda juga bisa menghubungkan SBuf dengan simulator lain melalui window message. Jika Anda pilih link ini, maka data yang diisikan ke SBuf akan dikirim ke window yang dituju dengan data pada wParam. Anda sebelumnya harus mengatur dulu parameter-parameter yang dibutuhkan. Pertama adalah handle dari window yang dituju. Untuk mengisi nilai ini, Anda cukup klik pada tombol Capture Handle, kemudian arahkan pointer mouse ke window yang dituju, lalu klik di window tersebut. Berikutnya adalah message yang dikirim. Jika window simulator yang dituju membutuhkan WM_USER, maka Anda cukup klik pada tombolnya untuk mendapatkan konstanta untuk WM_USER. Demikian juga jika window yang dituju meminta WM_CHAR, maka Anda cukup klik pada tombol WM_CHAR. Anda bisa menggunakan notepad untuk menangkap data karakter yang dikirim melalui SBuf jika message-nya berupa WM_CHAR. Yang terakhir adalah lParam. Parameter yang ini tidak selalu digunakan. Ini mungkin akan penting jika Anda membuat sendiri simulator dan membutuhkan informasi tambahan, misalnya simulator Anda juga ingin berkomunikasi langsung dengan simulator ini. Anda tinggal memberi tanda cek pada “Handle Aplikasi ini” untuk mendapatkan handle dari simulator yang sedang berjalan. Tentu saja keterangan ini hanya akan dipahami oleh Anda yang biasa membuat program di Windows.
    • Prioritas Thread. Nah, yang ini Anda harus hati-hati memilihnya. Jika Anda milih prioritas paling tinggi, maka semua waktu CPU hampir-hampir akan dihabiskan hanya untuk menjalankan simulasi ini. Jadi kadang Anda bahkan akan sulit untuk menggerakkan mouse.
    • Port. Yang ini berguna untuk mengatur link dari P0 hingga P1. Jika Anda klik pada menu ini, maka Anda akan dibawa ke sebuah jendela untuk mengatur link dari port-port tersebut. Ada empat pilihan link untuk setiap port, yaitu link none, jika Anda ingin port untuk tidak terhubung kemanapun; link port, jika Anda ingin port terhubung ke port fisik, misalnya port paralel, PPI atau port-port fisik lain yang terpasang di komputer Anda; link message, jika data pada port ingin Anda link ke aplikasi yang sedang berjalan atau ke simulator lain; dan yang terakhir adalah link file, yaitu jika data yang dikirim ke port akan dikirimkan ke file. Pengaturan link message bisa dianggap sama dengan pengaturan link message pada COM.
    • Reset Port+Com setting on close. Jika menu ini diberi tanda cek, maka pengaturan pada port dan com akan dikembalikan ke keadaan tidak “link none” setelah simulasi ditutup. Sebaliknya, seting akan disimpan pada registry dan akan digunakan untuk mengatur simulator pada saat simulator dijalankan lagi.
    • Kecepatan Simulasi. Ini adalah menu terakhir pada menu Option. Ini akan menentukan tundaan setiap eksekusi simulasi. Tentu saja menu ini hanya akan berarti jika menu Update Display diberi tanda cek.
  7. About. Yang ini tidak begitu penting, hanya terkadang kalau kita membuat program, maka kita juga ingin dikenal. Nah kalau Anda klik menu yang ini, Anda akan melihat logo kebanggaan saya.

Break point

Ada kalanya kita ingin menjalankan simulasi tanpa harus mengawasi setiap langkahnya. Kita hanya ingin tahu keadaan pada baris tertentu, misal keadaan register-register tepat sebelum sebuah subprogram hendak kembali (pada perintah RET). Jika demikian, Anda cukup memberi tanda break point pada baris yang Anda kehendaki sebagai tempat berhentinya simulasi. Caranya, klik ganda pada baris di mana Anda ingin simulasi berhenti. Untuk menghilangkan tanda break point, Anda tinggal klik ganda lagi pada baris tersebut.

Update Point

Jika kita ingin simulasi dijalankan dengan cepat, maka kita harus membuang tanda cek pada menu Option-Update Display. Sayangnya jika ini kita lakukan, maka tampilan pada semua jendela hanya akan diupdate setelah kita menghentikan simulasi. Jadi kita tidak bisa mengamati perubahan yang terjadi pada register-registernya. Kita bisa membuat agar pada titik-titik tertentu, nilai-nilai register diupdate tanpa harus menghentikan simulasi. Nah, jika ini yang Anda kehendaki, maka Anda bisa tambahkan update point pada baris tertentu. Misalnya pada baris setelah sebuah port dimodifikasi sehingga kita bisa mengamati perubahan nilai pada port tersebut. Caranya adalah klik ganda sambil menekan tombol Ctrl pada baris yang ingin Anda tambah update point.

Breakpoint dan Updatepoint

Breakpoint (merah) dan Updatepoint (kuning)

Apakah Anda menyukai post ini? Mengapa tidak memberikan komentar di bawah dan melanjutkan perbincangan, atau berlangganan my feed dan dapatkan artikel semacam ini yang dikirm secara otomatis feed reader Anda.
Harap diperhatikan bahwa komentar atau pertanyaan yang disampaikan haruslah sesuai dengan topik yang sedang dibahas. Komentar atau pertanyaan yang tidak sesuai dengan topik akan kami hapus :!:

13 Komentar
  1. mas ada koding nya g??
    saya butuh bgt..

    • koding? maksudnya source code? ya ada lah, wong itu aku yang bikin. tapi aku ga membuat itu untuk publik, jadi aku ga mendokumentasikan dengan baik. cuma aku tulis dan aku pahami sendiri. kalo dll nya sih mang aku gratisin buat diambil siapa saja yang mau 🙂

    • maaf.. maksud mas sulhan pada komentar di atas source code untuk buat file dllnya simulator y????
      boleh dong aq ambil kalo gk keberatan… :->

  2. maz….saya pengen tanya….saat saya jalankan demo program running text ….kenapa di simulasi Mxled.exe gak nampil…tolong di kasih pencerahannya…..

    • @Budiono: sudah download IDE terbaru kan? Nah, coba jalankan demo dari demo yang pertama hingga yang terakhir. Ikuti petunjuk yang ada di situ (baca help).

  3. ini sama dengan emulator tidak ya mas?

    • @belajar elektronika: tidak sama, ini hanya menirukan kerja hardware secara software saja. meskipun demikian, percobaan2 yg berhubungan dg hardware sungguhan bisa jg dilaksanakan, misalnya komunikasi serial atau membaca atau mengirim data ke port.

  4. Pak, tadi malam saya beli buku bapak. Kok simulator nya ini gak ada dalam CD ya? Kalau mau download dimana pak?

    Terimakasih 😀

    • Oh ternyata ada di Micro Project nya , hehehe

    • Yang di cd, simulator menjadi satu dengan micro.exe. Tetapi disarankan untuk menggunakan versi terbaru

  5. salam pak sulhan,, saya sudah pernah menggunakan simulator yang ada dimikro7 dan bisa ( pd komputer saya ), tapi saya copy foldernya ke komputer lain kok pas buka mikro7 ada alarm simulatorInDll.dll not found, dan saya tidak bisa gunakan simulator di komputer tersebut.
    apa ada yang perlu di instal ya pak??
    makasi.

    • Coba jalankan micro.exe dengan cara klik kanan, terus pilih Run as administrator.

    • ok master, makasi

Tinggalkan komentar

Sebelum membuat komentar, pastikan Anda telah membaca komentar-komentar sebelumnya. Jangan membuat pertanyaan yang telah ditanyakan. Perhatikan pula link-link dalam artikel. Lihatlah link tersebut sebelum membuat pertanyaan, karena mungkin penjelasan dari pertanyaan Anda telah di jawab dalam link tersebut.

Komentar yang tidak mengikuti aturan ini akan dihapus!

(wajib)

(wajib)


Time limit is exhausted. Please reload the CAPTCHA.