a. Mempelajari aplikasi output pada mikrokontroller PIC 16F877A
b. Mempelajari aplikasi input pada mikrokontroller PIC 16F877A
c. Mempelajari aplikasi I/O pada mikrokontroller PIC 16F877A
2. Alat dan Bahan [kembali]
a. Module PIC 16F877A
b. LED
c. Seven Segment
d. Buzzer
e. LCD
f. Jumper
3. 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.
5. Rangkaian Simulasi [kembali]
Rangkaian terdiri dari LED dan Switch dengan menggunakan mikrokontroller PIC16F877A. Dimana,8 LED terhubung ke PORTB dan switch terhubung ke PORTD. Pertama untuk menjalankan simulasi klik tombol PLAY. Untuk memulai operasi maka ditekan tombol RESET, sedangkan untuk memberikan CLOCK dapat menggunakan rangkaian antara crystal dan dua kapasitor. Setelah itu,apabila ditekan swicth (SW1), maka Led yang akan hidup adalah LED 2, 4, 6, 8 dimana LED ini akan berkedip dengan delay 250 ms. Selanjutnya, apabila ketika switch kedua (SW2) ditekan LED akan hidup bergeser dari dalam ke luar kemudian berkedip 2 kali dengan delay 200 ms.
{
PORTB=0x00; // Deklarasi PORT B Sebagai Output
TRISB=0x00; // Kondisi awal PORT B mati
PORTD=0xFF; // Deklarasi PORT D Sebagai Input
TRISD=0x03; // Kondisi awal PORT D yang digunakan RD0 dan
RD1
while(1) // Fungsi Perulangan
{
if(PORTD.RD0==1) // Kondisi RD 0 aktif
{
PORTB=0x5A;
delay_ms(250);
PORTB=0x00;
delay_ms(250);
PORTB=0x5A;
}
else // Kondisi RD 0 tidak aktif
{
PORTB.RB0=0x00; // PORT B Tidak Aktif
PORTB.RB2=0x00;
PORTB.RB4=0x00;
PORTB.RB6=0x00;
delay_ms(250);
}
if(PORTD.RD1==1) // Kondisi RD 1 aktif
{
PORTB=0x18; // LED 4 dan 5 Aktif
delay_ms(200);
PORTB=0x3C; // LED 4,5,3,6 Aktif
delay_ms(200);
PORTB=0x7E; // LED 4,5,3,6,2,7 Aktif
delay_ms(200);
PORTB=0xFF; // LED 4,5,3,6,2,7,1,8 Aktif
delay_ms(200);
PORTB=0x00; // Semua LED mati
delay_ms(200);
PORTB=0xFF; // Semua LED hidup
delay_ms(200);
PORTB=0x00;
delay_ms(200);
PORTB=0xFF;
}
else // Kondisi RD 1 tidak aktif
{
PORTB.RB0=0x00; // PORT B Tidak Aktif
PORTB.RB1=0x00;
PORTB.RB2=0x00;
PORTB.RB3=0x00;
PORTB.RB4=0x00;
PORTB.RB5=0x00;
PORTB.RB6=0x00;
PORTB.RB7=0x00;
delay_ms(200);
}
}}
9. Kondisi [kembali]
13. Dengan input 2 switch, ketika switch pertama ditekan LED 2, 4, 6, 8 akan berkedip dengan delay 250 ms. Dan ketika switch kedua ditekan LED akan hidup bergeser dari dalam ke luar kemudian berkedip 2 kali dengan delay 200 ms.
10. LInk Download [kembali]
File Program - Download
File Proteus - Download
File HTML - Download
File Video - Download




No comments:
Post a Comment