|
#include<reg52.h>
#include<intrins.h>
int a[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
int b[9]={0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00};
int dz1[8]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
int dz2[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
void delay(int x){
unsigned int i,j;
for(i=0;i<x;i++)
for(j=0;j<121;j++);
}
//顯示點(diǎn)陣
void disp(){
unsigned int n,j;
for(n=0;n<20;n++){
for(j=0;j<8;j++){
P2=a[j];//控制列
P3=dz1[j];//控制下方點(diǎn)陣的行
P1=dz2[j];//控制上方點(diǎn)陣的行
delay(1);
}
}
}
void main(){
unsigned int i,j,x,y,n;//x,y表示當(dāng)前坐標(biāo),i,j,n用以循環(huán)
for(i=2;i<10;i++){
for(j=1;j<i;j++){
x=j;
y=i-j;
dz2[x-1]=b[8-y];
for(n=0;n<8-i/2;n++){
dz1[7-n]=dz1[7-n]^a[7-n];
disp();
dz1[7-n]=dz1[7-n]^a[7-n];
}
dz1[x-1]=b[y];
disp();
}
}
for(i=10;i<17;i++){
for(j=i-8;j<9;j++){
x=j;
y=i-j;
dz2[x-1]=b[8-y];
for(n=0;n<8-i/2;n++){
dz1[7-n]=dz1[7-n]^a[7-n];
disp();
dz1[7-n]=dz1[7-n]^a[7-n];
}
dz1[x-1]=b[y];
disp();
}
}
}
|
|