modul 1 pemrograman assembly decrypted

16
Modul I Praktikum Sistem Mikrokontroler Pemrograman Assembly Teknik Elektro UIN SGD Bandung Hal 1 dari 16 Modul I PEMROGRAMAN ASSEMBLY I. Tujuan 1. Mengenal dan memahami instruksi-instruksi dalam MCS-51 2. Mampu membuat program sederhana 3. Mengenal dan memahami prosedur memasukkan program ke dalam mikrokontroler II. Dasar Teori Modul ini akan memberikan pengenalan instruksi-instruksi dasar pada MCS-51, format umum dan penjelasan fungsi-fungsinya. Selanjutnya, berdasarkan instruksi- instruksi tersebut, praktikan dilatih membuat suatu program sederhana. Terakhir, akan dijelaskan prosedur memasukkan program itu ke dalam mikrokontroler. Kita akan memulai pemrograman assembly dengan mengenal instruksi-instruksi yang ada dalam MCS-51. Secara umum instruksi-instruksi dalam keluarga MCS-51 dapat dikategorikan dalam empat bagian : instruksi perpindahan data, instruksi aritmatika, instruksi logika dan instruksi percabangan. II.1 Instruksi Perpindahan Data Instruksi perpindahan data merupakan instruksi yang paling sering dipergunakan dalam suatu pemrograman assembly. Berikut merupakan format umum instruksi ini : Ins Parameter1, Parameter2 Ins adalah instruksi, Parameter1 adalah tujuan dari hasil operasi dan kadang kala merupakan parameter pertama dalam operasi yang dilakukan, sedangkan Parameter2 umumnya berupa nilai yang akan dioperasikan oleh instruksi. Contoh : MOV A, R0

Upload: cintiya-ietu-wiidy-wieniectha

Post on 19-Jan-2016

94 views

Category:

Documents


4 download

DESCRIPTION

modul

TRANSCRIPT

Page 1: Modul 1 Pemrograman Assembly Decrypted

Modul I Praktikum Sistem Mikrokontroler

Pemrograman Assembly

Teknik Elektro UIN SGD Bandung Hal 1 dari 16

Modul I

PEMROGRAMAN ASSEMBLY

I. Tujuan

1. Mengenal dan memahami instruksi-instruksi dalam MCS-51

2. Mampu membuat program sederhana

3. Mengenal dan memahami prosedur memasukkan program ke dalam

mikrokontroler

II. Dasar Teori

Modul ini akan memberikan pengenalan instruksi-instruksi dasar pada MCS-51,

format umum dan penjelasan fungsi-fungsinya. Selanjutnya, berdasarkan instruksi-

instruksi tersebut, praktikan dilatih membuat suatu program sederhana. Terakhir, akan

dijelaskan prosedur memasukkan program itu ke dalam mikrokontroler.

Kita akan memulai pemrograman assembly dengan mengenal instruksi-instruksi yang

ada dalam MCS-51.

Secara umum instruksi-instruksi dalam keluarga MCS-51 dapat dikategorikan dalam

empat bagian : instruksi perpindahan data, instruksi aritmatika, instruksi logika dan

instruksi percabangan.

II.1 Instruksi Perpindahan Data

Instruksi perpindahan data merupakan instruksi yang paling sering dipergunakan

dalam suatu pemrograman assembly. Berikut merupakan format umum instruksi ini :

Ins Parameter1, Parameter2

Ins adalah instruksi, Parameter1 adalah tujuan dari hasil operasi dan kadang kala

merupakan parameter pertama dalam operasi yang dilakukan, sedangkan Parameter2

umumnya berupa nilai yang akan dioperasikan oleh instruksi.

Contoh : MOV A, R0

Page 2: Modul 1 Pemrograman Assembly Decrypted

Modul I Praktikum Sistem Mikrokontroler

Pemrograman Assembly

Teknik Elektro UIN SGD Bandung Hal 2 dari 16

Dalam hal ini, instruksi yang digunakan adalah MOV : bertugas memindahkan data

dari R0 ke A .

Misal, sebelum eksekusi:

R0 30h 25h A

Parameter2 Parameter1

Setelah eksekusi:

R0 30h 30h A

Parameter2 Parameter1

Dengan mengetahui arah aliran data dalam instruksi, akan memudahkan kita untuk

memahami instruksi lainnya yang akan dibahas.

Beberapa format instruksi perpindahan data yang lain dapat dilihat pada tabel berikut:

Tabel 1 Instruksi Perpindahan Data

Instruksi Keterangan Contoh MOV A, Rn Memindahkan isi register Rn ke A

(akumulator)

MOV A, R0

MOV A, direct Memindahkan isi direct byte ke

akumulator

MOV A, 30h

MOV A, #data Mengisi akumulator dengan nilai

data

MOV A, #20h

MOV A, @Rn Mengisi akumulator dengan isi dari

alamat yang ditunjuk oleh Rn

MOV A, @R0

II.2 Instruksi Aritmatika

Berikut merupakan beberapa contoh instruksi aritmatika (Tabel 2).

Tabel 2 Instruksi Aritmatika

Instruksi Keterangan Contoh ADD A, Rn Menambah isi register Rn dengan isi

akumulator lalu disimpan di akumulator

ADD A, R1

ADD A, direct Menambah isi direct dengan akumulator,

hasilnya disimpan di akumulator

ADD A, 30H

ADD A, #data Menambahkan immediate data ke akumulator ADD A, #20h

ADD A, @Rn Menambahkan isi dari alamat yang ditunjuk

Rn dengan akumulator

ADD A, @R1

Page 3: Modul 1 Pemrograman Assembly Decrypted

Modul I Praktikum Sistem Mikrokontroler

Pemrograman Assembly

Teknik Elektro UIN SGD Bandung Hal 3 dari 16

ADDC A, #data Menambahkan immediate data ke akumulator

dengan carry

ADDC A,

#20h

SUBB A, Rn Kurangkan isi register Rn dari akumulator SUBB A, R1

INC A Tambah isi akumulator dengan 1 INC A

DEC A Kurangkan isi akumulator dengan 1 DEC A

MUL AB Kalikan isi A dengan isi B, low-byte disimpan

pada akumulator, dan high byte pada B

MUL AB

DIV AB Bagi isi A dengan isi B. Akumulator

menerima hasil integer pembagian dan B

menerima integer sisanya.

DIV AB

II.3 Instruksi Logika

Berikut merupakan beberapa contoh instruksi logika.

Tabel 3 Instruksi Logika

Instruksi Keterangan Contoh ANL A, Rn AND isi Rn dengan isi akumulator AND A, R0

ANL A, #data AND immediate data dengan isi akumulator AND A, #20H

ORL A, Rn OR isi Rn dengan isi akumulator OR A, R0

XRL A, #data XOR immediate data dengan isi akumulator XOR A, #data

CPL A Komplemen isi akumulator CPL A

II.4 Instruksi Percabangan

Percabangan pada 8051 ada beberapa macam, antara lain :

Conditional Jump ;

Direct Jump ;

Direct Call (pemanggilan subroutine) ;

Return from subroutine (kembali dari subroutine).

II.4.1 Conditional Jump

8051 memiliki beberapa instruksi yang dapat digolongkan sebagai instruksi

conditional jump. Instruksi-instruksi ini menyebabkan 8051 mengeksekusi program

tidak secara baris per-baris, melainkan berubah/meloncat berdasar suatu kondisi

tertentu. Proses ini mirip dengan struktur if…. else…. pada pemrograman C++. Hal

yang perlu diperhatikan dalam conditional jump adalah program hanya dapat

melakukan percabangan pada alamat relatif sejauh 128 byte sebelumnya atau 127 byte

Page 4: Modul 1 Pemrograman Assembly Decrypted

Modul I Praktikum Sistem Mikrokontroler

Pemrograman Assembly

Teknik Elektro UIN SGD Bandung Hal 4 dari 16

sesudahnya. Berikut adalah contoh potongan program yang menunggu input dari pin

P0.2 sampai berharga satu:

WAIT: JNB P0.2, WAIT

JNB adalah instruksi jump dengan syarat berikut : apabila bit yang diperiksa 1, ia

akan mengeksekusi alamat label pada operandnya; apabila bit yang diperiksa = 1, ia

akan menjalankan instruksi di bawahnya.

II.4.2 Direct Jump

Apabila conditional jump sangat penting dalam proses pengambilan keputusan, direct

jump sangat penting ketika kita ingin melakukan suatu percabangan ke alamat memori

tertentu tanpa memperhatikan suatu kondisi. Contoh:

LOOPHERE: AJMP LOOPHERE

Dengan dieksekusinya potongan program tersebut, maka mikrokontroler akan terus

melakukan iterasi selamanya pada LOOPHERE. Umumnya algoritma ini digunakan

untuk mengakhiri suatu program, sehingga PC tidak menjalankan instruksi yang tidak

diinginkan, atau microcontroller sedang menunggu interrupt dari I/O.

II.4.3 Direct Calls

Operasi ini akan menyebabkan program memanggil subroutine. Perbedaan dengan

jump adalah instruksi ini menyimpan alamat untuk kembali ke flow program semula.

Misalkan suatu program utama MAIN memanggil fungsi DELAY.

MAIN:

……

CALL DELAY

……

DELAY:

……

RET

Page 5: Modul 1 Pemrograman Assembly Decrypted

Modul I Praktikum Sistem Mikrokontroler

Pemrograman Assembly

Teknik Elektro UIN SGD Bandung Hal 5 dari 16

Ketika fungsi subroutine DELAY dipanggil, maka instruksi pada subroutine DELAY

akan dieksekusi hingga instruksi RET. Instruksi RET menunjukkan subroutine

DELAY telah selesai dilaksanakan, selanjutnya yang harus dikerjakan mikrokontroler

adalah instruksi di bawah CALL DELAY.

III. Alat dan Bahan

1. Komputer

2. Programmer ALL-11

3. Software UMPS

4. Software WACCESS

5. AT89C51

IV. Prosedur Praktikum

Lakukanlah praktikum ini sebaik-baiknya dengan mengikuti urutan prosedur yang

dijelaskan berikut!

IV.1 Konfigurasi Software dan Peralatan

1. Nyalakan komputer Anda!

2. Pastikan ALL-11 telah aktif dan terhubung dengan komputer Anda melalui

port paralel yang telah tersedia!

3. Pastikan software UMPS telah tersedia pada komputer Anda! Software ini

akan dipergunakan sebagai lingkungan kerja dalam pembuatan program

assembly.

4. Pastikan software WACCESS telah tersedia pada komputer Anda! Software

ini akan dipergunakan untuk mengakses Programmer ALL-11.

5. Pastikan Anda telah memiliki sebuah AT89C51!

Page 6: Modul 1 Pemrograman Assembly Decrypted

Modul I Praktikum Sistem Mikrokontroler

Pemrograman Assembly

Teknik Elektro UIN SGD Bandung Hal 6 dari 16

IV.2 Membuat Program Sederhana dengan UMPS

IV.2.1 Mempersiapkan Lingkungan Kerja UMPS

1. Buka software UMPS! Pada layar akan muncul tampilan sesuai Gambar 1.

Gambar 1 Tampilan Awal UMPS

2. Pilih menu [Configure] [Load CPU…]. Carilah lokasi dimana CPU berada!

Selanjutnya pilih file: 8031.cpl. Tekan tombol [OK] Proses ini diperlihatkan

pada Gambar 2.

Gambar 2 Menu Pemilihan CPU

Page 7: Modul 1 Pemrograman Assembly Decrypted

Modul I Praktikum Sistem Mikrokontroler

Pemrograman Assembly

Teknik Elektro UIN SGD Bandung Hal 7 dari 16

3. Buka menu [FILE] [New], sehingga pada layar muncul tampilan berikut

Gambar 3 UMPS <8031>

4. Sekarang, lingkungan kerja untuk pemrograman assembly MCS51 telah siap

dipergunakan.

IV.2.2 Pembuatan Program Sederhana

1. Salinlah kode program berikut dalam UMPS!

ORG 0H ; mulai pada alamat 0H

MOV R5, #25H ; isi R5 dengan 25H

MOV R7, #34H ; isi R7 dengan 34H’

MOV A, #0 ; isi A dengan 0

ADD A, R5 ; tambahkan isi R5 dengan isi A

; sekarang A = A + R5

ADD A, R7 ; tambahkan isi R7 dengan isi A

; sekarang A = A + R7

ADD A, #12H ; tambahkan isi A dengan 12H

; sekarang A = A + 12H

HERE: SJMP HERE ; lakukan terus loop ini

END ; akhir kode program

Page 8: Modul 1 Pemrograman Assembly Decrypted

Modul I Praktikum Sistem Mikrokontroler

Pemrograman Assembly

Teknik Elektro UIN SGD Bandung Hal 8 dari 16

2. Simpan file tersebut dengan nama mod1_01.asm. Seperti terlihat pada gambar

4. Tekan [OK].

Gambar 4 Save File dalam Format *.asm

3. Pilih menu [PROGRAM] [COMPILE], sehingga muncul tampilan berikut.

Pilihlah file mod1_01.asm sebagai file yang akan dikompile

Gambar 5 Compile sebuah File *.asm

Page 9: Modul 1 Pemrograman Assembly Decrypted

Modul I Praktikum Sistem Mikrokontroler

Pemrograman Assembly

Teknik Elektro UIN SGD Bandung Hal 9 dari 16

4. Bila proses ini berjalan dengan baik, tampilan berikutnya akan terlihat sebagai

berikut:

Gambar 6 Status Kompilasi

5. Sampai disini proses compile telah selesai. Bila Anda lihat pada folder dimana

mod1_01.asm berada, terdapat file mod1_01.hex dan mod1_01.lst. File

mod1_01.hex adalah file heksadesimal program yang telah dibuat, yang

selanjutnya akan disimpan/di-burn dalam AT89C51 kita. Sedang file

mod1_01.lst menampilkan pesan-pesan kesalahan yang terjadi selama proses

kompile berlangsung.

6. Penggunaan UMPS lebih lanjut akan dibahas pada modul II.

[TUGAS–01]

Berdasarkan contoh yang telah dijelaskan di atas, buatlah suatu program yang

melakukan proses berikut:

(a) hapus akumulator (A), kemudian

(b) tambahkan 3 ke dalam akumulator sebanyak 10 kali

Simpanlah file tersebut dengan nama mod1_02.asm, kemudian compile-lah file

tersebut!

Page 10: Modul 1 Pemrograman Assembly Decrypted

Modul I Praktikum Sistem Mikrokontroler

Pemrograman Assembly

Teknik Elektro UIN SGD Bandung Hal 10 dari 16

[TUGAS–02]

Tulislah suatu program yang dapat menghapus 16 buah lokasi RAM mulai dari alamat

60H! Simpanlah file tersebut dengan nama mod1_03.asm, kemudian compile-lah file

tersebut!

[TUGAS-03]

Tulislah suatu program yang dapat meng-copy sebuah blok yang terdiri dari 10 bytes

data yang terletak mulai dari alamat 35H ke alamat yang dimulai dari 60H!

Simpanlah file tersebut dengan nama mod1_04.asm, kemudian compile-lah file

tersebut!

IV.2.3 Memasukkan Program yang Telah Dibuat ke dalam Mikrokontroler

1. Pasang IC AT89C51 Anda ke dalam Programmer ALL-11, pastikan tanda

segitiga berada pada sudut kiri atas Programmer. Bila sudah terpasang dengan

baik kuncilah IC tersebut.

2. Buka software WACCESS, sehingga pada layar akan terlihat tampilan seperti

Gambar 7.

Gambar 7 Software WACCESS

Page 11: Modul 1 Pemrograman Assembly Decrypted

Modul I Praktikum Sistem Mikrokontroler

Pemrograman Assembly

Teknik Elektro UIN SGD Bandung Hal 11 dari 16

3. Pilih menu [OPTION] [I/O BASE ADDRESS], hal ini dilakukan untuk

memeriksa apakah IC telah terpasang dengan baik, seperti terlihat pada

Gambar 8. Kemudian tekan [CANCEL].

Gambar 8 Status Programmer

4. Pilih menu [DEVICE], pada layar akan muncul tampilan sesuai Gambar 9.

Pilihlah ATMEL, lalu [OK]!

Gambar 9 Manufacturing List

5. Selanjutnya akan muncul menu type list yang diinginkan. Pilih MPU/MCU,

dan AT89C51 sebagai jenisnya. Tekan [RUN].

Page 12: Modul 1 Pemrograman Assembly Decrypted

Modul I Praktikum Sistem Mikrokontroler

Pemrograman Assembly

Teknik Elektro UIN SGD Bandung Hal 12 dari 16

6. Pada layar akan muncul tampilan seperti Gambar 10.

Gambar 10 Menu ATMEL AT89C51

7. Selanjutnya pilihlah menu [FILE] [Load File To Programmer Buffer]. Pada

layar akan muncul tampilan berikut. Tekan [OPEN].

Gambar 11 Load File to Programmer Buffer

Page 13: Modul 1 Pemrograman Assembly Decrypted

Modul I Praktikum Sistem Mikrokontroler

Pemrograman Assembly

Teknik Elektro UIN SGD Bandung Hal 13 dari 16

8. Tampilan berikutnya dapat dilihat pada Gambar 12, pilihlah format file Intel

HEX dan Unused Byte FF, lalu tekan [OK]

Gambar 12 Format File

9. Kemudian, pilihlah [OPERATION] [AUTO], sehingga berikutnya muncul

tampilan seperti Gambar 13. Hapus Lockbit1 sampai Lockbit3. Tekan

[RUN]. Tunggu sebentar! Dan lihatlah program telah berhasil disimpan di IC.

Gambar 13 Menu AUTO

Page 14: Modul 1 Pemrograman Assembly Decrypted

Modul I Praktikum Sistem Mikrokontroler

Pemrograman Assembly

Teknik Elektro UIN SGD Bandung Hal 14 dari 16

10. Lakukan prosedur memasukkan program ke mikrokontroler dengan

menggunakan Programmer ALL-11 dan software WACCESS terhadap file

mod1_02.hex, mod11_03.hex dan mod1_04.hex

11. Selamat Berlatih !!!

Page 15: Modul 1 Pemrograman Assembly Decrypted

Modul I Praktikum Sistem Mikrokontroler

Pemrograman Assembly

Teknik Elektro UIN SGD Bandung Hal 15 dari 16

V. Hasil Praktikum

[TUGAS-01]

Isikan jawaban Anda di sini lalu berikan penjelasan singkat mengenai cara kerja

program yang Anda buat!

[TUGAS-02]

Isikan jawaban Anda di sini lalu berikan penjelasan singkat mengenai cara kerja

program yang Anda buat!

Page 16: Modul 1 Pemrograman Assembly Decrypted

Modul I Praktikum Sistem Mikrokontroler

Pemrograman Assembly

Teknik Elektro UIN SGD Bandung Hal 16 dari 16

[TUGAS-03]

Isikan jawaban Anda di sini lalu berikan penjelasan singkat mengenai cara kerja

program yang Anda buat!