;--------------------------------------------------------
; Program untuk membaca tombol yang disusun secara matrix,
; Input tombol pada port 1, output tombol pada port 2 dan
; Hasil di tampilkan pada display 7 segment di port 0
;---------------------------------------------------------
org 0h
Mulai:
Mov 74h,#4 ; Jumlah baris tombol matrik
Mov R5,#0FEh ; Data untuk port 2 (bahris)
Mov DPTR,#Angka
Mov 71h,#0 ; Hitung data per 5 baris
Ulang:
Mov 70h,#07Fh ; Data pembanding input P1
Mov 72h,#0 ; Hitung data per 5 baris
Ulang 1:
Mov P2,R5
Mov A,P1
cjne A,70h,geser1
Mov A,72h
add A,71h
Movc A,@A+DPTR
Mov p0,A
sjmp Mulai
geser1:
inc 72h
mov A,70h
RR A
Mov 70h,A
Mov A,72h
Cjne A,#5ulang1 ;ulangi sebannyak kolom tombol
Nextscan:
Mov A,71h
Add A,#5
Mov 71h,a
Mov A,R5
RL A
Mov R5,A
Djnz 74h,ulang
Mov P2,#0FFh
Ljmp Mulai
;
Angka: DB 0AAh,38h,60h,22h,70h,34h,25h,0A4h,77h,62h,0A8h
DB 28h,29h,71h,0BAh,0E8h,21h,20h,67h,0E0h\
END