PERCOBAAN 1
Kontrol LED dengan Mikrokontroler AT89S51
LED (Light Emiting Diode) merupakan dioda yang memancarkan cahaya, saat ini led merupakan alternatif sumber cahaya dan diproduksi dalam berbagai bentuk dan ukuran, led hampir menyingkirkan komponen lain yang menghasilkan sumber cahaya, karena led memiliki daya yang rendah dibandingkan sumber cahaya lain.
Dalam penggunaannya dalam aplikasi mikrokontroler penting halnya untuk memperhatikan batasan arus yang mengalir dalam komponen ini, supaya dapat menghasilkan cahaya yang maksimal dan tidak rusak. Berikut merupakan rumusan dalam menentukan besarnya resistor yang digunakan dalam merangkai led :
Dengan parameter tipe led seperti ditunjukan dalam tabel berikut ini :
Karena mikrokontroler jenis AT89S51 ini hanya dapat menghasilkan arus yang rendah pada semua portnya maka pemasangan led hanya bisa dilakukan metode common anoda (mikrokontroler di fungsikan sebagai ground), pernyataan ini akan tampak jelas melalui gambar berikut ini:
Dalam seringkali percobaan yang saya lakukan led tidak akan menyala ketika menggunakan metode lain (common katoda) karena arus listrik yang dihasilkan port mikrokontroler sangatlah lemah.
Gambar Percobaan :
Gambar kontrol led
Langkah Percobaan :
Program 1 :
Ketikan program berikut ini pada program Top View Simulator dan lakukan simulasi (cara melakukan simulasi klik disini)
$mod51
org 0h ;Tempatkan memori program pada 0h
start:
mov P0,#00011100b ;P0= 00011100b
sjmp start
end
Jika program berjalan dengan baik maka led yang menyala adalah (D1,D2,D6,D7,D8)
Program 2:
Menyalakan led dengan waktu tunda
org 0h
$mod51
start:
mov p0,#00001111b ;LED D5-D8 On D1-D4 off
call delay ;Panggil Delay (jeda waktu)
mov p0,#11110000b ;LED D1-D4 On D5-D8 off
call delay
sjmp start ;kembali ke start
;-------------------------------
;---Sub rutin waktu tunda-------
;-------------------------------
delay: mov R1,#255
ret1: mov R2,#255
ret2: djnz R2,ret2
djnz R1,ret1
ret
end
Jika tidak ada masalah maka led akan menyala bergantian (Flip Flop)
Program 3:
Berikut merupakan cara lain dengan metode bit addresing ketika menyalakan led
org 0h
$mod51
setb p0.0 ; led D1 off
clr p0.1 ; led D2 on
setb p0.2 ; led D3 off
clr p0.3 ; led D4 on
setb p0.4
clr p0.5
setb p0.6
clr p0.7
end
Program diatas akan menyalakan led dengan perintah "clr".