::Simulator
 

 
 

 

 

 

 
my Project with uC:

Remote Control

Communication to PC

PWM Motor Control

Sensor for Robot

Interface to Camera

Temperature control

Tachometer

 
Powered by  :   
 


SIMULASI    

 

 

SIMULASI KERJA MICROCONTROLLER DENGAN

SOFTWARE AVSIM51

AVSIM51 adalah simulator, emulator dan debugger untuk mikrokontroler 8051 yang beroperasi dalam lingkungan DOS pada IBM PC. Kode program dalam bahasa assembler sebelumnya harus dikompilasi dengan menggunakan cross assembler ASM51 ataupun ALDS. Kode assembler tersebut dapat dituliskan menggunakan ASCII text editor, seperti notepad ataupun Programmer’s File Editor.

Proses cross-assembler ini menghasilkan 2 file, yaitu: namafile.HEX dan namafile.LST. Kesalahan-kesalahan penulisan kode instruksi/program (syntax error) dapat dilacak pada listing yang di dalam file namafile.LST.

Jika kode program sudah bebas dari kesalahan, selanjutnya hasil cross-assembler dapat dimuat ke lingkungan AVSIM51 untuk melaksanakan hal-hal berikut:

  • Simulasi, menjalankan algoritma yang diprogramkan untuk mengetahui apakah langkah-langkah program sudah sesuai dengan yang dikehendaki.

  • Emulasi, melaksanakan program untuk memeriksa apakah program dapat mengeluarkan data ataupun menganggapi data dari lingkungan luar melalui peralatan antar-muka dan sinyal interupsi ‘tiruan’.

  • Debugging, melacak kesalahan-kesalahan algoritma yang mungkin terjadi.

Pengoperasian AVSIM51 secara ringkas diberikan dalam contoh berikut:

1.        Program assembler, misal njintr.asm, dikompilasi/assembler dengan perintah

> asm51

> tuliskan nama file : nama_file.asm

2.      Aktifkan AVSIM51 dengan mengetikkan perintah

> avsim51

Setelah itu diberikan pilihan a, yaitu pilihan untuk konfigurasi dasar dari mikrokontroler 8051. AVSIM memiliki dua mode pengoperasian, yaitu:

·                    Command mode, untuk memberikan perintah pengkofigurasian, ditandai dengan cursor dan menu perintah di bagian bawah dari layar peraga.

·                    Display mode, untuk melakukan simulasi, ditandai dengan hilangnya menu perintah dan cursor berpindah ke tengah layar.

Tombol Esc digunakan untuk berpindah dari suatu modus pengoperasian ke modus yang lain. Untuk keluar dari lingkungan AVSIM, pada command mode berikan perintah Q [Quit] dan E [Exit}.

3.      Untuk menjalankan program, Program Counter harus diubah sehingga menunjuk ke alamat awal dari program. Ini dilakukan pada mode display, yaitu dengan menekan Esc, dan selanjutnya menggerakkan cursor ke posisi PC atau dapat juga menggunakan express-key Ctr-P. Ubah isi Program Counter sehingga menjadi 8000.

4.      Langkah berikutnya adalah memuati AVSIM dengan program yang sudah dikompilasi /assembler, yaitu dengan perintah: L [Load], A [Avocet], dan berikan namafile nama_file.HEX serta Enter. Perhatikan perubahan yang terjadi pada layar, di bagian kiri sudah termuati dengan program dan memory dump sudah diisi dengan data ataupun kode heksadesimal dari program.

5.      Simulasi kini dapat dilakukan langkah demi langkah dengan setiap kali menekan tombol F10. Perhatikan perubahan-perubahan yang terjadi pada register dari prosesor, yaitu pada Accumulator A dan B, Program Counter PC, Stack Pointer SP, Index Register X serta Condition Code Register C H  N Z V I.

Simulasi juga dapat dilakukan sekaligus untuk program, dengan cara menekan tombol F1.

6.      Untuk mengaktifkan interrupt, maka interrupt vector yang sesuai harus diisi dengan alamat dari interrupt service routine. Dalam contoh ini alamat awal dari interrupt routine adalah $9000. Harga ini diberikan melalui memory dump pada alamat memory $FFF8 dan $FFF9. Pada command mode berikan perintah berikut: D, 1, A, $FFF0. Pada display mode ubah isi lokasi memori di alamat $FFF8-9 menjadi 9000.

7.      Untuk pengujian interrupt, jalankan lagi program dari awal, yaitu dengan mengubah PC menjadi 8000 (lihat langkah 7). Selanjutnya lakukan simulasi langkah demi langkah dengan hanya menggunakan tombol F10. Interupt terjadi jika bit I pada Condition Code Register berharga 0 dan sinyal IRQ juga berharga 0. Pengubahan harga bit I maupun IRQ dilakukan dengan menggerakkan cursor ke posisi tersebut ataupun dengan menggunakan Ctr-I atau Alt-I.

Jika kondisi interrupt terpenuhi maka program akan melaksanakan interrupt routine. Perhatikan perubahan pada Stack. Di dalam interrupt routine ini juga terdapat subroutine. Lanjutkan pelaksanaan program hingga subrutin juga dilaksanakan. Program akan kembali ke program utama jika sinyal IRQ dikembalikan ke kondisi normal yaitu berharga 1.

 

 

© 2004. Hantoro Dwi Putra