menuju akhir
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
a. Module PIC 16F877A
b. Dot matrik
> Dasar Teori Mikrokontroler
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.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnTcbNc9YZf4JFusk26xFr69Mg78u6pWVQcyJ0mF5Yhnr-4bTco5KcNRk3sZpmsTfgJy5CjRqgQa_v6Lh34ExojvNz_LWDpME1MlQ0kUroT7Ddmbk2xRb_ZqfDueIr7jGgsA-wwa7vD3s/s1600/pic1.jpg)
MIkrokontroller PIC16F877A
fitur fitur PIC 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.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK9pA8EUk03tNQIww34W2W_myFY9spMqkRbzUO25k7R9wi70fknK56MyqlGFGL-5zMv5E6L4nMbWXrlfNiRUMSTXTjOAMk3GzmxfEFDemHakQ82753sHWcQpzktCqagoO0P81jkkm_ZR0/s320/pic.jpg)
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.
Nilai kristal yang dapat dipakai maksimum adalah 4 MHz atau 10 MHz, hal ini karena mikrokontroler PIC16F84 dibuat dalam 2 versi frekuensi kerja. Untuk menentukan frekuensi maksimumnya dapat dilihat pada badan mikrokontroler. Jika terdapat tulisan PIC16F84-04/P berarti frekuensi maksimum yang diijinkan adalah 4 MHz.
Pembangkit Clock-Oscilator
Suatu
mikrokontroler tidak akan dapat bekerja jika tidak diberi detak (clock)
melalui suatu osilator. Osilator adalah rangkaian yang akan memberikan
pulsa pada mikrokontroler dan berguna untuk mensinkronkan sistem dalam
mikrokontroler tersebut. Untuk mengaktifkan sumber clock ini cukup
dengan menambahkan rangkaian pasif saja seperti resistor dan kapasitor
(RC Oscilator), kristal atau keramik resonator. Salah satu keistimewaan
mikrokontroler PIC16F84 adalah terdapatnya 4 pilihan penggunaan
osilator. Untuk pemakaian yang tidak memerlukan pewaktu kritis, bahkan
dapat menggunakan sepasang resistor dan kapasitor saja sebagai osilator.Nilai kristal yang dapat dipakai maksimum adalah 4 MHz atau 10 MHz, hal ini karena mikrokontroler PIC16F84 dibuat dalam 2 versi frekuensi kerja. Untuk menentukan frekuensi maksimumnya dapat dilihat pada badan mikrokontroler. Jika terdapat tulisan PIC16F84-04/P berarti frekuensi maksimum yang diijinkan adalah 4 MHz.
Pengertian Dot Matrix
LED dot matriks adalah sarana
yang sangat populer menampilkan informasi seperti itu memungkinkan teks
baik statis dan animasi dan gambar. Dalam layar dot matrix, beberapa LED
yang kabel bersama-sama dalam baris dan kolom. Hal ini dilakukan untuk
meminimalkan jumlah pin yang diperlukan untuk mengusir mereka. Misalnya,
8 × 8 matriks LED (ditampilkan di bawah) akan membutuhkan 64 I / O pin,
satu untuk setiap pixel LED. Dengan kabel semua anoda bersama-sama
dalam baris (R1 melalui R8), dan katoda dalam kolom (C1 melalui C8),
jumlah yang diperlukan pin I / O dikurangi menjadi 16. Setiap LED
ditujukan demi baris dan jumlah kolom. Pada gambar bawah ini, jika R4
adalah ditarik tinggi dan C3 ditarik rendah, LED di baris keempat dan
kolom ketiga akan dihidupkan. Karakter dapat ditampilkan oleh pemindaian
cepat baik baris atau kolom.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicZCi8E4p-H8p4WS_hn_ej2vf0UZn1rHJ1F9woyyQRzqnN3Htamu3jldXI05tP0J5n7Mzz-PIHyXqXNtoSnXFl5pecayf7aYTipxGVE46G7akhyth08ik2zYmESIhaYBAx2XYboFJfKz9W/s400/PIC.jpg)
Mikroprosesor PIC16F877A
4.7 Listing program [kembali]
void main() {
TRISB=0x00; //PORTB Sebagai Output
TRISC=0x00; //PORTC sebagai Output
PORTB=0x00; //nilai awal PORTB low
PORTC=0x00; //nilai awal PORTC low
TRISD=0x11; //PORTD sebagai Input
PORTD=0x00; //nilai awal PORTD low
while(1){
if(PORTD.f0==1){ // jika switch 1 aktif, maka
PORTC=0x9c; // LED kolom 1,2,6,7 bergerak ke bawah
PORTB=0x01;
delay_ms(5);
PORTB=0x02;
delay_ms(5);
PORTB=0x04;
delay_ms(5);
PORTB=0x08;
delay_ms(5);
PORTB=0x10;
delay_ms(5);
PORTC=0xc9; // LED kolom 2,3,5,6 bergerak ke bawah
PORTB=0x01;
delay_ms(5);
PORTB=0x02;
delay_ms(5);
PORTB=0x04;
delay_ms(5);
PORTB=0x08;
delay_ms(5);
PORTB=0x10;
delay_ms(5);
PORTC=0xf7; // LED kolom 5 bergerak ke bawah
PORTB=0x01;
delay_ms(5);
PORTB=0x02;
delay_ms(5);
PORTB=0x04;
delay_ms(5);
PORTB=0x08;
delay_ms(5);
PORTB=0x10;
delay_ms(5);
}
else if(PORTD.f1==1){ // jika switch 2 aktif, maka
PORTB=0x1f; // LED bergerak dari tengah ke sisi kiri dan kanan
PORTC=0xf7;
delay_ms(5);
PORTC=0xeb;
delay_ms(5);
PORTC=0xdd;
delay_ms(5);
PORTC=0xbe;
}
else {
PORTB=0x00;
PORTC=0xff; }
}
}
4.8 Video Rangkaian [kembali]
4.9 Link Download [kembali]
simulasi rangkaian klik : https://youtu.be/anQKZC7tfEM
Tidak ada komentar:
Posting Komentar