3. AT89S51 dan Permainan Nyala LED
Sering kali kita mendengar tentang komponen LED, yaitu sebutan untuk komponen yang dapat menyala. Tetapi apakah sebenarnya LED itu, LED adalah singkatan untuk “Light Emitting Diode” atau dalam bahasa indonesia berarti Dioda yang Memancarkan Cahaya. LED seperti dioda yang lain juga memiliki 2 kutub, Anoda atau Anode (A) dan Katoda atau Cathode (C), seperti yang terlihat pada gambar 3.1. Ketika ada arus listrik mengalir dari Anoda ke Katoda (A = ‘+’ dan C = ‘-‘), maka LED akan memancarkan cahaya. Namun ketika arus listrik dibalik (A = ‘-‘ dan C = ‘+’), maka LED akan mem-blok arus listrik seperti pada dioda yang lainnya.
3.2. Merangkai AT89S51 dan LED
Ada 2 cara merangkai LED pada sistem minimum AT89S51:
- Common Anode (CA)
- Seperti yang terlihat pada gambar 3.2.a, koneksi CA akan menghubungkan anoda pada LED dengan supply (+) dan katoda dihubungkan pada pin AT89S51, sehingga LED akan menyala ketika pin AT89S51 diberi logika “0” atau “Low”. Itu sebabnya jenis aktivasi CA tergolong “active low”.
- Common Cathode (CC)
- Sedangkan aktivasi CC tergolong “active high” karena katoda dari LED dihubungkan ke supply (-) dan anodanya dihubungkan pada pin AT89S51, sehingga LED akan menyala ketika diberi logika “1” atau “High” di pin AT89S51-nya.
![]()
Gambar 3.2. Koneksi LED dengan mikrokontroler: a. Common Anode (CA), b. Common Anode (CC).
3.3. Program Permainan Nyala LED
Sebelum memrogram permainan nyala LED, terlebih dahulu kita harus tentukan jumlah LED yang akan digunakan dan jenis koneksi yang akan kita gunakan. Pada tutorial ini, kita akan merangkai 8 buah LED sesuai dengan jumlah bit dalam 1 port AT89S51 (8 bit) dengan menggunakan jenis koneksi CA. Kelebihan dari koneksi ini adalah nyala LED akan lebih terang dari CC karena arus yang mengalir pada LED langsung dari supply (+) rangkaian. Kemudian setelah kita tentukan jenis koneksi, kita pun perlu menentukan port atau pin mana yang akan kita gunakan untuk menyalakan LED tersebut. Pada tutorial ini, port yang kita gunakan untuk mengendalikan LED adalah PORT-0 (P0.0-P0.7) seperti yang terlihat pada gambar 3.3.
![]()
Gambar 3.3. Koneksi 8 buah LED pada Port-0 AT89S51.
Karena jenis koneksi yang kita gunakan adalah CA, maka untuk menyalakan LED kita perlu memberikan logika “0” ke pin dari port-0. Program pertama akan membuat seluruh LED di Port-0 berkedip-kedip. Sedangkan program ke-2 akan membuat LED menyala dari kiri ke kanan, kemudian kembali ke kiri dan seterusnya. Lama waktu tunda dapat disesuaikan dengan merubah isi dari register-register r5, r6, dan r7. Selamat BERMAIN!
Program 1:
Org 0000
Sjmp Mulai
Delay: ;Program Waktu Tunda.
Mov r7, #3
Mov r6, #255
Mov r5, #255
LoopDelay:
Djnz r5, LoopDelay
Djnz r6, LoopDelay
Djnz r7, LoopDelay
Ret
Mulai:
Mov P0, #0 ;Membuat seluruh LED menyala.
Acall Delay
Mov P0, #255 ;Membuat seluruh LED padam.
Acall Delay
Sjmp Mulai
Program 2:
Org 0000h
Sjmp Mulai
Mulai:
Mov a, #01111111b ;Isi accumulator dengan data ;biner.
Loop1:
Mov P0, a ;Tampilkan isi accumulator.
Acall Delay
Rr a ;Geser kiri isi accumulator.
Cjne a, #11111110b, Loop1 ;Jika belum sampai pojok kanan, ;kembali ke “Loop1”.
Loop2:
Mov P0, a
Acall Delay
Rl a ;Geser kanan isi accumulator.
Cjne a, #01111111b, Loop2 ;Jika belum sampai pojok kiri, ;kembali ke “Loop2”.
Sjmp Loop1 ;Kembali ke “Loop1”.





saya sangat terbantu sekali dengan blog ini,saya harap bisa mendapatkan bantuan untuk benar2 memahami mikro mcs51 ini.
terimakasih
saya masih bingung cara pemrograman dot matrik. bisa tolong dijelaskan bagaimana cara kerjanya, beserta schematik dot matrik dan fungsi tiap-tiap bagian dot matrik.
tolong dijelaskan juga semua fungsi SFR secara jelas.
dotmatriks = led-led yang disusun secara kolom x baris. Jika kolom berisi anoda dari led-led, maka baris akan berisi katoda dan berlaku sebaliknya. Jadi untuk pemrograman untuk menyalakan dot-dot tersebut adalah dengan memberi data ‘1′ pada anoda-nya dan data ‘0′ pada katodanya. Semoga membantu saudara Ramadani.
NB: Jika ingin belajar lebih lanjut, silakan hubungi kami secara langsung.
saya seorang mahasiswa instrumen disalah satu perguruan tinggi negri. yang ingin saya tanyakan bisakah saya ingin membuat tugs akhir mengenai LED(running text), bagaimana membuatnya, mohon diberi infomasi ya…….!
bisa ditampilkan gbrny dgn jelas & speksny g?
beserta detail komponennya,thanx bngt klo mau bantu berikan infonya
da_nilz_su@yahoo.co.id
Maaf saya kurang mengerti dengan pertanyaan saudara daniel, bukankah sudah ada gambar rangkaiannya. Untuk komponen pun dapat dilihat dari rangkaiannya lho..
Haduh… Ada gak downloader yg buat keluarga s ma c skalian
Sudah pasti gak ada, saudara Duon. Tapi yang menjadi pertanyaan utamanya adalah, untuk apa menggunakan tipe “C” jika ada tipe “S”. Karena banyak kelebihan tipe yang “S” dari yang “C” terutama teknik pen-download-an programnya. Dan dengan teknik bahasa program yang tetap sama dengan yang “C”. Jadi sangat dianjurkan untuk meninggalkan tipe yang “C”.
Terima kasih sebelumnya
Saya mahasiswa teknik elektro,mempunyai tugas untuk membuat sistem rangkaian dengan dot matrik,dimana dot matrik diganti dengan led sesuai dot matrik yaitu 5 x 8 setiap dot diganti 4 led.Yang saya tanyakan bagaimana membangun sistemnya kalau saya menggunakan AT89S51,transistor driver apakah sudah cukup sistemnya, dosen saya menyuruh menggunakan proses dekoder dan scan,nantinya pembuatan programnya yang pengalamatannya sulit.lebih baik sistem satu PCB antar mikro atau sendiri dan memakai kabel penjemper