
#include<reg51.h>
#include<stdio.h>
sbit MTRS=P2^0;
sbit MTRE=P2^1;
sbit MTRW=P2^2;
sbit MTRH=P2^3;
static unsigned char ms_tenth;
static unsigned char target1;
static unsigned char target2;
static unsigned char target3;
static unsigned char target4;

void servo(char,char,char,char);
void msdel(unsigned int);



void Timer0_ISR (void) interrupt 1 
{

 MTRS=(ms_tenth < target1);
 MTRE=(ms_tenth < target2);
 MTRW=(ms_tenth < target3);
 MTRH=(ms_tenth < target4);
 if (++ms_tenth == 200)
 ms_tenth = 0;

 TF0 = 0; 
}

void servo(char w,char x,char y,char z)
{
TR0=1;
target1=w;
target2=x;
target3=y;
target4=z;

msdel(8000);

}

void msdel(unsigned int major)
{unsigned int i,j;
for(i=1;i<major;i++)
for(j=1;j<10;j++);
}

void main(void)
{TMOD=0x02;
IE=0x82;
TH0=0xA3;

MTRS=0;
MTRE=0;
MTRW=0;
MTRH=0;

ms_tenth = 0;
target1=0;
target2=0;
target3=0;
target4=0;


{servo(21,10,14,23);

servo(20,12,14,23);

servo(20,14,14,23);

servo(20,17,14,23);

servo(20,17,17,23);

servo(20,14,14,16);


servo(20,10,12,16);

servo(21,10,14,16);

   		   
}
for(;;);
}


 