Download

11/04/2010

SimulatorInDLL – Simulator Mikrokontroler MCS-51

Simulator pada versi ini dibuat terpisah dari IDEnya, 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. Kalo menu ini diberi tanda cek, maka setiap akses ke ram eksternal akan menyebabkan isi register pada jendela ram eksternal akan langsung diupdate.
    • Update Display. Kalo menu ini diberi tanda cek, maka setiap eksekusi program akan langsung menyebabkan semua jendela diupdate. Kamu sebaiknya memberi tanda cek pada menu ini jika kamu pengin liat setiap perubahan data pada setiap eksekusi program. Tapi hal ini akan menyebabkan jalannya simulasi menjadi jauh lebih lambat. Jadi kalo kamu hanya pengin liat hasil akhir atau hanya pengin liat kerja yang ditunjukkan pada port, sebaiknya buang saja tanda ceknya.
    • Separate 4 bit biner. Nah kalo 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 kamu lagi coba program untuk komunikasi serial. Kamu bisa pilih Com1 hingga Com4 jika ingin setiap penulisan pada register SBuf benar-benar dikirim ke port serial di komputermu. Selain itu kamu juga bisa menghubungkan SBuf dengan simulator lain melalui window message. Jika kamu pilih link ini, maka data yang diisikan ke SBuf akan dikirim ke window yang dituju dengan data pada wParam. Kamu sebelumnya harus mengatur dulu parameter-parameter yang dibutuhkan. Pertama adalah handle dari window yang dituju. Untuk mengisi nilai ini, kamu cukup klik pada tombol Capture Handle, terus arahkan pointer mouse ke window yang dituju, lalu klik di window tersebut. Berikutnya adalah message yang dikirim. Jika window simulator yang dituju butuh WM_USER, maka kamu cukup klik pada tombolnya untuk mendapatkan konstanta untuk WM_USER. Demikian juga jika window yang dituju meminta WM_CHAR, maka kamu cukup klik pada tombol WM_CHAR. Kamu bisa menggunakan notepad untuk menangkap data karakter yang dikirim melalui SBuf jika messagenya berupa WM_CHAR. Yang terakhir adalah lParam. Parameter yang ini tidak selalu digunakan. Ini mungkin akan penting jika kamu bikin sendiri simulator dan membutuhkan informasi tambahan, misalnya simulator kamu juga pengin berkomunikasi langsung dengan simulator ini. Kamu tinggal kasih tanda cek pada Handle Aplikasi ini untuk mendapatkan handle dari simulator yang sedang berjalan. Tentu saja keterangan ini hanya akan dipahami oleh kamu yang biasa bikin program di Windows.
    • Prioritas Thread. Nah yang ini kamu harus hati-hati milihnya. Jika kamu milih prioritas paling tinggi maka semua waktu CPU hampir-hampir akan dihabiskan hanya untuk menjalankan simulasi ini. Jadi kadang kamu bahkan akan sulit untuk menggerakkan mouse.
    • Port. Yang ini berguna untuk mengatur link dari P0 hingga P1. Jika kamu klik pada menu ini, maka kamu akan dibawa ke sebuah jendela untuk mengatur link dari port-port tersebut. Ada empat pilihan link untuk setiap port, yaitu link none, jika kamu pengin port untuk tidak terhubung kemanapun; link port, jika kamu pengin port terhubung ke port fisik, misalnya port paralel, ppi atau port-port fisik lain yang terpasang di komputermu; link message, jika data pada port pengin kamu 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 dibilang 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 dilink kemanapun setelah simulasi ditutup. Sebaliknya, seting akan disimpan pada registry dan akan digunakan untuk mengatur simulator pada saat simulator dijalankan lagi.
    • Kecapatan 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 si, cuma kadang kalau kita bikin program, maka kita juga ingin dikenal. Nah kalau Anda klik menu yang ini, Anda bakal lihat logo kebanggaanku.
Break point
Ada kalanya kita ingin menjalankan simulasi tanpa harus mengawasi setiap langkahnya. Kita hanya ingin tahu keadaan pada baris tertentu saja, misal keadaan register-register tepat sebelum sebuah subprogram hendak kembali (pada perintah RET). Kalau begitu, 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 pengin 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. Nah kita bisa membuat agar pada titik-titik tertentu, nilai-nilai register diupdate tanpa harus menghentikan simulasi. Nah jika ini yang kamu kehendaki, maka kamu 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 pengin kamu tambah update point.
Breakpoint dan Updatepoint
Breakpoint (merah) dan Updatepoint (kuning)

0 komentar:

Post a Comment

Newer Post Older Post Home
Aulia DirUt. Powered by Blogger.
 

Blog Archive

Followers

 

Templates by Nano Yulianto | CSS3 by David Walsh | Powered by {N}Code & Blogger