Anda di halaman 1dari 4

TASK : Butlah program agar portA mengeluarkan data 15h jika portc1 dan portd2 berlogika 1, selain kodisi

tersebut portA akan mengeluarkan data 00h.

PROGRAM .include "m8535def.inc" .org 0x00 rjmp utama kasur: ldi r17, 0x15 out porta, r17 rjmp utama utama: ldi r16, low(ramend) out spl, r16 ldi r16, high(ramend) out sph, r16 ldi r16, 0x00 out ddrc, r16 ; set portc sebagai input out ddrd, r16 ; set portc sebagai input ldi r16, 0xff out ddra, r16 ; set porta sebagai output sbis portc, 1 rjmp gagal sbis portd, 2 rjmp gagal rjmp kasur gagal: ldi r18, 0x00 out porta, r18 rjmp utama

Tugas SISMIK | AVRStudio | Beny S Pardede, Briandro Suhud, Richard A

ScreenShot Program
proses Build, program berjalan lancar, tidak ada error

Tugas SISMIK | AVRStudio | Beny S Pardede, Briandro Suhud, Richard A

Kita lihat bahwa port a bernilai 0x00 karena portc1 dan portd2 tidak bernilai 1 (bernilai 0)

Setelah itu, program kembali ke poin utama

Program kembali ke poin utama kali ini portc1 dan portd2 akan diset 1

Tugas SISMIK | AVRStudio | Beny S Pardede, Briandro Suhud, Richard A

disini portc1 dan portd2 sudah di set 1. sehingga perintah sbis akan melompat 2 langkah kebawah dan melewatkan rjmp gagal, ekesekusi langsung melompat ke rjmp kasur.

Dimana perintah poin kasur adalah kasur: ldi r17, 0x15 out porta, r17 rjmp utama sehingga porta akan bernilai 0x15. Setelah itu program akan kembali ke poin utama kembali, dan mengulang perintah-perintah berikutnya. Hasil dari porta akan mengikuti input dari portc1 dan portd2. jika portc1 dan portd2 tidak bernilai 1 maka program akan rjmp ke poin gagal dan porta akan bernilai 0x00, Sebaliknya jika portc1 dan portd2 bernilai 1, maka program akan rjmp ke poin kasur dan porta akan bernilai 0x15.

Tugas SISMIK | AVRStudio | Beny S Pardede, Briandro Suhud, Richard A

Anda mungkin juga menyukai