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.
|