5
MODUL 5
APLIKASI PENGGUNAAN PORT
P1.0 P0.0
P1.1 P0.1
P1.2 P0.2
P1.3 P0.3
SENSOR P1.4 P0.4 LCD
P1.5 P0.5
P1.6 P0.6
P1.7 P0.7
P3.0 P2.0
P3.1 P2.1
P3.2 P2.2
P3.3 P2.3 MOTOR
KEYPAD P3.4 P2.4 STEPPER
P3.5 P2.5
P3.6 P2.6
P3.7 P2.7
AT89C51
Pada AT98C51, 8 bit aliran data tersebut dapat difungsikan sebagai ataupun
sebagai output. Beberapa peralatan yang dapat digunakan sebagai input, antara lain
adalah: saklar, push button, keypad, keyboard atau sensor. Sedangkan peralatan yang
dapat digunakan sebagai outpu adalah: LED, Seven Segment, LCD, Speaker
(Buzzer), motor-motor dan lain-lain.
Beberapa aplikasi Input/Output pada port akan dibahas secara bertahap pada
modul ini dan modul-modul berikutnya.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Andi Adriansyah, M.Eng MICROPROSESOR 1
Modul 5. Aplikasi Penggunaan Port
Vcc
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
AT89C51
Contoh 5.1:
Program dibawah ini untuk merupakan aplikasi untuk membuat kelompok 4
(empat) LED mati dan hidup secara bergantian (seperti flip-flop):
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Andi Adriansyah, M.Eng MICROPROSESOR 2
Modul 5. Aplikasi Penggunaan Port
Contoh 5.2:
Program ini memodifikasi program sebelumnya sedemikian rupa sehingga
dapat untuk menghidupkan lampu LED (sebanyak 4 buah) dalam kelompok genap
dan ganjil secara bergantian, sebagaimana program berikut:
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Andi Adriansyah, M.Eng MICROPROSESOR 3
Modul 5. Aplikasi Penggunaan Port
Contoh 5.3:
Contoh berikut adalah modifikasi yang lain dari Contoh 7.1:
Pada program diatas, penyalaan LED diatur sedemikian rupa sehingga tampak
seperti bergerak. Penyalaan LED dimulai dari tengah (P1.3 dan P1.4), kemudian
bergeser ke kiri 1 LED dan bergeser ke kanan 1 LED (P1.2 dan P1.4). Demikian
seterusnya, sehingga LED yang paling kiri dan paling kanan (P1.0 dan P1.7). Setelah
itu, penyalaan LED bergerak kembali berlawanan arah ke tempat semula, yaitu di
tengah-tengah susunan LED. Secara keseluruhan, LED tampak bergerak berpencar
dan bertemu secara terus menerus.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Andi Adriansyah, M.Eng MICROPROSESOR 4
Modul 5. Aplikasi Penggunaan Port
Contoh 5.4:
Contoh berikut adalah modifikasi yang lain dari Contoh 7.1. Dimana, sebuah
LED akan menyala dari bit yang paling kanan, berdasarkan harga A yang dikirim ke
Port 1. Kemudian, harga A digeser 1 bit ke kiri (perintah RL, Rotate Left). Setelah itu,
harga A yang dikirimkan kembali. Akan tampak, seolah-olah LED bergerak ke kiri
secara berulang-ulang.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Andi Adriansyah, M.Eng MICROPROSESOR 5
Modul 5. Aplikasi Penggunaan Port
Vcc
a
P0.0
b
P0.1
c
P0.2
d
P0.3
e
P0.4
f
P0.5
g
P0.6
P
P0.7
AT89C51
Gambar 5.3. Rangkaian Aplikasi 7 Segment
Contoh 5.5:
Program ini menghidupkan display LED 7 Segment untuk menampilkan angka
0 sampai dengan 9. Cara yang dipakai pada contoh program ini adalah dengan
mengeluarkan data langsung ke port yang bersangkutan.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Andi Adriansyah, M.Eng MICROPROSESOR 6
Modul 5. Aplikasi Penggunaan Port
Contoh 5.6:
Program diatas memang dapat menampilkan angka 0 sampai dengan 9 pada 7
Segment. Namun, program yang dituliskan cukup panjang. Bagian berikut mencoba
untuk menyederhanakan program yang sudah ada dengan memanfaatkan
pengambilan data melalui array.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Andi Adriansyah, M.Eng MICROPROSESOR 7
Modul 5. Aplikasi Penggunaan Port
Vcc
P1.0 P3.0
P1.1 P3.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
AT89C51
Contoh 5.7:
Line I Addr Code Source
1: $MOD51
2:
3: N 0000 ORG 0H
4: 0000 E5 B0 MULAI: MOV A,P3 ; Baca Port 3, masukan ke A
5: 0002 B4 FE 03 CJNE A,#0FEH,TERUS ; A=FED?, Jika tidak sama, TERUS
6: 0005 75 90 00 MOV P1,#0 ; keluarkan 0 ke Port 1, LED nyala
7:
8: 0008 B4 FD F5 TERUS: CJNE A,#0FDH,MULAI ; A=FDH?, jika tidak MULAI
9: 000B 75 90 FF MOV P1,#0FFH ; keluarkan 1 ke Port 1, LED padam
10: 000E 80 F0 SJMP MULAI ; loncat ke MULAI
11:
12: END
Program ini menghidupkan LED melalui push button di P3.0 dan memadamkan
LED melalui push button di P3.1. Dengan demikian akan dilakukan proses polling
(pengacakan terus menerus) pada Port 3 untuk mengecek tombol mana yang ditekan.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Andi Adriansyah, M.Eng MICROPROSESOR 8
Modul 5. Aplikasi Penggunaan Port
Contoh 5.8:
Program berikut ini adalah modifikasi program sebelumnya. Pada program ini,
digunakan sistem switch toggle pada P3.0. Sistem ini menghidupkan dan
memadamkan LED secara bergantian. Oleh karena itu, diperlukan suatu register
(dalam hal ini mengguanakn R0) untuk menyimpan status LED, apakah sedang
menyala (R0 = 1) atau sedang padam (R0 = 0). Dengan kata lain, register ini berfungsi
sebagai mata bagi prosesor.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB Dr. Ir. Andi Adriansyah, M.Eng MICROPROSESOR 9