don't overflow serial buffer
[Arduino] / MAX7129_8x8_LED / MAX7129_8x8_LED.ino
1 unsigned char i;
2  unsigned char j; 
3 /*Port Definitions*/
4 int Max7219_pinCLK = 10;
5 int Max7219_pinCS = 9;
6 int Max7219_pinDIN = 8;
7  
8 unsigned char disp1[38][8]={
9 {0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//0
10 {0x10,0x18,0x14,0x10,0x10,0x10,0x10,0x10},//1
11 {0x7E,0x2,0x2,0x7E,0x40,0x40,0x40,0x7E},//2
12 {0x3E,0x2,0x2,0x3E,0x2,0x2,0x3E,0x0},//3
13 {0x8,0x18,0x28,0x48,0xFE,0x8,0x8,0x8},//4
14 {0x3C,0x20,0x20,0x3C,0x4,0x4,0x3C,0x0},//5
15 {0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,0x0},//6
16 {0x3E,0x22,0x4,0x8,0x8,0x8,0x8,0x8},//7
17 {0x0,0x3E,0x22,0x22,0x3E,0x22,0x22,0x3E},//8
18 {0x3E,0x22,0x22,0x3E,0x2,0x2,0x2,0x3E},//9
19 {0x8,0x14,0x22,0x3E,0x22,0x22,0x22,0x22},//A
20 {0x3C,0x22,0x22,0x3E,0x22,0x22,0x3C,0x0},//B
21 {0x3C,0x40,0x40,0x40,0x40,0x40,0x3C,0x0},//C
22 {0x7C,0x42,0x42,0x42,0x42,0x42,0x7C,0x0},//D
23 {0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x7C},//E
24 {0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x40},//F
25 {0x3C,0x40,0x40,0x40,0x40,0x44,0x44,0x3C},//G
26 {0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44},//H
27 {0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x7C},//I
28 {0x3C,0x8,0x8,0x8,0x8,0x8,0x48,0x30},//J
29 {0x0,0x24,0x28,0x30,0x20,0x30,0x28,0x24},//K
30 {0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C},//L
31 {0x81,0xC3,0xA5,0x99,0x81,0x81,0x81,0x81},//M
32 {0x0,0x42,0x62,0x52,0x4A,0x46,0x42,0x0},//N
33 {0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//O
34 {0x3C,0x22,0x22,0x22,0x3C,0x20,0x20,0x20},//P
35 {0x1C,0x22,0x22,0x22,0x22,0x26,0x22,0x1D},//Q
36 {0x3C,0x22,0x22,0x22,0x3C,0x24,0x22,0x21},//R
37 {0x0,0x1E,0x20,0x20,0x3E,0x2,0x2,0x3C},//S
38 {0x0,0x3E,0x8,0x8,0x8,0x8,0x8,0x8},//T
39 {0x42,0x42,0x42,0x42,0x42,0x42,0x22,0x1C},//U
40 {0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18},//V
41 {0x0,0x49,0x49,0x49,0x49,0x2A,0x1C,0x0},//W
42 {0x0,0x41,0x22,0x14,0x8,0x14,0x22,0x41},//X
43 {0x41,0x22,0x14,0x8,0x8,0x8,0x8,0x8},//Y
44 {0x0,0x7F,0x2,0x4,0x8,0x10,0x20,0x7F},//Z
45 };
46  
47  
48  
49 void Write_Max7219_byte(unsigned char DATA) 
50 {   
51             unsigned char i;
52             digitalWrite(Max7219_pinCS,LOW);            
53             for(i=8;i>=1;i--)
54           {               
55              digitalWrite(Max7219_pinCLK,LOW);
56              digitalWrite(Max7219_pinDIN,DATA&0x80);// Extracting a bit data
57              DATA = DATA<<1;
58              digitalWrite(Max7219_pinCLK,HIGH);
59            }                                 
60 }
61  
62  
63 void Write_Max7219(unsigned char address,unsigned char dat)
64 {
65         digitalWrite(Max7219_pinCS,LOW);
66         Write_Max7219_byte(address);           //address,code of LED
67         Write_Max7219_byte(dat);               //data,figure on LED 
68         digitalWrite(Max7219_pinCS,HIGH);
69 }
70  
71 void Init_MAX7219(void)
72 {
73  Write_Max7219(0x09, 0x00);       //decoding :BCD
74  Write_Max7219(0x0a, 0x03);       //brightness 
75  Write_Max7219(0x0b, 0x07);       //scanlimit;8 LEDs
76  Write_Max7219(0x0c, 0x01);       //power-down mode:0,normal mode:1
77  Write_Max7219(0x0f, 0x00);       //test display:1;EOT,display:0
78 }
79  
80  
81  
82 void setup()
83 {
84  
85   pinMode(Max7219_pinCLK,OUTPUT);
86   pinMode(Max7219_pinCS,OUTPUT);
87   pinMode(Max7219_pinDIN,OUTPUT);
88   delay(50);
89   Init_MAX7219();
90 }
91  
92  
93 void loop()
94
95    for(j=0;j<38;j++)
96   {
97    for(i=1;i<9;i++)
98     Write_Max7219(i,disp1[j][i-1]);
99    delay(500);
100   }             
101 }