Anda di halaman 1dari 19

Piranti Input/Output

3x 4 Keypad & SevenSegment


Faozan Ahmad
faozan@ipb.ac.id
Departemen Fisika
Institut Pertanian Bogor

I/O Device

3 x 4 Keypad

Seven-Segment

3 X 4 Keypad

Rangkain Keypad

Cara Kerja (Contd)


z

Untuk mendeteksi tombol mana yang ditekan, maka


mikrokontroler akan membaca bit 0 yang diterima di P2,
karena pada keadaan normal semua port parallel dari
mikrokontroler berlogika 1 atau terhubung ke VCC.
Mudahnya kita sebut saja bit kolom sebagai output
scanner yang akan memilih kolom dimana tombol di
tekan, sedangkan bit baris kita sebut sebagai input
scanner yang akan menentukan tombol mana yang
ditekan.
Misal: agar tombol 9 terbaca, maka kita perlu berikan
logika nol pada P2.4(K3), sehingga ketika tombol 9
ditekan maka P2.5(B3) akan berlogika nol juga, karena
tombol 9 akan menghubungkan P2.4 dengan P2.5.
Proses selanjutnya tinggal penterjemahan oleh program
misalnya: jika P2.5 =0, maka berarti 9.

Cara Kerja
STEP 1

STEP 2

STEP 3

: C1 = 0 ; C2-C3 = 1 (Berikan logik 0 ke col 1 dan col2-3 diberi logika 1)


Tanya, Apakah Common=0?
Jika R1=0 maka data = 1
Jika R2=0 maka data = 4
Jika R3=0 maka data = 7
Jika R4=0 maka data = *
:C2 = 0 ; C1,C3 = 1
Tanya, Apakah Common=0?
Jika R1=0 maka data = 2
Jika R2=0 maka data = 5
Jika R3=0 maka data = 8
Jika R4=0 maka data = 0
:C3 = 0 ; C1,C2 = 1
Tanya, Apakah Common=0?
Jika R1=0 maka data = 3
Jika R2=0 maka data = 6
Jika R3=0 maka data = 9
Jika R4=0 maka data = #

Data yang diisi dapat berupa register atau Accumulator.

ORG 0H
MULAI:
MOV P2,#11111011B
JB P2.3,KEY1
MOV P0,#01111111B
MOV P1,#01111111B
SJMP MULAI
KEY1:
JB P2.5,KEY2
MOV P0,#01111111B
MOV P1,#11111000B
SJMP MULAI
KEY2:
JB P2.6,KEY3
MOV P0,#01111111B
MOV P1,#10011001B
SJMP MULAI
KEY3:
JB P2.1,KEY4
MOV P0,#01111111B
MOV P1,#11111001B
SJMP MULAI

; Buat P2.2=0 (Untuk Baca Tombol 1,4,7,#)


; Apakah tombol '#' (P2.3) ditekan (P2.3=0)
; Ya ! aktifkan 7-segment paling kiri(LSB)
; Keluarkan Kode Huruf 'dot' Ke Port 1
; Ulangi lagi dari awal
; Apakah tombol '7' (P3.6) ditekan (P3.6=0)
;Tidak! cek tombol lain di KEY2
; Ya ! aktifkan 7-segment paling kiri(LSB)
; Keluarkan kode huruf '7' ke port 0
; Ulangi lagi dari awal
; Apakah tombol '4' (P3.5) ditekan (P3.5=0)
; Tidak! cek tombol lain di KEY3
; ya ! aktifkan 7-segment paling kiri
; Ya! Keluarkan kode huruf '4' ke port 0
; Ulangi lagi dari awal
; Apakah tombol '1' (P3.4) ditekan (P3.4=0)
; Tidak! cek tombol lain di KEY4
; ya ! aktifkan 7-segment paling kiri
; Keluarkan kode huruf 'A' ke port 0
; Ulangi lagi dari awal

Seven Segment

Tabel formasi Seven-Segment

Seven-Segment
VCC

40

VCC
10k

30
29

P20
P21
P22
P23
P24
P25
P26
P27

P30/RXD
P31/TXD
P32/INT0
P33/INT1
P34/T0
P35/T1
P36/WR
P37/RD
X1

EA/VP
ALE/P
PSEN

GND

VCC

31

P10
P11
P12
P13
P14
P15
P16
P17

20

21
22
23
24
25
26
27
28

P00
P01
P02
P03
P04
P05
P06
P07

VCC

U?
39
38
37
36
35
34
33
32

X2
RESET

1
2
3
4
5
6
7
8

a
b
c
d
e
f
g
Dp
Com

10
11
12
13
14
15
16
17

7SEG

VCC

19
U?
18
9

CRYSTAL

89C51
VCC
10K

1uF

Contoh Program
$Delay.ASM
Start:
Clr P0.0
;Mengaktifkan Common Segment
Loop:
Mov P1,#05h ; Menampilkan Angka 0
Acall Long_Delay
Mov P1,#9Fh ; Menampilkan Angka 1
Acall Long_Delay
Mov P1,#23h ; Menampilkan Angka 2
Acall Long_Delay
Mov P1,#0Bh ; Menampilkan Angka 3
Acall Long_Delay
Mov P1,#99h ; Menampilkan Angka 4
Acall Long_Delay
Jmp Loop
End

Metode Scanning Sebagai


Penggerak Penampil 7-segment

8xSeven-Segment

Rangkaian saklar pemilih 7-segment

Cara Kerja
z

z
z
z

Inti dari rangkaian penggerak 8x7-segment adalah


bagaimana cara menghidupkan 8 buah 7-segment
secara hampir bersamaan
Padahal yang kita tahu mikrocontroller yang kita
gunakan hanya memiliki 4 port parallel sehingga hanya
4x7-segment saja yang dapat dihubungkan.
Teknik Scanning membutuhkan 2 port
Port 1 digunakan untuk mengirimkan data karakter yang
akan ditampilkan
sedangkan port 0 digunakan untuk menghubungkan
antara Vcc dengan CA pada 7-segment, yang berfungsi
untuk memilih 7-segmen mana yang akan diaktifkan

Kombinasi bit P0 dengan 7Segment yang aktif.

Contoh Program
ORG
0H
MULAI:
MOV DPTR,#Kamar
MOV R6,#08H
MOV R1,#7FH
ULANG: CLR
A
MOVC A,@A+DPTR
INC DPTR
MOV P1,A
MOV A,R1
MOV P0,A
RR
A
MOV R1,A
MOV R2,#0FFH
DELAY: DJNZ R2,DELAY
MOV P1,#0FFH
DJNZ R6,ULANG
JMP MULAI
Kamar:
DB 0FDH,062H,0C0H,01H,0F9H,099H,0F9H,0FDH
END

EEPROM Writer

Anda mungkin juga menyukai