#include <reg51.h>
#define uchar unsigned char
sbit MOSIO=P3^4;
sbit R_CLK=P3^5;
sbit S_CLK=P3^6;
uchar code table1[]={252,63,4,32,244,47,132,32,132,32,228,39,132,32,132,34,132,36,244,47,4,32,4,32,252,63,4,32,0,0,0,0};
uchar code table0[]={0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08,
0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80,
0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00,
0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00
};
void HC595SendData(uchar BT3,uchar BT2,uchar BT1,uchar BT0);
void main()
{
int k;
while(1)
{
for(k=0;k<16;k++)
{
HC595SendData(~table1[2*k+1],~table1[2*k],table0[2*k],table0[2*k+1]);
}
}
}
void HC595SendData(uchar BT3,uchar BT2,uchar BT1,uchar BT0)
{
int i;
for(i=0;i<8;i++)
{
MOSIO=BT3>>7;
BT3=BT3<<1;
S_CLK=0;
S_CLK=1;
}
for(i=0;i<8;i++)
{
MOSIO=BT2>>7;
BT2=BT2<<1;
S_CLK=0;
S_CLK=1;
}
for(i=0;i<8;i++)
{
MOSIO=BT1>>7;
BT2=BT2<<1;
S_CLK=0;
S_CLK=1;
}
for(i=0;i<8;i++)
{
MOSIO=BT0>>7;
BT0=BT0<<1;
S_CLK=0;
S_CLK=1;
}
R_CLK=0;
R_CLK=1;
R_CLK=0;
} |