This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

is the program is correct?help me

#include<reg51.h>
sbit op1=P0^0;
sbit op2=P0^1;
sbit op3=P0^2;
sbit op4=P0^3;
int c;
void delay(void)//delay .5 second
{ int d;
for(d=0;d<10;d++)
{ TF1=0;//clear overflow flag
TL1=0xB0;
TH1=0x3C;
TR1=1; //start timer
while(TF1==0)
TR1=0; //stop timer
} }
void intr1(void) interrupt 2 //external interrupt1 function
{ EX1=0; //disable all interrupts
TH0=0x00; //reset counter
TL0=0x00;
TR0=1; //start counter
delay();
TR0=0; //stop counter
c=TL0; //store count
EX1=1; //enable all interrupts
} void main()
{ TMOD=0x25; //initialize T0 as 16bit counter and T1 as 16bit timer
IE=0x84; //enable external interrupt 1
if((c>=0x73)&&(c<=0x7D))
{ if(op1==0)
{ op1=1;
} else
{ op1=0;
} }
else if((c>=0x5F)&&(c<=0x69))
{ if(op2==0)
{ op2=1;
} else
{ op2=0;
} }
else if((c>=0x4B)&&(c<=0x55))
{ if(op3==0)
{ op3=1;
} else
{ op3=0;
} }
else if((c>=0x37)&&(c<=0x41))
{ if(op4==0)
{ op4=1;
} else
{ op4=0;
} }
}