Untuk menghasilkan variasi output LED kita dapat menggunakan bantuan push button, dimana ketika tombol push button ditekan maka nyala led akan berubah sesuai program yang telah kita buat.
Sebagai dasar pengendalian LED menggunakan tombol, kita harus mensetting salah satu PORT sebagai INPUT dan PORT lain sebagai OUTPUT. Pada Tahap awal kita menggunakan PORTB sebagai input dan PORTA sebagai outputnya. Led akan menyala sesuai dengan tombol pada PORTB yang ditekan. Jika tidak ada tombol ditekan maka semua led akan padam. Pada intinya PORTA hanya melihat perubahan konfigurasi pada PORTB dan mengikutinya.
Listing program menggunakan Codevision AVR nya sebagai berikut
#include <mega16.h>
//program diambil dari https://anotherorion.com
//kendali LED dengan tombol
void main(void)
{
PORTA=0x00;
DDRA=0xFF;
PORTB=0x00;
DDRB=0x00;
while (1)
{
PORTA=PINB;
};
}
Tampilan rangkaian skematik menggunakan ATMega di Proteus ISIS sebagai berikut

Artikel ini terakhir diperbarui pada: 22 Februari 2013 untuk menjaga relevansi dengan kondisi terkini.







wah patut dicoba nih. buat referensi pemula seperti saya
Priyo Harjiyono numpang nyimak mas
kok tambah bingung ya aku….
bikin variable lokal kondisi=0 dulu,
nanti bikin perintah
if(PINB.0==1)
{ if(kondisi==0)
{
PORTA=0xff;
kondisi=1;
}
else
{
PORTA=0x00;
kondisi=0;
}
}
mas, kalo tombolnya di tekan tp lampunya tetep nyala terus kaya gimana, nanti pas ditekan lagi lampunya baru mati…
bener mas, klo 1 led pake 2 tombol nanti apa enggak malah jadi ribet? tapi klo dibuat seperti itu sih ya bisa bisa aja
mau tanya gan
ini kan tiap led punya push button masing"
kalau ane pingin bikin 1 led tapi punya 2 push button
yg 1 untuk menghidupkan led itu
yg 1 buat matiin
itu listing programnya gmna gan?