Rangkaian Dasar Dot Matrik










  1. Memahami mengenai rangkaian dot matrik dan prinsip kerjanya
  2. Dapat membuat rangkaian dot matrik

  1. ATMEGA32
  2. Crystal
  3. Capasitor
  4. Dot Matrix 5x7
  5. Resistor
  6. Button



Dot matrix adalah susunan titik-titik dua dimensi yang digunakan untuk menampilkan
karakter-karakter, simbol atau gambar. Dahulu dot matrix digunakan pada printer-printer
tua dan banyak perangkat tampilan digital. Pada printer, titik-titik tersebut adalah daerah
yang diredupkan. Sedangkan pada display, titik-titik tersebut adalah daerah yang
bercahaya. Sebagaimana pada LED atau CRT display cara kerjanya titik-titik yang
sebelumnya mati, bercahaya sesuai sesuai obyek yang diinginkan.



Gambar 1 Rangkaian Dot Matrix

Dot matrix banyak digunakan untuk menampilkan informasi pada mesin-mesin, jam, indikator keberangkatan kereta api dan perangkat lainnya yang membutuhkan display sederhana untuk resolusi yang terbatas. Display ini terdiri dari LED yang tersusun secara matrix berbentuk segi empat (bentuk selain segi empat juga ada) sehingga dengan menyalakan/mematikan lampu yang diinginkan, teks atau grafik yang dapat ditampilkan. Pengendali dot matrix mengkonversi instruksi dari decoder ke dalam sinyal elektris yang dapat menyalakan atau mematikan lampu sehingga tampilan yang diinginkan dapat terjadi. 


Rangkaian di dalam dot matrix 5x7 untuk common anoda dan common catoda adalah sbb:





Prinsip Kerja :

Kaki reset pada ATMega32 berguna untuk mengulangi proses pembacaan program pada AT Mega setelah diberi program di CVAVR. Kaki XTAL1 dan XTAL2 dihubungkan ke crystal yang berguna untuk memberikan clock eksternal yang stabil nilainya. Kaki pada Port B dan Port C digunakan sebagai output yang akan ditampilkan ke DOT Matrix 5x7. Jadi dihasilkan output angka desimal dimulai dari 9 hingga 0 dan setelah sampai pada angka 0 akan terjadi looping sehingga mengulang dari angka 9 hingga 0 kembali.





#include <mega32.h>
#include <delay.h>
#include <string.h>

unsigned int i,j,x,y,z;
unsigned int angka;
char urut;
char kolom[7];

//Baris = PORTB
//KOLOM = PORTC

void nyala_led()//fungsi untuk menyalakan baris

     if (angka==0)
      {
      if (urut==0){urut=~(0x3E);}
      if (urut==1){urut=~(0x51);}
      if (urut==2){urut=~(0x49);}
      if (urut==3){urut=~(0x45);}
      if (urut==4){urut=~(0x3E);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}   
      }
    
     else if (angka==1)
      {
      if (urut==0){urut=~(0x00);}
      if (urut==1){urut=~(0x21);}
      if (urut==2){urut=~(0x7F);}
      if (urut==3){urut=~(0x01);}
      if (urut==4){urut=~(0x00);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}
      }

      else if (angka==2)
      {
      if (urut==0){urut=~(0x27);}
      if (urut==1){urut=~(0x49);}
      if (urut==2){urut=~(0x49);}
      if (urut==3){urut=~(0x49);}
      if (urut==4){urut=~(0x31);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}
      }
    
      else if (angka==3)
      {
      if (urut==0){urut=~(0x22);}
      if (urut==1){urut=~(0x41);}
      if (urut==2){urut=~(0x49);}
      if (urut==3){urut=~(0x49);}
      if (urut==4){urut=~(0x36);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}
      }

      else if (angka==4)
      {
      if (urut==0){urut=~(0x0C);}
      if (urut==1){urut=~(0x14);}
      if (urut==2){urut=~(0x24);}
      if (urut==3){urut=~(0x7F);}
      if (urut==4){urut=~(0x04);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}
      }
  
      else if (angka==5)
      {
      if (urut==0){urut=~(0x72);}
      if (urut==1){urut=~(0x51);}
      if (urut==2){urut=~(0x51);}
      if (urut==3){urut=~(0x51);}
      if (urut==4){urut=~(0x4E);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}
      }

      else if (angka==6)
      {
      if (urut==0){urut=~(0x1E);}
      if (urut==1){urut=~(0x29);}
      if (urut==2){urut=~(0x49);}
      if (urut==3){urut=~(0x49);}
      if (urut==4){urut=~(0x46);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}
      }
    
      else if (angka==7)
      {
      if (urut==0){urut=~(0x41);}
      if (urut==1){urut=~(0x42);}
      if (urut==2){urut=~(0x44);}
      if (urut==3){urut=~(0x48);}
      if (urut==4){urut=~(0x70);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}
      }

      else if (angka==8)
      {
      if (urut==0){urut=~(0x36);}
      if (urut==1){urut=~(0x49);}
      if (urut==2){urut=~(0x49);}
      if (urut==3){urut=~(0x49);}
      if (urut==4){urut=~(0x36);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}
      }
      
      else if (angka==9)
      {
      if (urut==0){urut=~(0x30);}
      if (urut==1){urut=~(0x49);}
      if (urut==2){urut=~(0x49);}
      if (urut==3){urut=~(0x4A);}
      if (urut==4){urut=~(0x3C);}
      if (urut==5){urut=~(0x00);}
      if (urut==6){urut=~(0x00);}
      if (urut==7){urut=~(0x00);}
      }
}

void main(void)
{
PORTA=0x00;
DDRA=0x00;

PORTB=0x00;
DDRB=0xFF;

PORTC=0x00;
DDRC=0xFF;

PORTD=0x00;
DDRD=0x00;

y=0;
PORTC=~(0xFE);

while (1)
                    
{
angka=9;
kolom[0]=~(0xFE); 
kolom[1]=~(0xFD);
kolom[2]=~(0xFB);
kolom[3]=~(0xF7);
kolom[4]=~(0xEF);
kolom[5]=~(0xDF);
kolom[6]=~(0xBF);
kolom[7]=~(0x7F);

for (z=0;z<10;++z)
{
  //for (x=0;x<10;++x) //untuk menggeser (non aktif)
  //{   
    for (i=0;i<100;++i)
    {
    y=x;
        for (j=0;j<8;++j)
        {
        //angka=0;
         PORTC=kolom[j];
         urut=y;
         nyala_led();
         PORTB=urut;
         delay_ms(1);
         y=y+1;
        //PORTC=kolom[j+1];     
            if (y==8)
            {
            y=0;
            }       
        }
    PORTC=~(0xFE);
    }
   //}
//PORTB=0xFF;
angka=angka-1;
delay_ms(1000);
  };
 }
}





Referensi :
  1. John Crisp, Introduction to Microprosessor and Microcontrollers, 2nd edition, Newnessm 2004.
  2. Darwison, 2007 “ Teori, Rancangan ,Simulasi Dan Aplikasi Mikroprosesor Dan Mikrokontroller” ISBN: 978-602-9487-09-1”, CV Ferila, Padang

Komentar

Posting Komentar

Postingan populer dari blog ini

OP AMP (PEMBANGKIT SINYAL)

Rangkaian Memori dan Decoder-nya