Interface Dot Matrix Menggunakan PIC 16F877A





1. Tujuan [Kembali]

Mempelajari bagaimana cara merangkai suatu rangkaian yang menggunakan mikrokontroler dan dihubungkan dengan Dotmatrix dengan programnya.


2. Alat [Kembali]

2.1 Mikrokontroler PIC16F877A.


2.2 DotMatrix

2.3 Switch

3. Teori [Kembali]

3.1. Pengertian Mikrokontroler PIC 16F877A

PIC yang merupakan produk dari Microchip Technology, merupakan kepanjangan dari Peripheral Interface Controller memiliki arsitektur Harvard dan merupakan jenis RISC (Reduced Instruction Set Computing). Salah satu jenis mikrokontroler ini adalah PIC16F877A.

3.1.1 Fitur-Fitur PIC16F877A.

a. Memiliki Instruksi sebanyak 35 buah.
b. Masing-masing instruksi dieksekusi dalam satu siklus mesin kecuali untuk instruksi percabangan yaitu dua siklus.
c. Kecepatan operasi masukan clock dari DC hingga 20MHz.
d. Kapasitas memori program berukuran 8k x 14 words.
e. Kapasitas RAM 268 byte.
f. Kapasitas memory EEPROM berukuran 256 byte.

3.1.2 Pin Out PIC16F877A.


-Memiliki 5 PORT I/O (PORTA 6 pin, PORTB 8 pin, PORTC 8 pin, PORTD 8 pin, PORTE 3 pin).
-Memiliki 3 buat timer
-Memiliki 2 buah keluaran PWM.
-Komunikasi serial singkron menggunakan SPI dan I2C.
-Komunikasi USART.

3.1.3 Pemograman PIC16F877A.

Pemograman PIC ini diprogram menggunakan bahasa C dan dapat menggunakan kompiler MikroC for PIC yang dapat didownload di situs resminya.



3.1.4 Rangkaian Dasar Sistem Mikrokontroler PIC16F877A.


Di gambar dapat dilihat bahwa rangkaian dasar dari sistim mikrokontroler biasanya menggunakan rangkaian crystal sebagai clock atau oscilator eksternal sebagai jantung untuk memberikan kecepatan eksekusi dari mikrokontroler tersebut. Pada gambar juga terdapat rangkaian reset yang digunakan untuk memulai dari awal kembali program yang kita jalankan pada mikrokontroler ini.





3.2. 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.

4. Rangkaian [Kembali]




Rangkaian diatas merupakan rangkaian sederhana dari pengunaan PIC untuk menghidupkan DotMatrix. pada rangkaian terdapat dua buah Switch yang jika switch pertama diaktifkan maka lampu pada dotmatrix akan bergerak dari atas ke bawah (mungkin dapat dilihat lebih lanjut pada video). Kemudian jika Switch kedua yang diaktifkan maka dotmatrix akan menghidupkan lampu dari tengah kemudian bergerak ke pinggir kiri dan kanan.


5. 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; }

}

}




6. Flowchart [Kembali]




7. Video Simulasi [Kembali]





           


          






Share
Tweet
Pin
Share