Download

10/11/2010

Permainan Nyala LED dengan AT89S51



3.1. Sekilas Tentang 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.
Gambar 3.1. Komponen LED
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-2 (P2.0-P2.7) seperti yang terlihat pada gambar 3.3.
Gambar 3.3. Koneksi 8 buah LED pada Port-2 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.
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 P2, #0 ;Membuat seluruh LED menyala.
Acall Delay
Mov P2, #255 ;Membuat seluruh LED padam.
Acall Delay
Sjmp Mulai
Program 2:
Org 0000h
Sjmp Mulai
Mulai:
Mov a, #01111111b ;Isi accumulatordengan data ;biner.
Loop1:
Mov P2, 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 P2, 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”.

0 komentar:

Post a Comment

Newer Post Older Post Home
Aulia DirUt. Powered by Blogger.
 

Followers

 

Templates by Nano Yulianto | CSS3 by David Walsh | Powered by {N}Code & Blogger