Mikrokontroler PIC16F877A


Mikrokontroler PIC16F877A merupakan salah satu mikrokontroler dari keluarga PICmicro yang popular digunakan sekarang ini, mulai dari pemula hingga para profesional. Hal tersebut karena PIC16F877A sangat praktis dan menggunakan teknologi FLASH memori sehingga dapat di program-hapus hingga seribu kali. Keunggulan mikrokontroler jenis RISC ini dibanding dengan mikrokontroler 8-bit lain dikelasnya terutama terletak pada kecepatan dan kompresi kodenya. Selain itu, PIC116F877A juga tergolong praktis dan ringkas karena memiliki kemasan 40 pin dengan 33 jalur I/O.

Anggota keluarga PICmicro buatan Microchip Inc. cukup banyak. Ada yang menggunakan FLASH memori dan ada pula yang jenis OTP (One Time Programmable). Mikrontroler dari keluarga PICmicro yang popular, antara lain PIC2C08, PIC16C54, PIC16F84. Agar lebih mengenal PIC16F877A, berikut ini diberikan fitur-fitur penting yang terdapat pada PIC16F877A.

Gambar Mikrokontroler PIC16F877A

Fitur-Fitur PIC16F877A

Sebenarnya, PIC16F877A bukanlah mikrokontroler yang istimewa dalam keluarga PICmicro. Namun demikian, PIC16F877A cukup mudah dipelajari dan dapat di bilang memiliki kemampuan yang handal sebagai mikrokontroler yang memiliki 40 pin.

Fitur-fitur pada PIC16F877A antara lain :

  1. RISC CPU yang mempunyai performance tinggi
  2. Hanya 35 jenis instruksi yang perlu dipelajari
  3. Semua instrujsi mempunyai siklus tunggal kecuali untuk instruksi percabangan.
  4. Kecepatan Instruksi: DC – 20 MHz clock input DC – 200 ns instruction cycle
  5. 8K x 14 words of FLASH Program Memory, 368 x 8 bytes of Data Memory (RAM) , 256 x 8 bytes of EEPROM Data Memory
  6. Pinout compatible dengan PIC16C73B/74B/76/77
  7. Interrupt (14 sumber interrupt)
  8. Delapan level hardware stack
  9. Direct, indirect dan relative addressing modes
  10. Power-on Reset (POR)
  11. Power-up Timer (PWRT) dan Oscillator Start-up Timer (OST)
  12. Watchdog Timer (WDT) dengan on-chip RC oscillator
  13. Programmable code protection
  14. Power saving SLEEP mode
  15. Selectable oscillator options
  16. Low power, high speed CMOS FLASH/EEPROM technology
  17. Fully static design
  18. In-Circuit Serial Programming (ICSP) hanya dengan dua pin
  19. Single 5V In-Circuit Serial Programming capability
  20. Processor read/write access to program memory
  21. Wide operating voltage range: 2.0V to 5.5V
  22. High Sink/Source Current: 25 mA
  23. Commercial, Industrial and Extended temperature ranges

Peripheral Features:

  1. Timer0: 8-bit timer/counter dengan 8-bit prescaler
  2. Timer1: 16-bit timer/counter dengan prescaler, dapat di-increment selama proses SLEEP dengan external crystal/clock
  3. Timer2: 8-bit timer/counter dengan 8-bit period register, prescaler dan postscaler
  4. Dua Capture, Compare, PWM modules (Capture is 16-bit, max. resolution is 12.5 ns , Compare is 16-bit, max. resolution is 200 ns , PWM max. resolution is 10-bit)
  5. 10-bit multi-channel Analog-to-Digital converter (ADC)
  6. Synchronous Serial Port (SSP) dengan SPI (Master mode) dan I2C (Master/Slave)
  7. Universal Synchronous Asynchronous Receiver Transmitter (USART/SCI) dengan 9-bit address detection
  8. Parallel Slave Port (PSP) 8-bits wide, dengan external RD, WR and CS controls (40/44-pin only)
  9. Brown-out detection circuitry untuk Brown-out Reset (BOR)

Deskripsi Pin-Pin

Mikrokontroler PIC16F877A di produksi dalam kemasan 40 pin PDIP (Plastik Dual In Line) maupun 40 pin SO (Small Outline). Namun yang banyak terdapat dipasaran adalah kemasan PDIP. Pin-pin untuk I/O sebanyak 33 pin, yang terdiri atas 6 pada Port A, 8 pada Port B, 8 pada Port C, 8 pada Port D, 3 pada Port E. Ada pula beberapa Pin pada mikrokontroler yang memiliki fungsi ganda.

Gambar Pin Mikrokontroler PIC16F877A

Organisasi Memori

Memori pada PIC16F877A dapat dipisahkan menjadi dua blok memori, satu untuk memori program dan satu untuk memori data. Memori EEPROM dan register GPR didalam RAM merupakan memori data, sedangkan memori FLASH merupakan memori program.

Memori Program

Memori program direalisasikan dalam teknologi FLASH memori yang memungkinkan pem-program melakukan program-hapus hingga seribu kali. Pemrograman PIC16F877A dilakukan sebelum dipasang pada rangkaian aplikasi, atau ketika sistem sudah terpasang namun dikehendaki adanya up-dating pada program didalamnya. Pemrograman berulang biasanya dilakukan pada saat pengembangan dan penyempurnaan sistem. Ukuran memori program untuk PIC16F877A adalah 8K lokasi dengan lebar kata 14 words.

Gambar Alokasi Memori Program Mikrokontroler PIC16F877A

Memori Data

Memori data terbagi di dalam beberapa ruang (semacam halaman/bank) yang memuat register yang mempunyai fungsi-fungsi umum dan khusus yang tersendiri. Bit RP1 (STATUS<6>) dan RP0 (STATUS<5>) adalah bit yang menunjukan letak ruang yang dimaksud.

Setiap ruang mempunyai kapasitas di atas 7Fh (128 bytes). Lokasi paling bawah dari setiap ruang ditujukan untuk register yang mempunyai fungsi spesial.

Gambar Alokasi Memori Data Mikrokontroler PIC16F877A

Mode Pengalamatan

Lokasi memori RAM dapat di akses secara langsung atau tidak langsung :

Pengalamatan langsung

Pengalamatan langsung dilakukan melalui alamat 9 bit. Alamat ini merupakan rangkaian dari 7 bit langsung dari instruksi dan 2 bit dari RP0 dan RP1 pada register STATUS. Contoh pengalamatan langsung adalah pengaksesan register FSR

Pengalamatan tidak langsung

Berbeda dengan pengalamatan langsung, pengalamatan tidak langsung tidak mengambil alamat dari instruksi, tetapi menggunakan bit ke 7 (IRP) dari register status dan semua bit dari register FSR. Lokasi alamat di akses melalui register INDF yang didalamnya berisi alamat yang ditunjuk oleh FSR.

CPU (Central Processing Unit) PIC16F877A

CPU berperan sebagai otak dari mikrokontroler. Bagian ini bertanggung jawab untuk mengambil instruksi, melakukan decode, dan mengeksekusi instruksi. CPU terhubung ke semua bagian pada mikrokontroler. Fungsi terpenting dari CPU adalah melakukan dekode dan mengeksekusi suatu instruksi. Instruksi-instruksi dalam bahasa assembly terdiri atas opcode dan operan. Opcode menyatakan proses yang harus dilakukan mikrokontroler. Sedangkan operan adalah bagian yang dioperasikan pada aritmatika maupun logika. Agar mikrokontroler dapat mengerti perintah opcode, maka instruksi harus diterjemahkan ke dalam urutan biner dengan kode “0” dan “1”. Tugas untuk menterjemahkan instruksi dari bahasa asembly ke bahasa mesin (bahasa yang di mengerti oleh mikrokontroler) dilakukan oleh translator (software assembler atau compiler).

Gambar CPUMikrokontroler PIC16F877A

//=======================================================

Sumber : http://iddhien.com/index.php?option=com_content&task=view&id=35&Itemid=108

14 responses to this post.

  1. Posted by wisnu on Juli 29, 2010 at 10:10 pm

    Mas kl make bahasa LDmikro kira-kira bisa ngk yah buat terintregrasi ke LCD yang 2X16?
    dan kalau kasih tau cara memprogramnya yah Mas…
    sebelumnya terimakasih banyak yah……….

    Balas

  2. Posted by wisnu on September 29, 2010 at 12:52 am

    mas, saya mau tanya neh….
    gmna sih caranya buat lcd 2×16 sama keypad 4×4 16key….
    please yah mas jawabanya kirim k email saya.
    sebelumnya terima kasih banyak yah……..

    Balas

  3. Posted by santo on Oktober 11, 2010 at 10:54 pm

    mas kalo PWm pake PIC16F877A punya source codenya ga (bhs assembly).. matursuwun

    Balas

  4. Posted by wisnu on November 23, 2010 at 10:13 pm

    kl pake bahasa c gmna mas sintaknya kalau kita menggunakan pic16f877 dengan lcd 2×16 dan keypad 4×4…?
    makasih mas sebelumnya

    Balas

  5. Posted by faturrahman on Februari 7, 2011 at 3:10 pm

    asslm….mas aku mau nanya…gmana kalau kita menggunakan bahasa pemrograman nya Assembly? kira2 bisa g` kepakai?

    Balas

  6. assalamualaikum..
    untuk buat downloadernya gimana mas? saya lg belajar tentang mikro ini, ada rangkaiannya gak, posting dong gimana cara buat dowmloader mikrokontroer PIC

    Balas

  7. Posted by imam on September 23, 2012 at 2:50 am

    maaf mas mau nanyak,,ini downloader program nya pakek apa ya???
    kl pakai USBasp bisa gak???
    trus mau nanyak lg ne,,ini bisa gak di program melalui AVR codevision???

    terimakasih mas,,mohon segera di konfirm_!!

    Balas

  8. Posted by Rai on Maret 15, 2022 at 1:06 pm

    Hanya 35 jenis instruksi yang perlu dipelajari, boleh dijelaskan instruksi apa saja dan bagaimana.?

    Balas

Tinggalkan komentar