90 lines
3.3 KiB
C++
90 lines
3.3 KiB
C++
int MAXPINCLK = 10; // Define Digital Port 10
|
||
int MAXPINCS = 9; // Define Digital Port 9
|
||
int MAXPINDIN = 8; // Define Digital Port 8
|
||
|
||
unsigned char x; //occupies bytes on the memory
|
||
unsigned char y; //occupies bytes on the memory
|
||
|
||
unsigned char disp1[38][8]={
|
||
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C}, //Char 0
|
||
{0x10,0x18,0x14,0x10,0x10,0x10,0x10,0x10}, //Char 1
|
||
{0x7E,0x2,0x2,0x7E,0x40,0x40,0x40,0x7E}, //Char 2
|
||
{0x3E,0x2,0x2,0x3E,0x2,0x2,0x3E,0x0}, //Char 3
|
||
{0x8,0x18,0x28,0x48,0xFE,0x8,0x8,0x8}, //Char 4
|
||
{0x3C,0x20,0x20,0x3C,0x4,0x4,0x3C,0x0}, //Char 5
|
||
{0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,0x0}, //Char 6
|
||
{0x3E,0x22,0x4,0x8,0x8,0x8,0x8,0x8}, //Char 7
|
||
{0x0,0x3E,0x22,0x22,0x3E,0x22,0x22,0x3E}, //Char 8
|
||
{0x3E,0x22,0x22,0x3E,0x2,0x2,0x2,0x3E}, //Char 9
|
||
{0x8,0x14,0x22,0x3E,0x22,0x22,0x22,0x22}, //Char A
|
||
{0x3C,0x22,0x22,0x3E,0x22,0x22,0x3C,0x0}, //Char B
|
||
{0x3C,0x40,0x40,0x40,0x40,0x40,0x3C,0x0}, //Char C
|
||
{0x7C,0x42,0x42,0x42,0x42,0x42,0x7C,0x0}, //Char D
|
||
{0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x7C}, //Char E
|
||
{0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x40}, //Char F
|
||
{0x3C,0x40,0x40,0x40,0x40,0x44,0x44,0x3C}, //Char G
|
||
{0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44}, //Char H
|
||
{0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x7C}, //Char I
|
||
{0x3C,0x8,0x8,0x8,0x8,0x8,0x48,0x30}, //Char J
|
||
{0x0,0x24,0x28,0x30,0x20,0x30,0x28,0x24}, //Char K
|
||
{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C}, //Char L
|
||
{0x81,0xC3,0xA5,0x99,0x81,0x81,0x81,0x81}, //Char M
|
||
{0x0,0x42,0x62,0x52,0x4A,0x46,0x42,0x0}, //Char N
|
||
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C}, //Char O
|
||
{0x3C,0x22,0x22,0x22,0x3C,0x20,0x20,0x20}, //Char P
|
||
{0x1C,0x22,0x22,0x22,0x22,0x26,0x22,0x1D}, //Char Q
|
||
{0x3C,0x22,0x22,0x22,0x3C,0x24,0x22,0x21}, //Char R
|
||
{0x0,0x1E,0x20,0x20,0x3E,0x2,0x2,0x3C}, //Char S
|
||
{0x0,0x3E,0x8,0x8,0x8,0x8,0x8,0x8}, //Char T
|
||
{0x42,0x42,0x42,0x42,0x42,0x42,0x22,0x1C}, //Char U
|
||
{0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18}, //Char V
|
||
{0x0,0x49,0x49,0x49,0x49,0x2A,0x1C,0x0}, //Char W
|
||
{0x0,0x41,0x22,0x14,0x8,0x14,0x22,0x41}, //Char X
|
||
{0x41,0x22,0x14,0x8,0x8,0x8,0x8,0x8}, //Char Y
|
||
{0x0,0x7F,0x2,0x4,0x8,0x10,0x20,0x7F}, //Char Z
|
||
};
|
||
|
||
void MX7219_WRITE_byte(unsigned char DATA) {
|
||
unsigned char x;
|
||
digitalWrite(MAXPINCS,LOW);
|
||
for(x=8;x>=1;x--)
|
||
{
|
||
digitalWrite(MAXPINCLK,LOW);
|
||
digitalWrite(MAXPINDIN,DATA&0x80);// Extracting a bit data
|
||
DATA = DATA<<1;
|
||
digitalWrite(MAXPINCLK,HIGH);
|
||
}
|
||
}
|
||
|
||
void MX7219_WRITE(unsigned char address,unsigned char dat) {
|
||
digitalWrite(MAXPINCS,LOW);
|
||
MX7219_WRITE_byte(address); // The address code of the LED
|
||
MX7219_WRITE_byte(dat); //The data figure on LED
|
||
digitalWrite(MAXPINCS,HIGH);
|
||
}
|
||
|
||
void InitMAX7219(void) {
|
||
MX7219_WRITE(0x09, 0x00); //Set decoding BCD
|
||
MX7219_WRITE(0x0a, 0x03); //Set the brightness
|
||
MX7219_WRITE(0x0b, 0x07); //Set scan & limit 8 LEDs
|
||
MX7219_WRITE(0x0c, 0x01); //On power-down mode is 0,normal mode is 1
|
||
MX7219_WRITE(0x0f, 0x00); //To test display 1 EOT,display 0
|
||
}
|
||
|
||
void setup() {
|
||
|
||
pinMode(MAXPINCLK,OUTPUT);
|
||
pinMode(MAXPINCS,OUTPUT);
|
||
pinMode(MAXPINDIN,OUTPUT);
|
||
delay(50);
|
||
InitMAX7219();
|
||
}
|
||
|
||
void loop() {
|
||
for(y=0;y<38;y++) {
|
||
for(x=1;x<9;x++)
|
||
MX7219_WRITE(x,disp1[y][x-1]);
|
||
delay(500);
|
||
}
|
||
}
|