1. 程式人生 > >關於 點亮8*8LED點陣(24腳)的愛心教程

關於 點亮8*8LED點陣(24腳)的愛心教程

int R[] = {6,11,10,3,9,8,4,A3};    
 
unsigned char biglove[8][8] =       //大“心型”的資料  
{  
  0,0,0,0,0,0,0,0,  
  0,1,1,0,0,1,1,0,  
  1,1,1,1,1,1,1,1,  
  1,1,1,1,1,1,1,1,  
  1,1,1,1,1,1,1,1,  
  0,1,1,1,1,1,1,0,  
  0,0,1,1,1,1,0,0,  
  0,0,0,1,1,0,0,0,  
};  
 
unsigned char smalllove[8][8] =      //小“心型”的資料  
{  
  0,0,0,0,0,0,0,0,  
  0,0,0,0,0,0,0,0,  
  0,0,1,0,0,1,0,0,  
  0,1,1,1,1,1,1,0,  
  0,1,1,1,1,1,1,0,  
  0,0,1,1,1,1,0,0,  
  0,0,0,1,1,0,0,0,  
  0,0,0,0,0,0,0,0,  
};  
 
void setup()  
{  
   //迴圈定義行列PIN 為輸出模式  
  for(int i = 0;i<8;i++)  
  {  
    pinMode(R[i],OUTPUT);  
    pinMode(C[i],OUTPUT);  
  }  
}  
 
void loop()  
{  
  for(int i = 0 ; i < 100 ; i++)        //迴圈顯示100次  
  {  
    Display(biglove);                   //顯示大”心形“  
  }  
  for(int i = 0 ; i < 50 ; i++)         //迴圈顯示50次  
  {     
    Display(smalllove);                 //顯示小“心形”  
  }  
}  
 
void Display(unsigned char dat[8][8])   //顯示函式  
{  
  for(int c = 0; c<8;c++)  
  {  
    digitalWrite(C[c],LOW);//選通第c列  
 
    //迴圈  
    for(int r = 0;r<8;r++)  
    {  
      digitalWrite(R[r],dat[r][c]);  
    }  
    delay(1);  
    Clear();  //清空顯示去除餘暉  
  }  
}  
 
void Clear()                          //清空顯示  
{  
  for(int i = 0;i<8;i++)  
  {  
    digitalWrite(R[i],LOW);  
    digitalWrite(C[i],HIGH);  
  }  
}