Hallo, akhirnya malam ini mulai menulis lagi tentang tutorial mikrokontroler, kali ini yang akan dibahas hanya sebuah program sederhana. Program ini digunakan untuk membandingkan apakah data input sesuai dengan data yang disimpan oleh programmer.
Jika data yang diinputkan sama dengan yang disimpan, maka mikrokontrol akan menyalakan led pada port B. Data yang disimpan diberi nama variabel ‘banding’ dengan nilai 1, sementara variable ‘dataku’ berasal dari penekanan PINA.
Pada skema proteus, kita coba menggunakan 2 buah tombol pada PINA.0 dan PINA2. Lampu led hanya akan menyala jika nilai dataku = nilai banding, artinya, led hanya akan menyala jika hanya tombol pada PINA.0 yang ditekan.
Berikut source codenya
/***************************************************** This program was produced by the CodeWizardAVR V2.03.4 Standard Automatic Program Generator © Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : membandingkan data penekanan tombol dengan nilai yang disimpan Version : Date : 04/06/2013 Author : anotherorion.com Company : Comments: Chip type : ATmega16 Program type : Application Clock frequency : 4,000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 256 *****************************************************/ #include // Declare your global variables here unsigned char dataku; unsigned char banding; void main(void) { PORTA=0x00; DDRA=0x00; PORTB=0x00; DDRB=0xFF; while (1) { dataku=PINA; banding=1; if(dataku==banding) //jika data banding = dataku {PORTB.0=1; //nyalakan led } else {PORTB=0;} //jika tidak matikan led }; }
Untuk rangkaian skematik bisa dibuat semacam ini, untuk lebih meyakinkan bisa saja semua port pada PINA diberi tombol, tapi hanya satu tombol saja yang akan tampil.