📄 shuzi.c
字号:
#include<iom16v.h>
#include<macros.h>
#define uint unsigned int
#define uchar unsigned char
#define SetCK PORTA|=(1<<PA5)
#define ClrCK PORTA&=~(1<<PA5)
#define SetST PORTA|=(1<<PA4)
#define ClrST PORTA&=~(1<<PA4)
#define SetOE PORTD|=(1<<PD0)
#define ClrOE PORTD&=~(1<<PD0)
#define SetR1 PORTA|=(1<<PA6)
#define ClrR1 PORTA&=~(1<<PA6)
#define SetR2 PORTA|=(1<<PA7)
#define ClrR2 PORTA&=~(1<<PA7)
const shuzi[10][64]=
{//0
{0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,
0x00,0x00, 0x00,0x00,0x01,0xC0, 0x06,0x10,
0x0C,0x08, 0x08,0x08,0x18,0x0C, 0x10,0x04,
0x10,0x04, 0x10,0x04,0x30,0x06, 0x30,0x06,
0x30,0x06, 0x30,0x06,0x30,0x06, 0x10,0x04,
0x10,0x04, 0x10,0x04,0x18,0x0C, 0x08,0x08,
0x0C,0x08, 0x06,0x10,0x01,0xC0, 0x00,0x00,
0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00
},
//1
{0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,
0x00,0x00, 0x00,0x00,0x00,0x80, 0x01,0x80,
0x1F,0x80, 0x01,0x80,0x01,0x80, 0x01,0x80,
0x01,0x80, 0x01,0x80,0x01,0x80, 0x01,0x80,
0x01,0x80, 0x01,0x80,0x01,0x80, 0x01,0x80,
0x01,0x80, 0x01,0x80,0x01,0x80, 0x01,0x80,
0x01,0x80, 0x01,0x80,0x1F,0xF8, 0x00,0x00,
0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00
},
//2
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x30,
0x00,0x18,0x00,0x08,0x20,0x0C,0x30,0x0C,0x10,0x0C,0x00,0x08,0x00,0x18,0x00,0x10,
0x00,0x20,0x00,0x40,0x00,0x80,0x01,0x00,0x02,0x00,0x04,0x04,0x00,0x00,0x00,0x00,
0x00,0x08,0x3F,0xF8,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
},
//3
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x20,
0x00,0x30,0x20,0x18,0x30,0x18,0x10,0x18,0x00,0x10,0x00,0x30,0x00,0x40,0x03,0xC0,
0x00,0x20,0x00,0x10,0x00,0x08,0x00,0x08,0x00,0x0C,0x00,0x0C,0x30,0x0C,0x20,0x08,
0x00,0x18,0x00,0x30,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
},
//4
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,
0x00,0x60,0x00,0xA0,0x00,0x20,0x00,0x20,0x02,0x20,0x00,0x20,0x04,0x20,0x08,0x20,
0x00,0x20,0x10,0x20,0x00,0x20,0x00,0x20,0x60,0x70,0x00,0x20,0x00,0x20,0x00,0x20,
0x00,0x20,0x00,0x20,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
},
//5
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFC,0x0F,0xF8,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x30,0x10,0x18,
0x00,0x08,0x00,0x08,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x10,0x0C,0x30,0x08,0x20,0x08,
0x00,0x18,0x00,0x30,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
},
//6
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x02,0x08,
0x04,0x0C,0x08,0x0C,0x08,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x11,0xE0,0x34,0x18,
0x30,0x0C,0x30,0x04,0x30,0x06,0x30,0x06,0x10,0x06,0x10,0x06,0x10,0x04,0x18,0x04,
0x08,0x0C,0x04,0x18,0x01,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
},
//7
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFC,0x1F,0xF8,
0x10,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x03,0x00,
0x03,0x00,0x03,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
},
//8
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x08,0x10,
0x10,0x08,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x10,0x08,0x18,0x08,0x0E,0x10,0x07,0xC0,
0x05,0xE0,0x10,0x70,0x30,0x38,0x20,0x18,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x20,0x08,
0x30,0x18,0x18,0x10,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
},
//9
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x18,0x20,
0x30,0x10,0x20,0x08,0x20,0x08,0x60,0x08,0x60,0x08,0x60,0x0C,0x60,0x0C,0x20,0x1C,
0x30,0x0C,0x18,0x0C,0x07,0x08,0x00,0x08,0x00,0x08,0x00,0x18,0x00,0x10,0x00,0x30,
0x30,0x20,0x10,0x40,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
}
} ;
uchar table[7][128]={
//黑屏
{
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,
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
},
//黑屏
{
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,
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
},
//单
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x30, 0x0e, 0x00,
0x00, 0x18, 0x0c, 0x00, 0x00, 0x1c, 0x18, 0x00, 0x00, 0x0c, 0x10, 0x00, 0x02, 0x08, 0x20, 0x80,
0x03, 0xff, 0xff, 0xc0, 0x03, 0x01, 0x00, 0x80, 0x03, 0x01, 0x00, 0x80, 0x03, 0x01, 0x00, 0x80,
0x03, 0x01, 0x00, 0x80, 0x03, 0xff, 0xff, 0x80, 0x03, 0x01, 0x00, 0x80, 0x03, 0x01, 0x00, 0x80,
0x03, 0x01, 0x00, 0x80, 0x03, 0x01, 0x00, 0x80, 0x03, 0xff, 0xff, 0x80, 0x03, 0x01, 0x00, 0x80,
0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x1c, 0x3f, 0xff, 0xff, 0xe0,
0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00,
0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00,
},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x10,0x00,0x00,0x80,0x18,0x00,
0x00,0xE0,0x10,0x00,0x00,0xC0,0x10,0x00, 0x00,0xC0,0x10,0x00,0x00,0xC0,0x10,0x00,
0x00,0xC0,0x10,0x00,0x00,0xC0,0x10,0x00, 0x00,0xC0,0x10,0x10,0x00,0xC0,0x10,0x38,
0x00,0xFF,0xEF,0xC0,0x00,0xC0,0x00,0x00, 0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,
0x00,0xC0,0x00,0x00,0x00,0xC0,0x0C,0x00, 0x00,0xFF,0xFE,0x00,0x00,0xC0,0x0C,0x00,
0x00,0x80,0x0C,0x00,0x01,0x80,0x0C,0x00, 0x01,0x80,0x0C,0x00,0x01,0x00,0x0C,0x00,
0x03,0x00,0x0C,0x00,0x02,0x00,0x0C,0x00, 0x06,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,
0x08,0x00,0x0C,0x00,0x10,0x00,0x0C,0x00, 0x20,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,
},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,
0x01,0x81,0x00,0x80,0x01,0x81,0xFF,0xC0,0x01,0x81,0x81,0x80,0x01,0x81,0x81,0x80,
0x01,0x81,0x81,0x80,0x01,0x99,0x81,0x80,0x3F,0xE1,0x81,0x80,0x01,0x81,0x81,0x80,
0x03,0x81,0x81,0x80,0x03,0x81,0x81,0x80,0x03,0xC1,0x81,0x80,0x03,0xB1,0x81,0x80,
0x07,0x99,0x81,0x80,0x05,0x9D,0x81,0x80,0x05,0x89,0x81,0x80,0x0D,0x81,0x81,0x80,
0x09,0x81,0x81,0x80,0x11,0x81,0x81,0x80,0x11,0x81,0x01,0x80,0x21,0x83,0x01,0x80,
0x41,0x83,0x01,0x88,0x41,0x86,0x01,0x88,0x01,0x84,0x01,0x8C,0x01,0x8C,0x01,0x8C,
0x01,0x88,0x01,0xFC,0x01,0x90,0x00,0xF8,0x01,0xA0,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,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,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,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,0x00,0x00, 0x00,0x00,0x00,0x00
}
};
/*uchar data[32][28];
void zhuanhuan(void)
{
uint m,n,m1,n1;
for(m=0;m<7;m++)
for(n=0;n<128;n++)
{
m1=n/4;
n1=n%4;
n1=n1+4*m;
data[m1][n1]=table[m][n];
}
}*/
void main()
{
uchar row,line,up16,down16,i,total,speed,bit,byte,p,bit1,byte1,m,n,m1,n1,result1=12,result2=34,result3=56,m12,n12,i1,j,k,l;
DDRA=0xff;
DDRD=0xff;
PORTD|=(1<<PD1);
PORTD|=(1<<PD2);
//zhuanhuan();
m12=result1/10;
n12=result1%10;
i1=0;
for(j=0;j<64;j++)
{
table[2][i1]=shuzi[m12][j];
i1++;
table[2][i1]=shuzi[m12][j+1];
i1++;
table[2][i1]=shuzi[n12][j];
i1++;
table[2][i1]=shuzi[n12][j+1];
i1++;
j++;
}
m12=result2/10;
n12=result2%10;
i1=0;
for(j=0;j<64;j++)
{
table[3][i1]=shuzi[m12][j];
i1++;
table[3][i1]=shuzi[n12][j];
i1++;
}
m12=result3/10;
n12=result3%10;
i1=0;
for(j=0;j<64;j++)
{
table[4][i1]=shuzi[m12][j];
i1++;
table[4][i1]=shuzi[n12][j];
i1++;
}
total=0;
while(1)
{
byte=total/32;
bit=total%32;
bit1=bit%8;
byte1=bit/8;
for(speed=0;speed<20;speed++)
{
for(row=0;row<16;row++)
{
//up16=data[row][byte*4+byte1];
m1=row;
n1=byte*4+byte1;
m=n1/4;
n=n1%4+4*m1;
up16=table[m][n];
//down16=data[row+16][byte*4+byte1];
m1=row+16;
n1=byte*4+byte1;
m=n1/4;
n=n1%4+4*m1;
down16=table[m][n];
up16<<=bit1;
down16<<=bit1;
for(i=bit1;i<8;i++)
{
if(up16&0x80) ClrR1;
else SetR1;
if(down16&0x80) ClrR2;
else SetR2;
SetOE; //行选通
SetCK;
ClrCK;
up16<<=1;
down16<<=1;
}//i
for(line=1;line<8;line++)
{
//up16=data[row][byte*4+byte1+line];
m1=row;
n1=byte*4+byte1+line;
m=n1/4;
n=n1%4+4*m1;
up16=table[m][n];
//down16=data[row+16][byte*4+byte1+line];
m1=row+16;
n1=byte*4+byte1+line;
m=n1/4;
n=n1%4+4*m1;
down16=table[m][n];
for(i=0;i<8;i++)
{
if(up16&0x80) ClrR1;
else SetR1;
if(down16&0x80) ClrR2;
else SetR2;
SetOE; //行选通
SetCK;
ClrCK;
up16<<=1;
down16<<=1;
}
}//line
//up16=data[row][byte*4+byte1+line];
m1=row;
n1=byte*4+byte1+line;
m=n1/4;
n=n1%4+4*m1;
up16=table[m][n];
//down16=data[row+16][byte*4+byte1+line];
m1=row+16;
n1=byte*4+byte1+line;
m=n1/4;
n=n1%4+4*m1;
down16=table[m][n];
for(i=0;i<bit1;i++)
{
if(up16&0x80) ClrR1;
else SetR1;
if(down16&0x80) ClrR2;
else SetR2;
SetOE; //行选通
SetCK;
ClrCK;
up16<<=1;
down16<<=1;
}
p=row;
SetOE; //行选通
p&=0x0f;
p+=PORTA&0xf0;
PORTA=p; //具体某行选通
SetST; //输出
ClrST;
//ClrOE;
} //row
}//speed
total++;
if(total==(7-2)*32) total=0;
} //while
}//main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -