Setelah mengenal mikrokontroler PIC16F877, kini saatnya kita berkreasi menggunakan mikrokontroler ini. Hal sederhana yang bisa kita lakukan adalah membuat aplikasi menggunakan LED dan pushbutton.
Rangkaian yang digunakan ditunjukkan pada Gambar 1. Menggunakan resonator atau rangkaian kristal 20 MHz. Empat buah LED masing-masing dihubungkan dengan konfigurasi Common Anoda (sehingga perlu logika LOW untuk menghidupkan) ke RA0, RA1, RA2 dan RA3. Masing-masing LED dipasangi resistor 470 ohm untuk membatasi arus. Dua pushbutton kita konfigurasi aktif rendah (berlogika LOW saat ditekan) kita pasang masing-masing ke RA4 dan RA5, perhatikan penggunaan pullup resistor sebesar 10kohm. Sambungan ke downloader/programmer PICKit2 juga disediakan.
Gambar 1
Aplikasi yang akan kita buat adalah membaca tombol sedemikian hingga jika RA4 berlogika LOW maka LED yang terpasang pada RA0 akan berkedip-kedip, jika RA4 bernilai HIGH maka gantian RA1 yang akan berkedip-kedip…
Program selengkapnya sebagai berikut (menggunakan kompilator CCS):
// led_push01.c
// created by Agfianto Eko Putra
// this program is LED on/off
#include <16F877.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#use delay(clock=20000000)
void main()
{
set_tris_a(0xF0); // PORTA3,2,1,0 set as output and PORTA7,6,5,4 as input
output_a(0x0F); // turn OFF all LEDs at port A3,2,1,0
while(true)
{
switch(input(PIN_A4)) // RA0 or RA1
{
case 0: output_toggle(pin_a0); // toggle LED at RA0
break;
case 1: output_toggle(pin_a1); // toggle LED at RA1
break;
}
delay_ms(500);
}
}