Anda di halaman 1dari 6

Nama : Isnatantri Warindrani

NIM : 4211420044
Matakuliah : Mikrokontroler

JC gas
MOV P1, #11000000b

gas:
MOV P1, #10110000b

main:
JNB F0, drain ; F0 mengeksekusi (1) ketika drain merunning
once:
SETB P1.1 ; memasukkan nial P1.1 dengan 1
JB P0.3, drain ; Jika P0.3 set, jika berisi 1 menuju alamat kode dan mulai
drain:
CLR P1.2 ; menghapus nilai di P1.2
CLR P1.3 ; menghapus nilai di P1.3
JNB P2.1, drain ; melooping hingga mendapat nilai 1 menuju alamat kode
SETB P1.2 ; mengisi nilai 1 di P1.2
SETB P1.3 ; mengisi nilai 1 di P1.3
AJMP main ; melompat kembali ke main
JNC gas
MOV P1, #11000000b

gas:
MOV P1, #10110000b
loop:
MOV P1, A ; memindahkan data P1 ke akumulator
ADD A, #8 ; menambahkan 8 bit data ke akumulator
CLR P1.7 ; menghapus nilai di P1.7
JMP loop ; loncat mengulang loop

CLR A ; mereset akumulator menjadi 0


ADD A, #30 ; memasukkan nilai A

CJNE A, #10, FALSE ; jika benar lanjut, jika salah melompat ke alamat kode
A
MOV R1, #11000000B ; memindahkan R1 dengan pola 0
MOV R2, #11111001B ; memindahkan R2 dengan pola 1

MOV A, #0 ; memasukkan decimal 0 ke akumulator


loop:
MOV P3, #00000000B
MOV P1, R1
MOV P3, #00001000B
MOV P1, R2

DJNZ R2, loop ; mengulang dengan pengurangan 1 sampai bernilai 0


MOV R3, A ; menambah R3 dengan nilai A
FALSE:
RL A ; memutar ke kiri
RR A ; memutar ke kanan
DEC A ; mengurangi nilai akumulator dengan 1
LJMP LOOP ; melompat panjang ke alamat kode

start:
SETB P3.3 ; memberikan logika 1 pada P3.3
SETB P3.4 ; memberikan logika 1 pada P3.4
MOV P1, #10001000B ; memasukkan pola A ke display 4
CALL delay ; intruksi memanggil delay
JMP start ; loncat Kembali ke start
delay:
MOV R0, #8 ; memasukkan R0 dengan 8 bit
DJNZ R0, $ ; decreament nilai R0 dengan 1 kemudian jump
(mengulang)
RET ; kembali ke subtoutine saat dipanggil
MOV TH0, #20 ; memasukkan nilai TH0 dengan 20 bit
SETB TR0 ; start timer
LOOP:
JNB TF0, LOOP ; menunggu TF0 (overflow flag), jika isi 0 menuju alamat kode
CLR TF0 ; menghapus nilai di TF0 (0)
SJMP LOOP ; mengulang
END

ORG 0010H ; memori berikutnya yang dipakai assembler yaitu 0010H


LJMP MAIN ; kode memori di 0010H, melompat ke MAIN
ORG 010BH ; memori berikutnya yang dipakai adalah 010BH
MAIN: NOP ; kode memori di 010BH. Main memulai.
MOV A, #47h
MOV B, #25
ADD A, B
DA A

END

Anda mungkin juga menyukai