Anda di halaman 1dari 10

LAPORAN MIKROKONTROLER

“JOB 1”

NAMA : TRADICANTHYA JEAN G TUTKEY


NIM : 1320194049
KELAS : TRSM 4C

TEKNOLOGI REKAYASA SISTEM KELISTRIKAN MIGAS


POLITEKNIK 2022
PERCOBAAN 5 – 1 – 1

ORG 000H
MOV A,#10000000B
NEXT :
MOV P2, A
CALL DELAY
RR A
JMP NEXT

;==========================
; DELAY 0.1S
;==========================
DELAY :
MOV R6,#200
DL1 :
MOV R7,#249
DJNZ R7, $
DJNZ R6, DL1
RET

END

CARA KERJA :
Pada akumulator A 1 0 0 0 0 0 0 0 telah di isi B = 80 Hx.
Selanjutnya MOV pada port 2, yang telah diisi akumulator A, setelah itu call delay yang
telah diberi 0.1s yang di mana delay pada R6 diberi angka 200, setelah itu pke DL1 pada
MOV Register 7 disi angka 249, dan DJNZ , D akan melakukan pengurangan 1 dan Dec =
248, JNZ merupakan Jump Not Zero ( lompat jika bukan nol ). Z = 1. Pada R7 dan R6
akan melakukan looping sebanyak 249 x 200 sampai R6 dan R7 = 0 dan Z = 1, DL1 dan
akan return atau melakukan pengulangan sampai selesai. Sehingga pada lampu LED,
lampu akan perpindah dari kiri ke kanan dan mulai lagi dari kiri ke kanan.
PERCOBAAN 5 – 1 – 2
ORG 000H
MOV A,#00000001B
NEXT _R :
RR A
MOV P2, A
CALL DELAY
CJNE A, #0,1H, NEXT _R
NEXT _L :
RL A
MOV P2, A
CALL DELAY
CJNE A, #80H, NEXT _L
;==========================
; DELAY 0.1S
;==========================
DELAY :
MOV R6,#200
DL1 :
MOV R7,#249
DJNZ R7, $
DJNZ R6, DL1
RET
END
Cara Kerja :
Pada akumulator A telah di isi 1 0 0 0 0 0 0 0 B = 80 Hx, setelah itu ke Next_R pada RR
(Rotated Right) pada akumulator A dan pada port 2 di isi akumulator A dan sub rutine
delay 0,1s dan pada MOV R6 diberi angka 200 dan DL1 Mov R7 diberi 249 dan akan Dec
R7 = 248 dan Z = 1 dan pada R6 akan kembali ke delay dan akan melakukan looping
sebanyak 249 x 200 sampai R7 dan R6 = 0 dan Z = 1. Setelah itu Return ke CJNE di mana
akumulator A harus 0,1 Hx tetapi karena A = 80 hx akan berulang kembali dari Mov pada
akumulator A hingga Return dan mendapatkan A = 0,1 Hx. Setelah ke Rotated Left, pada
akumulator A akan berpindah ke kiri dan sbu rutin delay = 0,1s dan pada R6 dan R7 akan
melakukan looping 249 x 200 = 0 dan Z = 1 . dan return ke CJNE akumulator A harus 80
Hx dan akan berulang kembali dari akumulator A pada Rotated Right danke Rotated Lft
sehingga akumulator A pada Rotated Left = 80 Hx. Sehingga mendapatkan lampu LED
pada percobaan kedua berpindah dari 7 ke 1 dan kembali ke dari 1 ke 7.
Exercise 5-1-3
Penjelasan 5-1-3
Pada program kali ini data yang digunakan adalah data langsung untuk menyalakan
LED pada port 2. Dimulai dengan data 81H dimasukkan ke port 2 agar bisa menyalakan
lampu LED bit 7 dan bit 0, selanjutnya instruksi CALL DELAY menjalankan sub rutin
(Penundaan sub rutin delay untuk mempertahankan status keluaran selama 1 detik). Pada
sub rutin, register 5 diisi nilai 10, register 6 diisi nilai 200 dan register 7 diisi nilai 249.
Instruksi DJNZ mengurangi nilai pada register 7 dan jika hasilnya bukan nol maka akan
jumping. Bagian ini dilakukan 249 kali looping, Ketika R7=0 maka z=1. Dan instruksi
DJNZ juga akan mengurangi nilai pada register 6 dan jika hasilnya bukan nol akan
jumping, nilainya dikurangi juga menjadi 199. Karena belum sama dengan 0 maka
Kembali lagi ke DL1 terus ulangi instruksi sampai R6=0, bagian ini dilakukan sampai 200
kali looping, Ketika R6=0 maka z=1. Instruksi DJNZ mengurangi nilai pada register 5 dan
jika hasilnya bukan nol maka akan jumping, Ketika nilainya dikurangi menjadi 9 dan
belum sama dengan nol maka Kembali lagi ke DL2. Ulangi instruksinya sampai
mendapatkan R5=0, bagian ini dilakukan sebanyak 10 kali looping. Ketika R5=0 maka z=1
maka akan RET. Kemudian, port 2 akan diisi dengan data 42H untuk menyalakan LED bit
6 dan bit 1, dan mengulang intruksi CALL DELAY. Jika sudah RET, data 24H diisi ke
port 2 untuk menyalakan LED ke-3 dan ke-6.
Exercise 5-1-4 (LED CONTROL 4 )
Program deskripsi :
Pada program ini menggunakan Teknik tabel untuk menunjukkan pola LED yang ada pada
memori (penundaan sub rutin delay untuk mempertahankan status keluaran tetap 0,1 detik). R0
akan diisi dengan nilai 23, kemudian DPTR akan diisi dengan data pada tabel. Isi akumulator A
akan direset menjadi 0, kemudian instruksi MOVC A, @A+DPTR akan membaca data bit yang
ada dalam memori program. Pembacaan data pertama (18H/00011000b) dimuat ke akumulator A
dan kemudian ditulis ke port 2 untuk menyalakan lampu LED ke-4 dan ke-5. Selanjutnya
instruksi CALL DELAY akan menjalankan program pada sub rutin. Sub rutin akan
menghasilkan 0,1 detik untuk meng-ONkan lampu. Pada sub rutin R6 diisi dengan nilai 200, R7
diisi dengan nilai 249. Instruksi DJNZ akan mengurangi R7 sampai sama dengan 0. Ketika R7=0
maka z=1 Instruksi DJNZ akan mengurangi R6 sampai sama dengan 0. Ketika R6=0 maka z=1
RET, kemudian DPTR akan bertambah satu untuk menunjuk data bit selanjutnya. Intruksi DJNZ
akan mengurangi R0 sampai sama dengan 0, jika belum sama dengan 0 maka akan jumping ke
NEXT. Kemudian Akumulator A akan direset menjadi 0, kemudian instruksi MOVC A,
@A+DPTR akan membaca data bit yang ada dalam memori program. Pembacaan data kedua
(24H/00100100b) dimuat ke akumulator A dan kemudian ditulis ke port 2 untuk menyalakan
lampu LED ke-3 dan ke-6. Dan selanjutnya akan mengulangi instruksi sub rutin. Isi A kemudian
akan direset lagi dan DPTR bertambah satu untuk menunjuk ke bit data selanjutnya sampai
perhitungan loop pada R0 dikurangi menjadi 0.

Anda mungkin juga menyukai