Ringkasan
PIC16F877A adalah mikrokontroler 8-bit dari keluarga PIC16F87XA yang menggunakan arsitektur RISC dengan set instruksi hanya 35 kata. Komponen ini memiliki memori program Flash hingga 8K x 14 kata, memori data RAM hingga 368 byte, dan EEPROM data hingga 256 byte. Semua instruksi dieksekusi dalam satu siklus kecuali instruksi cabang yang memerlukan dua siklus, dengan kecepatan operasi hingga 20 MHz clock input.
Mikrokontroler ini dilengkapi berbagai peripheral seperti Timer0, Timer1, dan Timer2, dua modul Capture/Compare/PWM (CCP), Synchronous Serial Port (SSP) yang mendukung SPI dan I2C, serta USART untuk komunikasi serial asinkron. Fitur analog mencakup ADC 10-bit hingga 8 channel, dua komparator analog, dan modul referensi tegangan yang dapat diprogram. Fitur khusus termasuk Brown-out Reset (BOR), Watchdog Timer (WDT), In-Circuit Serial Programming (ICSP) melalui dua pin, dan mode Sleep untuk hemat daya.
PIC16F877A tersedia dalam paket 40-pin dan 44-pin, dengan 33 I/O port yang terbagi dalam Port A, B, C, D, dan E. Perangkat ini juga memiliki Parallel Slave Port (PSP) 8-bit yang hanya tersedia pada varian 40/44-pin. Mikrokontroler ini cocok untuk aplikasi embedded yang membutuhkan antarmuka analog dan digital, komunikasi serial, serta kontrol motor atau aktuator.
Fitur utama
- Arsitektur RISC dengan hanya 35 instruksi single-word
- Memori program Flash hingga 8K x 14 kata, RAM hingga 368 byte, EEPROM hingga 256 byte
- Kecepatan operasi DC hingga 20 MHz dengan siklus instruksi 200 ns
- Timer0 8-bit, Timer1 16-bit, Timer2 8-bit dengan prescaler dan postscaler
- Dua modul Capture/Compare/PWM (CCP) dengan resolusi PWM hingga 10-bit
- SSP dengan SPI (Master) dan I2C (Master/Slave), serta USART dengan deteksi alamat 9-bit
- ADC 10-bit hingga 8 channel dan dua komparator analog dengan referensi tegangan terprogram
- Fitur hemat daya: Sleep mode, Watchdog Timer, Brown-out Reset, dan ICSP via dua pin
Spesifikasi utama
| Parameter | Nilai | Kondisi |
|---|---|---|
| Tegangan suplai operasi | 2.0 - 5.5 V | Rentang tegangan operasi lebarhlm. 1 |
| Frekuensi clock maksimum | 20 MHz | DC hingga 20 MHzhlm. 1 |
| Siklus instruksi | 200 ns | Pada clock 20 MHzhlm. 1 |
| Memori program Flash | 8K x 14 kata | Untuk PIC16F877Ahlm. 1 |
| Memori data RAM | 368 byte | Untuk PIC16F877Ahlm. 1 |
| Memori EEPROM data | 256 byte | Untuk PIC16F877Ahlm. 1 |
| Siklus erase/write Flash | 100,000 siklus | Typicalhlm. 1 |
| Siklus erase/write EEPROM data | 1,000,000 siklus | Typicalhlm. 1 |
| Retensi data EEPROM | > 40 tahun | Data EEPROM Retentionhlm. 1 |
| Resolusi ADC | 10 bit | Hingga 8 channelhlm. 1 |
| Resolusi PWM maksimum | 10 bit | Pada modul CCPhlm. 1 |
| Jumlah instruksi | 35 instruksi | Single-word instructionshlm. 1 |
Nilai diambil dari datasheet; “hlm.” menunjuk halaman datasheet tempat angka itu tertulis.
Pinout PIC16F877A-I/P
40-pin PDIP 36 pin
| Pin | Nama | Fungsi |
|---|---|---|
| 1 | MCLR/VPP | Master Clear (Reset) input aktif low atau input tegangan pemrogramanhlm. 10 |
| 2 | RA0/AN0 | Digital I/O atau analog input 0hlm. 10 |
| 3 | RA1/AN1 | Digital I/O atau analog input 1hlm. 10 |
| 4 | RA2/AN2/VREF-/CVREF | Digital I/O, analog input 2, referensi tegangan A/D low, atau output VREF komparatorhlm. 10 |
| 5 | RA3/AN3/VREF+ | Digital I/O, analog input 3, atau referensi tegangan A/D highhlm. 10 |
| 6 | RA4/T0CKI/C1OUT | Digital I/O (open-drain), input clock eksternal Timer0, atau output komparator 1hlm. 10 |
| 7 | RA5/AN4/SS/C2OUT | Digital I/O, analog input 4, slave select SPI, atau output komparator 2hlm. 10 |
| 8 | RE0/RD/AN5 | Digital I/O, read control PSP, atau analog input 5hlm. 13 |
| 9 | RE1/WR/AN6 | Digital I/O, write control PSP, atau analog input 6hlm. 13 |
| 10 | RE2/CS/AN7 | Digital I/O, chip select PSP, atau analog input 7hlm. 13 |
| 11 | VDD | Suplai positif untuk logika dan I/Ohlm. 13 |
| 12 | VSS | Ground referensi untuk logika dan I/Ohlm. 13 |
| 13 | OSC1/CLKI | Input kristal osilator atau sumber clock eksternalhlm. 10 |
| 14 | OSC2/CLKO | Output kristal osilator atau output clock (1/4 frekuensi OSC1)hlm. 10 |
| 15 | RC0/T1OSO/T1CKI | Digital I/O, output osilator Timer1, atau input clock eksternal Timer1hlm. 12 |
| 16 | RC1/T1OSI/CCP2 | Digital I/O, input osilator Timer1, atau input capture2/output compare2/output PWM2hlm. 12 |
| 17 | RC2/CCP1 | Digital I/O atau input capture1/output compare1/output PWM1hlm. 12 |
| 18 | RC3/SCK/SCL | Digital I/O, clock serial sinkron SPI, atau clock serial sinkron I2Chlm. 12 |
| 23 | RC4/SDI/SDA | Digital I/O, data input SPI, atau data I/O I2Chlm. 12 |
| 24 | RC5/SDO | Digital I/O atau data output SPIhlm. 12 |
| 25 | RC6/TX/CK | Digital I/O, transmit USART asinkron, atau clock sinkron USARThlm. 12 |
| 26 | RC7/RX/DT | Digital I/O, receive USART asinkron, atau data sinkron USARThlm. 12 |
| 27 | RD4/PSP4 | Digital I/O atau data Parallel Slave Port bit 4hlm. 13 |
| 28 | RD5/PSP5 | Digital I/O atau data Parallel Slave Port bit 5hlm. 13 |
| 29 | RD6/PSP6 | Digital I/O atau data Parallel Slave Port bit 6hlm. 13 |
| 30 | RD7/PSP7 | Digital I/O atau data Parallel Slave Port bit 7hlm. 13 |
| 31 | VSS | Ground referensi untuk logika dan I/Ohlm. 13 |
| 32 | VDD | Suplai positif untuk logika dan I/Ohlm. 13 |
| 33 | RB0/INT | Digital I/O atau interrupt eksternalhlm. 11 |
| 34 | RB1 | Digital I/Ohlm. 11 |
| 35 | RB2 | Digital I/Ohlm. 11 |
| 36 | RB3/PGM | Digital I/O atau enable pemrograman ICSP low-voltagehlm. 11 |
| 37 | RB4 | Digital I/Ohlm. 11 |
| 38 | RB5 | Digital I/Ohlm. 11 |
| 39 | RB6/PGC | Digital I/O atau clock pemrograman ICSP dan in-circuit debuggerhlm. 11 |
| 40 | RB7/PGD | Digital I/O atau data pemrograman ICSP dan in-circuit debuggerhlm. 11 |
Catatan desain PCB
- Gunakan mode Sleep untuk menghemat daya; Watchdog Timer tetap berjalan dengan osilator RC internal sendiri sehingga dapat membangunkan MCU secara periodik.hlm. 1
- Manfaatkan ICSP melalui dua pin (RB6/PGC dan RB7/PGD) untuk memprogram dan debug langsung di rangkaian tanpa melepas MCU.hlm. 1
- Aktifkan Brown-out Reset (BOR) untuk mereset MCU secara otomatis saat tegangan suplai turun di bawah ambang, mencegah operasi tidak stabil.hlm. 1
- Untuk komunikasi I2C, gunakan pin RC3/SCK/SCL dan RC4/SDI/SDA; keduanya memiliki buffer Schmitt Trigger.hlm. 12
- Saat menggunakan osilator kristal, hubungkan kristal antara OSC1/CLKI dan OSC2/CLKO; pada mode RC, OSC2/CLKO mengeluarkan clock 1/4 frekuensi OSC1.hlm. 10
Kemasan
Contoh pemakaian
- Sistem kontrol embedded yang membutuhkan antarmuka analog dan digital
- Akuisisi data dengan ADC 10-bit hingga 8 channel
- Kontrol motor atau aktuator menggunakan modul PWM
- Komunikasi serial dengan perangkat lain melalui USART, SPI, atau I2C
- Antarmuka dengan memori eksternal atau peripheral melalui Parallel Slave Port (PSP)
Varian PIC16F877A lainnya
Satu datasheet, beda kode pemesanan. Akhiran kode biasanya menandai kemasan atau cara pengemasan dari pabrik.
Sumber data
Disusun dari datasheet resmi Microchip Technology (buka PDF). Ringkasan ditulis dengan bantuan AI, lalu setiap angka dan nama pin dicocokkan otomatis ke teks datasheet; yang tidak ditemukan di datasheet dibuang. Terakhir diperiksa 20 Oktober 2026. Untuk desain akhir, tetap rujuk datasheet asli.