#include <reg51.h>
sbit j1=P3^1;
sbit j2=P3^0;
sbit j3=P3^2;
sbit j4=P3^3;
sbit d1=P1^0;
sbit d2=P1^1;
sbit d3=P1^2;
sbit d4=P1^3;
void Delay(unsigned int xms)
{
unsigned char i, j;
while(xms--)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
}
}
int anJ(){
static int s=0;
if(s==0&&j1==0){
Delay(1);
s=1;
return 1;
}else if(j1==1&&j2==1&&j3==1&&j4==1){
s=0;
}
return 0;
}
void dian(int step){
if(step==0){
d1=0;d2=1;d3=1;d4=1;
}else if(step ==1){
d1=0;d2=0;d3=1;d4=1;
}else if(step ==2){
d1=1;d2=0;d3=1;d4=1;
}else if(step ==3){
d1=1;d2=0;d3=0;d4=1;
}else if(step ==4){
d1=1;d2=1;d3=0;d4=1;
}else if(step ==5){
d1=1;d2=1;d3=0;d4=0;
}else if(step ==6){
d1=1;d2=1;d3=1;d4=0;
}else if(step ==7){
d1=0;d2=1;d3=1;d4=0;
}
}
void main () {
int i;
int sfyx=1;
int step=0;
int j;
int speed=5;
while(1){
i=anJ();
if(i==1){
sfyx=!sfyx;
}
if(sfyx==1){
if(j>=8){j=0;}
dian(j++);
Delay(speed);
}
}
}