51单片机学习之led点阵
#include <>
#include <>
sbit sck=P0^1;
sbit ser=P0^0;
sbit rck=P0^2;
//typedef P1 led;
typedef unsigned char u8;
u8 code shuzi[22][32]=
{
{0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,0x20,0xFF,0x20,0x22,0x2C,0xA0,0x20,0x00,
0x00,0x08,0x48,0x84,0x7F,0x02,0x41,0x40,0x20,0x13,0x0C,0x14,0x22,0x41,0xF8,0x00}, //wo
{0x80,0x64,0x2C,0x34,0x24,0x24,0xEC,0x32,0x22,0x22,0x32,0x2E,0x23,0xA2,0x60,0x00,
0x00,0x41,0x21,0x91,0x89,0x87,0x4D,0x55,0x25,0x25,0x55,0x4D,0x81,0x80,0x80,0x00}, //ai
{0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00,
0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x00}, //xue
{0x00,0x02,0x02,0x02,0x12,0x22,0xC2,0x02,0x02,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,
0x00,0x08,0x18,0x08,0x04,0x04,0x04,0x02,0x02,0x41,0x81,0x40,0x3F,0x00,0x00,0x00}, //xi
{0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00,
0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x00}, //xue
{0x00,0x02,0x02,0x02,0x12,0x22,0xC2,0x02,0x02,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,
0x00,0x08,0x18,0x08,0x04,0x04,0x04,0x02,0x02,0x41,0x81,0x40,0x3F,0x00,0x00,0x00}, //xi
{0x80,0x60,0xF8,0x07,0x04,0xE4,0x24,0x24,0x24,0xFF,0x24,0x24,0x24,0xE4,0x04,0x00,
0x00,0x00,0xFF,0x00,0x80,0x81,0x45,0x29,0x11,0x2F,0x41,0x41,0x81,0x81,0x80,0x00}, //shi
{0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,0x20,0xFF,0x20,0x22,0x2C,0xA0,0x20,0x00,
0x00,0x08,0x48,0x84,0x7F,0x02,0x41,0x40,0x20,0x13,0x0C,0x14,0x22,0x41,0xF8,0x00,}, //wo
{0x00,0xE0,0x00,0xFF,0x10,0x20,0x08,0x08,0x08,0xFF,0x08,0x08,0xF8,0x00,0x00,0x00,
0x01,0x00,0x00,0xFF,0x00,0x81,0x41,0x31,0x0D,0x03,0x0D,0x31,0x41,0x81,0x81,0x00,}, //kuai
{0x00,0x00,0xE0,0x9C,0x84,0x84,0x84,0xF4,0x82,0x82,0x83,0x82,0x80,0x80,0x00,0x00,
0x00,0x20,0x10,0x08,0x06,0x40,0x80,0x7F,0x00,0x00,0x02,0x04,0x08,0x30,0x00,0x00,}, //le
{0x00,0x00,0x00,0xFC,0x24,0x24,0x24,0x24,0x22,0x22,0x22,0x23,0x22,0x20,0x20,0x00,
0x40,0x20,0x18,0x07,0x00,0xFE,0x42,0x42,0x42,0x42,0x42,0x42,0xFE,0x00,0x00,0x00,},//hou
{0x02,0x02,0xE2,0x22,0x22,0xF2,0x2E,0x22,0x22,0xE2,0x22,0x22,0xE2,0x02,0x02,0x00,
0x00,0x00,0xFF,0x40,0x40,0x7F,0x49,0x49,0x49,0x7F,0x40,0x40,0xFF,0x00,0x00,0x00,}, //mian
{0x10,0x60,0x02,0xCC,0x80,0x40,0x20,0x1E,0x02,0x02,0x02,0x3E,0x40,0x40,0x40,0x00,
0x04,0x04,0x7E,0x01,0x80,0x80,0x83,0x4D,0x51,0x21,0x51,0x49,0x87,0x80,0x80,0x00,},//mei
{0x00,0x02,0x02,0x02,0x02,0x02,0x02,0xE2,0x22,0x12,0x0A,0x06,0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, //le
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, //
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, //
{0x10,0x10,0x10,0x10,0x10,0x10,0xF1,0x16,0x10,0x90,0x10,0x10,0x10,0x10,0x10,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x01,0x06,0x00,0x00,0x00,0x00,}, //bian
{0x04,0x84,0xC4,0xB4,0x8C,0x10,0x54,0x54,0x54,0xFF,0x54,0x54,0x7C,0x10,0x10,0x00,
0x80,0x44,0x28,0x18,0x27,0x28,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x48,0x40,0x00,}, //jian
{0x10,0x10,0xD0,0xFF,0x90,0x10,0xE4,0x24,0x64,0xA4,0x3F,0xA4,0x64,0x24,0xE4,0x00,
0x04,0x03,0x00,0xFF,0x00,0x01,0xFF,0x00,0x09,0x09,0x7F,0x09,0x49,0x80,0x7F,0x00,}, //nan
{0x00,0x00,0x00,0x7F,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x7F,0x00,0x00,0x00,0x00,
0x81,0x41,0x21,0x1D,0x21,0x41,0x81,0xFF,0x89,0x89,0x89,0x89,0x89,0x81,0x81,0x00,}, //shi
{0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,
0x00,0x80,0x40,0x23,0x19,0x01,0x01,0x01,0x01,0x01,0x09,0x13,0x20,0xC0,0x00,0x00,}, //zhi
{0x22,0x14,0x08,0xF4,0x02,0x20,0x24,0x24,0xA4,0x7F,0x24,0x34,0x28,0x26,0x20,0x00,
0x44,0x82,0x41,0x3F,0x00,0x04,0x02,0xFF,0x49,0x49,0x49,0x49,0xFF,0x00,0x00,0x00,} //zhu
};
u8 code weidi[]=
{0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80
};
void _74hc595(u8 a,u8 b,u8 c, u8 d)
{
u8 i;
for(i=0;i<8;i++)
{
ser=a>>7;
a<<=1;
sck=0;
_nop_();
_nop_();
sck=1;
}
for(i=0;i<8;i++)
{
ser=b>>7;
b<<=1;
sck=0;
_nop_();
_nop_();
sck=1;
}
for(i=0;i<8;i++)
{
ser=c>>7;
c<<=1;
sck=0;
_nop_();
_nop_();
sck=1;
}
for(i=0;i<8;i++)
{
ser=d>>7;
d<<=1;
sck=0;
_nop_();
_nop_();
sck=1;
}
rck=0;
_nop_();
_nop_();
rck=1;
}
void delay1ms(void) //误差 0us
{
unsigned char a,b,c;
for(c=1;c>0;c--)
for(b=14;b>0;b--)
for(a=2;a>0;a--);
}
int main()
{
u8 i,j;
while(1)
{ for(j=0;j<22;j++)
{
unsigned char a,b,c;
// for(c=167;c>0;c--)
// for(b=171;b>0;b--)
for(a=40;a>0;a--)
for(i=0;i<16;i++)
{
_74hc595(~weidi[i+16],~weidi[i],shuzi[j][i+16],shuzi[j][i]);
delay1ms();
}
}
}
}