白贼 发表于 2013-10-20 22:59:57

无事做的我分享Arduino16*16点阵

http://v.youku.com/v_show/id_XNjI0MDEwMzY0.html
#define DS 2      
#define SHCP 3      
#define STCP 4      
#define AB 5
#define CLK 6      

unsigned char date;               
unsigned char i=0,j=0;
unsigned char code1={//welcome
0xAB,0xA3,0xAA,0xA4,0xAB,0xA4,0xAA,0x24,0xFB,0xBB,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x73,0xEF,0x8A,0xA8,0x8A,0xAF,0x8A,0xA8,0x72,0xAF,0x00,0x00};
unsigned char code2={//back
0x00,0x00,0x00,0x00,0x00,0x02,0xE0,0x02,0x90,0x02,0x93,0x1A,0x94,0xA3,0xF4,0xA2,
0x94,0xA2,0x94,0xA3,0x94,0xA2,0xE3,0xDA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
unsigned char code3={//huan
0x00,0x80,0x00,0x80,0xFC,0x80,0x04,0xFC,0x45,0x04,0x46,0x48,0x28,0x40,0x28,0x40,
0x10,0x40,0x28,0x40,0x24,0xA0,0x44,0xA0,0x81,0x10,0x01,0x08,0x02,0x0E,0x0C,0x04};
unsigned char code4={//ying
0x00,0x00,0x41,0x84,0x26,0x7E,0x14,0x44,0x04,0x44,0x04,0x44,0xF4,0x44,0x14,0xC4,
0x15,0x44,0x16,0x54,0x14,0x48,0x10,0x40,0x10,0x40,0x28,0x46,0x47,0xFC,0x00,0x00};
unsigned char code5={//hui
0x00,0x00,0x00,0x04,0x7F,0xFE,0x40,0x04,0x40,0x44,0x47,0xE4,0x44,0x44,0x44,0x44,
0x44,0x44,0x44,0x44,0x47,0xC4,0x44,0x44,0x40,0x04,0x7F,0xFC,0x40,0x04,0x00,0x00};
unsigned char code6={//lai
0x01,0x00,0x01,0x00,0x01,0x08,0x7F,0xFC,0x01,0x00,0x21,0x10,0x19,0x30,0x09,0x44,
0xFF,0xFE,0x03,0x80,0x05,0x40,0x09,0x30,0x31,0x1E,0xC1,0x04,0x01,0x00,0x01,0x00};
unsigned char code7={//zi
0x01,0x00,0x02,0x00,0x04,0x10,0x1F,0xF8,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,
0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10};

unsigned char code8={//ran
0x10,0x20,0x10,0x20,0x10,0x28,0x1E,0x24,0x22,0x20,0x33,0xFE,0x4A,0x20,0xA4,0x50,
0x14,0x50,0x08,0x88,0x11,0x0E,0x22,0x04,0x40,0x00,0x24,0x48,0x24,0x46,0x40,0x02};
unsigned char code9={//zhi
0x02,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x7F,0xF8,0x00,0x10,0x00,0x20,0x00,0x40,
0x00,0x80,0x01,0x00,0x02,0x00,0x0C,0x00,0x30,0x00,0x48,0x06,0x07,0xFC,0x00,0x00};
unsigned char code10={//dao
0x02,0x08,0x41,0x10,0x37,0xFC,0x10,0x80,0x01,0x08,0x03,0xFC,0xF2,0x08,0x13,0xF8,
0x12,0x08,0x12,0x08,0x13,0xF8,0x12,0x08,0x12,0x08,0x2B,0xF8,0x44,0x06,0x03,0xFC};

void setup(){
pinMode(DS,OUTPUT);
pinMode(STCP,OUTPUT);
pinMode(SHCP,OUTPUT);
pinMode(CLK,OUTPUT);
pinMode(AB,OUTPUT);
}

void loop( )
{


                for(i=0;i<32;i++)
                        date=code1;
                display_time(1);      

                for(i=0;i<32;i++)
                        date=code2;
                display_time(1);      

                for(i=0;i<32;i++)
                        date=code3;
                display_time(1);   

                for(i=0;i<32;i++)
                        date=code4;
                display_time(1);      
for(i=0;i<32;i++)
                        date=code5;
                display_time(1);      

                for(i=0;i<32;i++)
                        date=code6;
                display_time(1);      

                for(i=0;i<32;i++)
                        date=code7;
                display_time(1);      

                for(i=0;i<32;i++)
                        date=code8;
                display_time(1);      
    for(i=0;i<32;i++)
                        date=code9;
                display_time(1);      

                for(i=0;i<32;i++)
                        date=code10;
                display_time(1);      

}


void display()
{      
      unsigned char i,ia,j,tmp;               
      digitalWrite(AB,LOW);                                                      
      for(i=0;i<16;i++)                           
      {               
      digitalWrite(CLK,LOW);            
    digitalWrite(STCP,LOW);                              
                           
   for(ia=2;ia>0;)                     
    {      
      ia--;                              /
      tmp=~date;
      

      shiftOut(DS,SHCP,LSBFIRST,tmp);

    }                                       
    digitalWrite(CLK,HIGH);
    digitalWrite(STCP,HIGH);
    digitalWrite(AB,HIGH);
                                          
      }                                                                  
      j=64;
      while(j--);               
       digitalWrite(CLK,LOW);                        
    digitalWrite(CLK,HIGH);                  /
}


void display_time(unsigned int timer)      
{
unsigned char i;      
while(timer--)
      {               
                i=13000;               
                while(i--)
                        display();
      }
}
页: [1]
查看完整版本: 无事做的我分享Arduino16*16点阵