
Bill Of Material:
Keypad:
-
mikro switch atau push button 16bh
-
J1 konektor SIP/M 8 pin 1 bh
Modul 7 Segment:
-
7Segment Common Anode 4bh
-
IC 74LS247
-
Resistor 220 4bh
-
Transistor 557 4bh
Keypad SW1 disusun dari 16 buah mikro switch dan untuk melihat tampilan dari Keypad, kita memakai modul 7segmen. Prinsip dasarnya P1.0-p1.3 (baris) dijadikan input dan di program bernilai high untuk dapat bekerja. sedangkan p1.4-p1.7 (kolom) dijadikan output dan dibuat low secara berurutan sehingga ketika ada tombol yang ditekan, port 1 selalu memiliki 2 bit yang bernilai low. Baris bisa juga di beri high dengan cara menyambungkan pin p1.0-p1.3 ke vcc melalui resistor 220 ohm.
Contoh Program 1, bila keypad di tekan, nilainya akan tampil pada 7 segment paling kanan saja. bila tombol A,B,C,D,E dan F yang ditekan, yang terlihat pada 7 segmennya tidak seperti huruf tsb. karena IC 74LS247 mendefinisikan huruf2 tsb dalam bentuk lain.
#include
;KEYPAD KE PORT 1
;7SEGMEN KE PORT 2;+:+:+:+:+:+:+:+:+:+:+:+:+:+:+:
; KEYPAD TO 7SEGMENT :
; KEYPAD KE P1 :
; 7SEGMENT KE P2 :
;+:+:+:+:+:+:+:+:+:+:+:+:+:+:+:
org 0
UTAMA:
ACALL BACAKEYPAD
MOV A,R2
ACALL SEGMEN1
SJMP UTAMA
SEGMEN1: ;+:+:+:+ SUB RUTIN MENGHIDUPKAN 7SEGMENT :+:+:+:+:+:
clr p2.4
acall delay
setb p2.4
acall delay
ORL A,#0E0H
MOV P2,A
ACALL DELAY
RET
BACAKEYPAD: ;+:+:+:+: SUB RUTIN BACA KEYPAD :+:+:+:+:+:+:+:
MOV A,#11111110B ; aktifkan output kolom(MSB) 1, input Baris(LSB) dibuat high
MOV P1,A
CJNE A,P1,Periksa
MOV A,#11111101B ; aktifkan output kolom(MSB) 2, input Baris(LSB) dibuat high
MOV P1,A
CJNE A,P1,Periksa
MOV A,#11111011B ; aktifkan output kolom(MSB) 3, input Baris(LSB) dibuat high
MOV P1,A
CJNE A,P1,Periksa
MOV A,#11110111B
MOV P1,A ; aktifkan output kolom(MSB) 4, input Baris(LSB) dibuat high
CJNE A,P1,Periksa ;A<>P1 : Ada Tombol Ditekan
CLR C ;Tombol tidak ditekan
RET
Periksa:
MOV B,P1 ;Simpan P1 ke B
MOV R2,#0 ;Mulai No 0 sampai 16
Lainnya:
MOV A,R2
ACALL BacaKombinasi ;Ambil Isi Tabel ke A
CJNE A,B,TidakSama ;
MOV A,R2 ;Ya, A := No Tombol
acall delay
SETB C ;Ada Tombol ditekan
RET
TidakSama:
INC R2 ;No Tombol Lainnya
CJNE R2,#16,Lainnya ;Sudah semua tombol?
CLR C ;Ya, tidak ada Tombol ditekan
RET
BacaKombinasi:
INC A ;‘melompati’ instruksi RET
MOVC A,@A+PC ;ambil isi Tabel Kombinasi Baris/Kolom
RET
;+:+:+:+:+:+:+:+:+: Tabel Kombinasi Baris dan Kolom :+:+:+:+:+:+:+:
db 7dh ;01111101B ; 0
db eeh ;11101110B ; 1
db edh ;11101101B ; 2
db ebh ;11101011B ; 3
db DEH ;11011110B ; 4
db DDH ;11011101B ; 5
db DBH ;11011011B ; 6
db BEH ;10111110B ; 7
db BDH ;10111101B ; 8
db BBH ;10111011B ; 9
db 7EH ;01111110B ; A
db 7BH ;01111011B ; B
db E7H ;11100111B ; C
db D7H ;11010111B ; D
db B7H ;10110111B ; E
db 77H ;01110111B ; F
;+:+:+:+:+:+:+:+:+:+: SUB RUTIN DELAY :+:+:+:+:+:++:++:++:++:
delay: mov 30h,#50 ;nilai 30h, 31h, 32h adalah internal RAM
loop03: mov 31h,#50 ;nilai2 tsb bisa di ganti dengan q1,q2,q3 caranya:
loop04: djnz 31h,loop04 ;q1 equ 30h
djnz 30h,loop03 ;q2 equ 31h
ret ; q3 equ 32h
0 comments:
Post a Comment