MODUL 4



Modul 4
Mikrokontroler PIC 16F877A


1. Tujuan [kembali]


a.    Merangkai dan menguji aplikasi output pada mikrokontroller PIC 16F877A
b.    Merangkai dan menguji input pada mikrokontroller PIC 16F877A
c.    Merangkai dan menguji I/O pada mikrokontroller PIC 16F877A 


2. Dasar Teori [kembali]
 

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.

MIkrokontroller PIC16F877A

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


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.

A. LED


LED adalah suaatu semikonduktor yang memancarkan cahaya,  LED mempunyai kecenderungan polarisasi. LED mempunyai kutub positif dan negatif (p-n) dan hanya akan menyala bila diberikan arus maju. Ini dikarenakan LED terbuat dari bahan semikonduktor yang hanya akan mengizinkan arus listrik mengalir ke satu arah dan tidak ke arah sebaliknya. Bila LED diberikan arus terbalik, hanya akan ada sedikit arus yang melewati  LED. Ini menyebabkan LED tidak akan mengeluarkan emisi cahaya.

B. LCD


berikut penjelasan kakinya yaitu:


3. Tugas Pendahuluan [kembali]
     Menampilkan tulisan bergerak dari kiri ke kanan saat menekan salah satu switch


4. Video [kembali]


5. Flowchart [kembali]


6. Listing Program [kembali]

sbit LCD_RS at RB5_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;                                   //Pendeklarasian pin untuk LCD
sbit LCD_RS_Direction at TRISB5_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISD4_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D7_Direction at TRISD7_bit;

void main() {

Lcd_Init();
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);


while ,(1)
{

 if(PORTC.RC0==0 && PORTC.RC1==1)
{
Lcd_out(1,1,"Praktikum Mikro");
Delay_ms(10);
Lcd_Cmd(_LCD_SHIFT_RIGHT);
Delay_ms(10);
}
 else if(PORTC.RC0==1 && PORTC.RC1==0)
{
Lcd_out(1,1,"Praktikum Mikro");
Delay_ms(10);
Lcd_Cmd(_LCD_SHIFT_RIGHT);
Delay_ms(10);
}
}
}

7. Analisa [kembali]

      Tujuan dari tugas pendahuluan kali ini adalah bagaimana membuat tulisan di LCD bergerak dari kiri ke kanan. Dari program dapat dilihat, terdapat dua kondisi yaitu sw1 hidup sw2 mati dan sw1 mati sw2 hidup. Dalam rangkaian juga hanya terlihat ada dua switch. Dalam program dan rangkaian, hanya dua port yang digunakan yaitu PORT C dan PORT B. Dimana PORT B sebagai output dan PORT C sebagai output. Input disini yaitu keadaan dari switch. Outputnya yaitu berupa tulisan yang bergerak dari kiri ke kanan dan berbeda tulisannya untuk setiap kondisi switch.


8. Link Download [kembali]
    Link Rangkaian, Flowchart, Video, dan Listing : Disini
    Link Html                                        : Disini


Posting Komentar