MikroPIC 16F877A

MikroPIC 16F877A adalah sebuah sistem minimum berbasis mikrokontroler Microchip PIC 16F887A. Board sudah dilengkapi dengan port USB dan bootloader, sehingga untuk memrogram, cukup menghubungkan board dengan komputer melalui jalur USB.

Pada board juga disediakan port ICSP, untuk memrogram chip melalui hardware programmer.

Microchip PIC 16F877A memiliki 8k flash program memory, 368 byte RAM dan 256 byte eeprom. Dilengkapi dengan 33 pin I/O, 8 kanal ADC dan 2 kanal PWM (CCP).

Walaupun memiliki ruang memori program hanya 8k, namun program di lingkungan PIC sangat efisien. Hal ini bisa ditunjukkan dengan jumlah instruction set yang hanya 35 instruksi saja. Bandingkan dengan AVR yang memiliki instruction set sekitar 180 instruksi.

Berbeda dengan ADC pada mikrokontroler AVR, pada PIC 16F877A kita dapat memilih kanal mana saja yang aktif / bisa digunakan. Misal, dari 8 kanal yang tersedia, kita hanya akan menggunakan 2 kanal, sementara yang lainnya digunakan sebagai I/O digital.

Untuk port I/O digital yang disediakan, sebagian memiliki buffer TTL, sebagian lain memiliki buffer Schmitt Trigger.

Untuk memrogram, ada sejumlah software dan bahasa yang bisa digunakan. Sebut saja produk software dari Mikroelektronika, yang menyediakan lingkungan pemrograman dengan bahasa C, BASIC dan Pascal. Juga produk software dari Microchip sendiri, CCS C, dan yang lainnya.

Berikut adalah sebuah contoh program dengan Hi-Tech C, untuk membuat sejumlah LED pada PORTB berkedip dengan jeda 100 ms.

#include <htc.h>
#define _XTAL_FREQ 8000000

void main()
{
  TRISB=0X00;
  PORTB=0X00;
  while(1)
  { 
    PORTB=0XFF;
    _delay_ms(100);
    PORTB=0X00;
    _delay_ms(100);
  }
}

Berikut adalah contoh lain, masih menggunakan Hi-Tech C, untuk membaca input analog:

unsigned int adc;
void main()
{
 CMCON = 0x07;
 ADCON1 = 0x80;
 TRISA = 0xFF; // PORTA is input
 TRISC = 0x3F; // Pins RC7, RC6 are outputs
 TRISB = 0;    // PORTB is output
 do {
  adc = ADC_Read(1); // Get 10-bit results of AD conversion of channel 1
  PORTB = adc;       // Send lower 8 bits to PORTB
  PORTC = adc >> 2;  // Send 2 most significant bits to RC7, RC6
 } while(1);
}

Untuk board MikroPIC 16F877A dan kelas pelatihan Pemrograman Mikrokontroler PIC, dapat menghubungi NEXT SYSTEM Robotics Learning Center | ITC Kosambi Ruko F2 | Baranang Siang 6-8, Bandung 40112 | (022) 4222062, (022) 70775874 | email: info@nextsys.web.id | web: http://edukasi.nextsys.web.id