Interface Keypad 4x4 to LED

 
Gambar 3.22. Interface keypad dengan output ke LED

;Percobaan 3.8.1.

;pada percobaan ini, setiap pengambilan data dari keypad maka data akan dikeluarkan
;pada LED sesuai dengan tombol yang ditekan, sebagai contoh:
;bila tombol 1 ditekan maka = LED akan mempunyai kondisi 00000001,
;artinya LED0 akan nyala, dan seterusnya.
kolom1 bit P1.4
kolom2 bit P1.5
kolom3 bit P1.6
kolom4 bit P1.7
baris1 bit P1.0
baris2 bit P1.1
baris3 bit P1.2
baris4 bit P1.3
;
keydata equ 70h
keybounc equ 71h
org 0h
mulai: Acall keypad4x4 ;memanggil subrutine keypad4x4
Mov A,keydata ;A = keydata
Cjne A,#0FFh,terus ;Bandingkan A dengan FF, bila tidak sama ke Terus
sjmp mulai ;Disinilah awal dari LOOPING FOREVER
terus: CPL A ;A = NOT A
Mov P0,A ;P0 = A
Sjmp mulai ;Disinilah awal dari LOOPING FOREVER
;
delay: mov R0,#0
delay1: mov R2,#50
djnz R2,$
djnz R0,delay1
ret
;
;====================================
; subroutine untuk pembacaan data keypad 4x4
;====================================

Keypad4x4:
mov keybounc,#50 ; keybounc = 50
mov keyport,#0FFh ; keyport=P1= FF
clr kolom1 ; Kolom1= P1.4 = 0
ul1: jb baris1,key1 ; Lompat ke Key1 jika Baris1=P1.0=1
djnz keybounc,ul1
mov keydata,#0ch ; Keydata =0Ch
ret
key1: jb baris2,key2 ; Lompat ke Key2 jika Baris2=P1.1=1
djnz keybounc,key1
mov keydata,#0dh ; Keydata = 0Dh
ret
key2: jb baris3,key3 ; idem
djnz keybounc,key2
mov keydata,#0eh
ret
key3: jb baris4,key4 ; idem
djnz keybounc,key3
mov keydata,#0fh
ret
;
key4: setb kolom1
clr kolom2
jb baris1,key5
djnz keybounc,key4
mov keydata,#0bh
ret
key5: jb baris2,key6
djnz keybounc,key5
mov keydata,#9
ret
key6: jb baris3,key7
djnz keybounc,key6
mov keydata,#6
ret
key7: jb baris4,key8
djnz keybounc,key7
mov keydata,#3h
ret
;
key8: setb kolom2
clr kolom3
jb baris1,key9
djnz keybounc,key8
mov keydata,#0
ret
key9: jb baris2,key10
djnz keybounc,key9
mov keydata,#8
ret
key10: jb baris3,key11
djnz keybounc,key10
mov keydata,#5
ret
key11: jb baris4,key12
djnz keybounc,key11
mov keydata,#02
ret
;
key12: setb kolom3
clr kolom4
jb baris1,key13
djnz keybounc,key12
mov keydata,#09
ret
key13: jb baris2,key14
djnz keybounc,key13
mov keydata,#07
ret
key14: jb baris3,key15
djnz keybounc,key14
mov keydata,#04
ret
key15: jb baris4,key16
djnz keybounc,key15
mov keydata,#01
ret
key16: mov keydata,#0FFh ; bila tombol tidak ada yang menekan maka
; keydata =0FFh
ret
end

Artikel yang berkaitan :



0 comments:

Posting Komentar