belajar mikrokontroler ATMega16; Membuat nyala led sesuai jumlah penekanan tombol

Eh ini judul ceritanya lagi ngomong apa sih yah? Oh ya ini lagi dalam rangka kurang kerjaan aja nambah isi materi pembelajaran mikrokontroler atmega16 sih, daripada gak ngapa-ngapain kan ya? So tema kali ini adalah belajar mikrokontroler ATMega16; Membuat nyala led sesuai jumlah penekanan tombol

Judulnya emang gak jelas, intinya sebenernya hanyalah led akan menyala sebanyak jumlah penekanan tombol. Klo tombol ditekan 5 kali ya bakalan nyala 5 kali, klo tombol gak ditekan? ya diem dong ya? masak suruh kedip-kedip gitu?

Pada prinsipnya kita hanya menggunakan bantuan variabel i sebagai pengcounter input tombol, lalu digunakan untuk membuat nilai maksimal pada looping for penyalaan led. Pustaka delay digunakan untuk menghindari bounce rate saja sih, soal lama delay dan looping for nya monggo disesuaikan sesuai selera masing-masing.

belajar mikrokontroler atmega16 push button led

Oke begini listing programnya

/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.0 Advanced
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project : tombol counting
Version :
Date : 19/09/2015
Author : priyo harjiyono
Company : anotherorion.com
Comments: ini hanya proyek atmega kurang kerjaan saja
Chip type : ATmega16
Program type : Application
AVR Core Clock frequency: 8,000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/

#include <mega16.h>
#include <delay.h>

void main(void)
{
char d, i, h;
DDRA=0x00;
DDRB=0x01;
while (1)
{
i=0;
for(d=0;d<30;d++)
{
if(PINA.0==1)
{
delay_ms(10);
i++;
}
delay_ms(10);
}
for(h=0;h<i;h++)
{
PORTB=1; delay_ms(100);
PORTB=0; delay_ms(100);
}
}
}

Untuk file lengkap download source codevision dan simulasi proteusnya monggo diambil disini.

BACA JUGA:   Membuat sensor LM 35 dengan output LCD

3 Comments

Add a Comment

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

(Note, links and most HTML attributes are not allowed in comments)

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.