
Program Assembly Display Data 8x7 Segmen
Part 1
;- BAB3_17.ASM -------------------------------------------------------------------
;
; Program untuk menghidupkan tampilan 8 x 7-Segmen
; untuk menampilkan tulisan -eLins--
;
; --------------------------------------------------------------------------------
ORG 0H
;
MULAI:
MOV DPTR,#ELINS ; Isi data pointer dg alamat data '-elins--'
MOV R6,#08H ; R6 = 8 = Jumlah digit 7 segment
MOV R1,#7FH ; R1 = untuk Common (awal 0111 1111)
ULANG: CLR A ; Isi Akumulator dengan 0
MOVC A,@A+DPTR ; Pindahkan data ke n ke A
INC DPTR ; DPTR menunjuk ke data berikutnya
MOV P0,A ; Keluarkan data A ke port 0
MOV A,R1 ; kirimkan data common ke
MOV P1,A ; port 1 melalui akumulator
RR A ; putar geser ke kanan per bit isi akumulator
MOV R1,A ; kembalikan isi R1
;
MOV R2,#0FFH ; lakukan penundaan
DELAY: DJNZ R2,DELAY ; sesaat (ulang 255x)
MOV P0,#0FFH ; Buat P0 berlogika 1 (semua LED padam)
DJNZ R6,ULANG ; Ulangi sampai 8 kali (8 digit)
JMP MULAI ; ulangi lagi dari awal
; --------------------------------------------------------------------------------
; DATA AREA
; --------------------------------------------------------------------------------
ELINS:
;
; '-' 'e' 'l' 'i' 'n' 's' '-' '-'
;
DB 0FDH,0A0H,0BAH,77H,62H,29H,0FDH,0FDH
END
Part 2
;- BAB3_17.ASM -------------------------------------------------------------------
;
; Program untuk menghidupkan Display 8 x 7-segmen
; untuk menampilkan tulisan -eLins-- berkedip=kedip
;
; --------------------------------------------------------------------------------
ORG 0H
;
ULANG: MOV R5,#144 ; Register 5 diisi 144 untuk keperluan
; jumlah pengulangan tampilan hidup
HIDUP: MOV DPTR,#ELINS ; Isi data pointer dengan alamat data '-elins--'
MOV R6,#08H ; R6 = 8 = Jumlah digit 7 segment
MOV R1,#7FH ; R1 = untuk Common (awal 0111 1111)
ULANG1:
CLR A ; Isi Akumulator dengan 0
MOVC A,@A+DPTR ; Pindahkan data ke n ke A
INC DPTR ; Data Pointer menunjuk ke data berikutnya
MOV P0,A ; Keluarkan data A ke port 0
MOV A,R1 ; kirimkan data common ke
MOV P1,A ; port 1 melalui akumulator
RR A ; putar geser ke kanan per bit isi akumulator
MOV R1,A ; kembalikan isi R1
ACALL DELAY ; lakukan penundaan sesaat
;
MOV P0,#0FFH ; Buat P0 berlogika 1 (semua LED padam)
DJNZ R6,ULANG1 ; Ulangi sampai 8 kali (8 digit)
DJNZ R5,HIDUP ; ulangi proses ini 144 (=90h) kali
MOV R5,#0 ; Isi register 5 dengan 0 (untuk 256x ulang)
MATI: ACALL DELAY
ACALL DELAY
ACALL DELAY
DJNZ R5,MATI ; ulangi hingga 256 kali
JMP ULANG ; Ulangi semua langkah diatas
; --------------------------------------------------------------------------------
;
; subrutin DELAY
;
; --------------------------------------------------------------------------------
DELAY: MOV R2,#0
LAGI: DJNZ R2,$
RET
; --------------------------------------------------------------------------------
; DATA AREA
; --------------------------------------------------------------------------------
ELINS:
;
; '-' 'e' 'l' 'i' 'n' 's' '-' '-'
;
DB 0FDH,0A0H,0BAH,77H,62H,29H,0FDH,0FDH
END
END
Semoga bermanfaat & selamat belajar!