Anda di halaman 1dari 3

Listing program untuk menyalakan indikator putaran motor, yaitu:

Motor diam (tidak ada putaran) : Bit ke 8 autput ON.


Kecepatan antara 0 – 100 putaran : Bit ke 5 autput ON.
Kecepatan >100(lewat batas) : Bit ke 6 dan 7 output ON.
Interupt : Menampilkan kecepatan tertinggi.
ORG 2100H

LD SP,2300H

EI

LD A,22H

LD 1,A

LD A,64H

LD D,A

LD A,4FH

OUT (01),A

LD A,OFH

OUT (03),A

LD C,02

AWAL : LD E,01

DISPLAY: OUT (C),E

IN A,(00)

CP 00

JP Z,AWAL

CP B

JP C,LEBIH

LD B,A

LEBIH: CP D

JP C,NORMAL

LD B,A

JP DISPLAY

NORMAL: LD E,08H

JP DISPLAY

INTERUPT : ORG 2200H

LD C,02

OUT (C),B

NOP

NOP

NOP

NOP

NOP

RETI
END OF PROGRAM

.ORG 0000H ; Alamat awal program

; Inisialisasi

START:

LD SP, 2300H ; Set stack pointer

EI ; Enable interrupts

; Inisialisasi bit ke 8 dan bit ke 5 (0x20) pada port 01

LD A, 0x20

OUT (1), A

; Inisialisasi bit ke 6 dan bit ke 7 (0xC0) pada port 03

LD A, 0xC0

OUT (3), A

LD C, 02 ; Set port C untuk output

AWAL:

LD E, 01

DISPLAY:

OUT (C), E ; Menampilkan nilai E ke port C

; Membaca input dari port 00

IN A, (0)

CP 00

JP Z, AWAL

; Membandingkan dengan 100 (0x64)

CP 0x64
JP C, KECEPATAN_NORMAL

JP KECEPATAN_TINGGI

KECEPATAN_NORMAL:

; Menyalakan bit ke 8 (0x08) pada port 01

LD E, 0x08

JP DISPLAY

KECEPATAN_TINGGI:

; Menyalakan bit ke 5 (0x20) pada port 01

LD E, 0x20

JP DISPLAY

INTERUPT:

; Handler interrupt (ISR)

NOP

NOP

NOP

NOP

NOP

RETI ; Kembali dari interrupt

; END OF PROGRAM

Anda mungkin juga menyukai