我現在學習的還是理論知識,單片機是提前學習的,所以單片機比較菜。所以希望大佬們能給點51單片機的學習資料,讓我更加系統的學習。還有就是,我這程序應該怎么改?
#include<reg51.h>
unsigned int code zimo[]={/*-- ??: ? --*/
/*-- Fixedsys12; ??????????:?x?=16x16 --*/
0xFD,0xFD,0x0D,0xED,0xED,0xED,0x0D,0xFD,0x0D,0xED,0xED,0xED,0x0D,0xFD,0xFD,0xFF,
0xFF,0xFF,0x00,0xFE,0xB9,0x7F,0x80,0xFF,0x00,0xFE,0xB9,0x7F,0x80,0xFF,0xFF,0xFF,
/*-- ??: ? --*/
/*-- Fixedsys12; ??????????:?x?=16x16 --*/
0xEF,0xEF,0x0F,0xE0,0xEF,0x0F,0xFF,0x01,0xDD,0xDD,0xDD,0xDD,0x01,0xFF,0xFF,0xFF,
0xBF,0xDD,0xEA,0xF7,0xE9,0x9E,0xBF,0x80,0xBD,0xBD,0xBD,0xBD,0x80,0xBF,0xBF,0xFF,
/*-- ??: , --*/
/*-- Fixedsys12; ??????????:?x?=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xA7,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
/*-- ??: ? --*/
/*-- Fixedsys12; ??????????:?x?=16x16 --*/
0x7F,0xBF,0xCF,0xE1,0xEF,0xEF,0xEF,0x00,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xFF,0xFF,
0xBF,0xBF,0xBD,0xBD,0xBD,0xBD,0xBD,0x80,0xBD,0xBD,0xBD,0xBD,0xBD,0xBF,0xBF,0xFF,
/*-- ??: ? --*/
/*-- Fixedsys12; ??????????:?x?=16x16 --*/
0xFF,0xFF,0xFF,0x01,0x7D,0x7D,0x7D,0x7D,0x7D,0x7D,0x7D,0x01,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x00,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0x00,0xFF,0xFF,0xFF,0xFF,
/*-- ??: ? --*/
/*-- Fixedsys12; ??????????:?x?=16x16 --*/
0xFF,0x1F,0xFF,0x00,0xEF,0xDF,0xF7,0xF7,0xF7,0x00,0xF7,0xF7,0x07,0xFF,0xFF,0xFF,
0xFE,0xFF,0xFF,0x00,0xFF,0x7E,0xBE,0xCE,0xF2,0xFC,0xF2,0xCE,0xBE,0x7E,0x7E,0xFF,
/*-- ??: ? --*/
/*-- Fixedsys12; ??????????:?x?=16x16 --*/
0xFF,0xFF,0x1F,0x63,0x7B,0x7B,0x7B,0x0B,0x7D,0x7D,0x7C,0x7D,0x7F,0x7F,0xFF,0xFF,
0xFF,0xDF,0xEF,0xF7,0xF9,0xBF,0x7F,0x80,0xFF,0xFF,0xFD,0xFB,0xF7,0xCF,0xFF,0xFF,
};
int time = 0;
int flag = 0;
int num = 0;
int v = 9;
int clear_counter = 112;
void delay(unsigned int i)
{
while(i--);
}
void display(unsigned char rowsbehind,unsigned char rowsfollow,int col)
{
if(col==1)
{
P3=0x7f;
P1=0xff;
}
else if(col==2)
{
P3=0xbf;
P1=0xff;
}
else if(col==3)
{
P3=0xdf;
P1=0xff;
}
else if(col==4)
{
P3=0xef;
P1=0xff;
}
else if(col==5)
{
P3=0xf7;
P1=0xff;
}
else if(col==6)
{
P3=0xfb;
P1=0xff;
}
else if(col==7)
{
P3=0xfd;
P1=0xff;
}
else if(col==8)
{
P3=0xfe;
P1=0xff;
}
else if(col==9)
{
P3=0xff;
P1=0x7f;
}
else if(col==10)
{
P3=0xff;
P1=0xbf;
}
else if(col==11)
{
P3=0xff;
P1=0xdf;
}
else if(col==12)
{
P3=0xff;
P1=0xef;
}
else if(col==13)
{
P3=0xff;
P1=0xf7;
}
else if(col==14)
{
P3=0xff;
P1=0xfb;
}
else if(col==15)
{
P3=0xff;
P1=0xfd;
}
else if(col==16)
{
P3=0xff;
P1=0xfe;
}
P2=rowsbehind;
P0=rowsfollow;
}
void main()
{
while(1)
{
int t = 0;
for(t=0;t<16;t++)//zimo[(0+0)*2]=zimo[0]
{
display(zimo[(t+flag)*2],zimo[(t+flag)*2+1],t+1);
delay(5000);
}
}
}
void timer0_init()
{
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
TR0=1;
ET0=1;
EA=1;
}
void zd() interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
time++;
if(time==v)
{
num++;
flag=flag+1;
if(num>clear_counter)
{
num=0;
flag=0;
}
time=0;
}
}
|