|
#include<reg51.h>
unsigned char code table1[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//轮流点亮
unsigned char code table2[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//逐个点亮
unsigned char code table3[]={0x00};
unsigned char code table4[]={0x55,0xaa}; //间隔点亮
unsigned char xs[];
sbit S0=P1^0;
sbit S1=P1^1;
sbit S2=P1^2;
sbit S4=P1^3;
sbit S5=P1^4;
sbit S6=P1^5;
sbit S7=P1^6;
sbit P11 =P3^2;
unsigned char a=3;
unsigned char x=0;
unsigned char y=0;
int i,j,k;
void panduan();
void delay_t1(unsigned char n);
void delay_t2(unsigned char n);
void chufa() interrupt 0
{
if(S5==0)
a=0;
if(S6==0)
a=1;
if(S7==0)
a=2;
P0=0XFF;
P2=0XFF;
x=8;
y=8;
}
void panduan(){
S4=(S0 & S1 & S2);
P11=S4;
S5=S0;
S6=S1;
S7=S2;
}
void main()
{
EA=1;
EX0=1;
IT0=0;
PX0=1;
a=0;
P11=0;
while(1)
{
while(a==0)
{
x=0;
y=0;
for(;x<8;x++)
{
P2=~0x01;
P0=table1[x];
delay_t1(2);
}
for(;y<8;y++)
{
P2=~0x02;
P0=table1[y];
delay_t1(2);
}
P0=0xff;
P2=0xff;
}
while(a==1)
{
x=0;
y=0;
for(;x<8;x++)
{
P2=~0X01;
P0=table2[x];
delay_t1(2);
}
for(;y<8;y++)
{
for(x=0;x<8;x++)
{
P2=~0X02;
P0=table2[y];
delay_t2(1);
P2=~0x01;
P0=0xff;
delay_t2(1);
}
P0=0xff;
P2=0xff;
delay_t2(2);
}
while(a==2)
{
x=0;y=0;
for(x=0;x<8;x++)
{
P2=~0x01;
P0=table4[0];
delay_t2(1);
P2=~0x02;
P0=table4[0];
delay_t2(1);
}
for(;y<8;y++)
{
// delay_t1(2);
P2=~0x01;
P0=table4[1];
delay_t2(1);
P2=~0x02;
P0=table4[1];
delay_t2(1);
}
}
void delay1_0ms()
{
for(j=0;j<20;j++)
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
while(1)
{
if(TF0==1){
TF0=0;
break;
}
}
}
}
void delay2_0ms()
{
for(j=0;j<2;j++)
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
while(1)
{
if(TF0==1){
TF0=0;
break;
}
}
}
}
void delay_t2(unsigned char n)
{
for(k=0;k<n;k++){
delay2_0ms();
|
|