📄 单片机设计.c
字号:
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00
},
//黑屏4
{
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00
},
//黑屏5
{
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00
},
//黑屏6
{
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 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][44];
/*void zhuanhuan(void)
{
uint m,n,m1,n1;
for(m=0;m<11;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,speed,bit,byte,p,bit1,byte1,m,n,m1,n1;
uint total;
DDRA=0xff;
DDRD=0xff;
PORTD|=(1<<PD1);
PORTD|=(1<<PD2);
//zhuanhuan();
total=0;
while(1)
{
byte=total/32;
bit=total%32;
bit1=bit%8;
byte1=bit/8;
for(speed=0;speed<2;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<24;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==11*32) total=0;
} //while
}//main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -