MODUL IV
Mikrokontroller PIC 16F877A
- Merangkai dan menguji output pada mikrokontroller PIC 16F877A
- Merangkai dan menguji input pada mikrokontroller PIC 16F877A
- Merangkai dan menguji aplikasi I/O pada mikrokontroller PIC 16F877A
A. 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.
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
B. SEVENT SEGMENT
Layar tujuh segmen ini seringkali digunakan pada jam digital, meteran elektronik, dan perangkat elektronik lainnya yang menampilkan informasi numerik. Layar tujuh segmen ini terdiri dari 7 buah LED yang
membentuk angka 8 dan 1 LED untuk titik/DP. Angka yang ditampilkan di
seven segmen ini dari 0-9. Cara kerja dari seven segmen disesuaikan
dengan LED. LED merupakan komponen diode yang dapat memancarkan cahaya.
kondisi dalam keadaan ON jika sisi anode mendapatkan sumber positif dari
Vcc dan katode mendapatkan sumber negatif dari ground.
Kondisi
Bila ditekan switch 3 akan muncul 9 pada sevent segment
Rangkaian Simulasi
6. Listing Program [kembali]
7. Analisa [kembali]
8. Link Download [kembali]
void
main(void) //Fungsi utama
program
{ //Pembuka
program utama
PORTB=0x00; //Deklarasi PORT B dengan
kondisi awal LOW
TRISB=0x00; //Deklarasi PORT B secara
keseluruhan sebagai OUTPUT
PORTD=0x00; //Deklarasi PORT B dengan
kondisi awal LOW
TRISD=0x03; //Deklarasi PORT B sebagai
OUTPUT dan INPUT
while(1) //Fungsi perulangan
{
if(PORTD.RD0==1) //Jika kondisi terpenuhi, maka akan
menjalankan statement if
{
PORTB=0x07; //Memberikan nilai pada PORT B
delay_ms(100); //Delay selama 100 milidetik
}
if(PORTD.RD1==1) //Jika kondisi terpenuhi, maka akan
menjalankan statement if
{
PORTB=0x7F; //Memberikan nilai pada PORT B
delay_ms(100); //Delay selama 100 milidetik
}
if (PORTD.RD2==1) //Jika kondisi terpenuhi, maka akan
menjalankan statement if
{
PORTB=0x6F; //Memberikan nilai pada PORT B
delay_ms(100); //Delay selama 100 milidetik
}
}
}
7. Analisa [kembali]
Pada percobaan ini komponen yang digunakan adalah
PIC16F877A sebagai mikrokontroler dan switch sebagai input serta sevent segment
sebagai output. Tombol reset digunakan untuk memulai program. Saat switch
ditekan dimana Pin D0 atau D1 atau D2 ON, maka akan menampilkan karakter yang
pada sevent segment. Pada Praktikum kali ini diberikan kondisi yakni bila
ditekan switch 3 akan muncul 9 pada seven segment.
Program dibuat menggunakan software MicroC Pro For
PIC, program dibuat untuk menjalankan mikrokontroller dan menampilkan karakter
yang kita inginkan. Pertama kita harus menentukan terlebih dahulu Port pada
mikrokontroller sebagai input dan output, kemudian tentukan pin yang menjadi
input dan tentukan kondisinya. Untuk menampilkan angka 9 pada sevent segment,
kita menggunakan bilangan Hexa pada program yakni 6F. Setelah program selesai,
simpan program dalam bentuk HEX kemudian upload pada Mikrokontroller yang sudah
kita rangkai tadi. Hasilnya, setelah switch 3 (pin D2) kita tekan on atau
bernilai 1(HIGH), maka akan muncul angka 9 pada sevent segment.
8. Link Download [kembali]
Tidak ada komentar:
Posting Komentar