LED Flip Flop Dengan Mikrokontroler

LED FLIP FLOP MIKROKONTROLERBermain-main dengan mikrokontroler sebetulnya adalah aktivitas yang mengasyikan, karna dengan media tersebut kita bisa bereksperimen membangun sebuah perangkat yang ciamik. tapi bagi sebagian orang bermain mikrokontroler adalah sebuah aktivitas yang memusingkan, karna mungkin alasannya harus berkutat pada lebih dari 1 aktivitas yaitu membangun elektrisnya dan menyusun kode program. kalau memang itu alasannya, diri-koe coba akan sedikit beri contoh simple circuit and simple code.
coba sekarang kita akan bahas project simple, yaitu bagaimana cara membangun sebuah circuit&code untuk menyalakan beberapa LED secara bergantian dengan penundaan waktu.
Kita bisa menggunakan seri mikrokontroler pada umumnya sesuai yang kita inginkan, asal syaratnya mikrokontrol itu masih bener belum rusak, bukan punya sendiri juga boleh alias pinjem🙂 karena program di dalamnya bisa direplace lagi. so..don’t worry kalau mau pinjem😀

Pembahasan kali ini diri-koe coba bahas dengan seri AT89C51. salah satu karakteristik seri ini adalah tidak adanya pullup internal pada P0.


Rangkaian minimum akan menyalakan LED secara bergantian dengan jeda waktu yang dapat kita tentukan sendiri.
Circuit elektrisnya kurang lebih seperti ini :

 

circuit diatas kita menggunakan konfigurasi Common Anode (CA), dimana kita lihat kutub Anoda kita hubungkan dengan VCC. sehingga untuk kita bisa menyalakan LED maka harus diberikan nilai logika ‘0’.
setelah circuit terangkai, selanjutnya kita akan menyusun kode program yang sederhana.

$Mod51
ORG 0H
MULAI: ; label MULAI
MOV P1,#11111110B ; Beri nilai Logika “0” pada Port 1 pin 0
ACALL Delay ; Panggil Procedure penundaan waktu
MOV P1,#11111101B ; Beri Logika “0” pada Port 1 pin 1 dengan mematikan
ACALL Delay ; Panggil Procedure penundaan waktu
JMP MULAI ; Loncat Ke Label MULAI
Delay: ; Label Long_Delay
MOV R0,#5h ; Isikan Register 0 dengan data 5H
Delay1:
MOV R1,#0FFH ; Isikan Register 1 dengan data 0FFH (255)
Delay2:
MOV R2,#0H ; Isikan Register 1 dengan data 0H
DJNZ R2,$ ; R2=R2-1, JIKA R2 BELUM 0 ULANGI LAGI
DJNZ R1,DELAY2 ; R1=R1-1, JIKA R1 BELUM 0 ULANGI DELAY2
DJNZ R0,DELAY1 ; R0=R0-1, JIKA R0 BELUM 0 ULANGI DELAY1
RET
END

kalau yang mau coba dengan bahasa lain, bisa pakai bahasa c kurang lebih seperti ini

void main() {
P1 = 0b11111110;
Delay_ms(1000);
P1 = 0b1111101;
Delay_ms(1000);
}

Setelah circuit dan kode program sudah siap semua, coba kita simulasikan. jika semua dilakukan secara normal🙂 maka hasilnya LED pertama akan menyala dan dalam jangka beberapa waktu LED pertama akan mati dan digantikan LED kedua yang menyala.

Untuk lebih memantapkan lagi belajarnya, kita bisa merubah logika sesuai dengan harapan kita. misalnya saja LED menyala berurutan dan mundur lagi ke LED pertama.

atau yang akan menggunakan mikrokontroler seri lain seprti ATMEGA8535.

                                                                                        (sumber: http://rohmadi-rohmad.blogspot.com)

#include <mega8535.h>

#include <delay.h>

void main()

{

       PORTB.0=1;

       delay_ms(1000);

      PORTB.0=0;

}

kalau di jalankan, maka akan menghasilkan nyala lampu kemudian mati.nah..kalau mau dijalankan terus menerus maka tinggal diberi looping saja pakai while atau lainnya yang bisa terus menerus. contoh seperti ini :

void main()

{

while(1)

{

PORTB.0=1;

delay_ms(1000);

PORTB.0=0;

delay_ms(1000);

}

}

oc..semoga bermanfaat…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: